两个 Azure Web 应用程序可以使用相同的令牌进行身份验证吗?

Can two Azure web applications use the same token for authentication?

我有一个 SPA 应用程序和一个关联的 API,它从中获取数据。 (Aurelia 和 Nodejs)

我最近在 SPA 上完成了身份验证,因此它使用 MSAL 根据我们公司的 AAD 对用户进行身份验证,并且能够检索令牌,然后应用程序也可以使用该令牌来访问 MS Graph。

但是,我还希望我的 API 针对 AAD 进行身份验证。我想要的是 API 能够接受来自 SPA 客户端的令牌。

虽然我能够将令牌从客户端发送到 API(Authorization: 'Bearer'...) 但我不确定在服务器端如何处理它向身份提供者验证令牌是否有效。

在大多数情况下,我不希望 API 有 UI 问题(即 authentication/login 屏幕)。它应该简单地拒绝任何不携带正确令牌的请求。

我希望最终将客户端和服务器应用程序作为应用程序服务托管在 Azure 上,但目前它们是在内部托管的。我认为有一种方法可以确保解决方案无论在何处托管应用程序都能正常工作。

感谢您的帮助!

我不确定我是否理解标题和问题 body 之间的关系:我会回答 body :) 在 https://azure.microsoft.com/en-us/resources/samples/active-directory-b2c-javascript-msal-singlepageapp/ 中,您可以看到 Node JS 中的网络 API 令牌验证示例。只需调整服务端逻辑以指向您正在使用的 Azure AD 租户。 无论 API 托管在何处,以上内容都将起作用,因为要验证的参数都是关于逻辑标识符的。