适用于多个 WebApi 端点的 Azure AD 承载 token ?

标签 azure oauth-2.0 openid-connect

我们使用 Angular、.Net WebApi 和 Azure 构建多个应用程序。我们一直在做的是通过隐式 oAuth2/OIDC 授权流程通过 Azure AD 保护应用程序。

一切进展顺利,但到目前为止我们的架构很简单。 IE“前端应用程序1”->“WebApi 应用程序1”

当我们向 AAD 请求 token 时,我们会在 token 请求中发送资源(“WebApi App1”的应用程序 ID)。看来这是 token 请求中的必需属性。这是如何扩展的?

假设我们有这样一种情况,“前端应用程序 1”需要与“WebApi 应用程序 1”和“WebApi 应用程序 2”通信。我们需要发出多个 token 请求吗?在这些情况下,人们会在 Azure 中做什么?将不记名 token 与一个资源紧密耦合似乎很奇怪。

另一种方法似乎是我可以将两个 api 应用程序配置为验证同一 Azure 租户和应用程序 ID 的 token 。这样, token 对任一应用程序都有好处,但这也不是很灵活,因为这意味着任一应用程序的所有 token 都适用于另一个应用程序...

最佳答案

您有两个选择:

  1. 获得两个 token
  2. 对两个 API 使用相同的应用 ID

为每个 API 获取 token 是正常方法。

Azure AD 中的不记名 token 始终仅对一个 API 有效。 它可以包含该 API 上调用用户/应用程序的范围/角色,这些值是应用程序 list 中定义的简单字符串,例如用户.阅读. 这些值可能在 API 之间重叠,因此我们不能拥有对两个 API 有效的 token 。

关于适用于多个 WebApi 端点的 Azure AD 承载 token ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49779411/

相关文章:

node.js - 如何在产品环境中保护我的 GO REST 服务?

security - OAuth 2.0 公共(public)客户端模拟

android - Android REST 客户端的 Redirect_URI

security - OpenId Connect 如何保护资源服务器免受客户端模拟?

authentication - 在 Open ID Connect 中配置静默身份验证

azure - 如何查找azure静态网站的DNS A记录?

vba - 使用 VBA 更改 Outlook 365 电子邮件中的敏感度标签

azure - 如何查找有权访问给定 SPN 的各个资源的列表?

azure - 在 Pulumi Azure Native 中获取 StorageAccount-AccessKey

java - Spring OAuth2/OIDC - OAuth2AuthorizedClientService 未注册用户主体 (authroizedClient)