Azure 使用AAD的多租户应用到应用授权

Azure 使用AAD的多租户应用到应用授权,azure,azure-active-directory,multi-tenant,azureportal,Azure,Azure Active Directory,Multi Tenant,Azureportal,我有一个在AAD租户“a”中注册为多租户Web API的服务。以及在不同AAD租户“B”中注册为web应用程序的客户端。问题是,我是否需要Azure portal上的任何其他配置,以便租户“B”中的客户端应用程序成功访问租户“A”中的web API(应用程序到应用程序身份验证)?AAD是否支持这种情况?当前,当服务部署到Azure时,我从该服务获得未经授权的状态代码作为响应 当我尝试手动管理租户B中客户端应用的权限时,租户A中的服务未显示。此步骤是必要的还是缺少一些配置设置 该服务基于asp.

我有一个在AAD租户“a”中注册为多租户Web API的服务。以及在不同AAD租户“B”中注册为web应用程序的客户端。问题是,我是否需要Azure portal上的任何其他配置,以便租户“B”中的客户端应用程序成功访问租户“A”中的web API(应用程序到应用程序身份验证)?AAD是否支持这种情况?当前,当服务部署到Azure时,我从该服务获得未经授权的状态代码作为响应

当我尝试手动管理租户B中客户端应用的权限时,租户A中的服务未显示。此步骤是必要的还是缺少一些配置设置

该服务基于asp.net MVC应用程序构建,并使用JWT承载身份验证方案。客户端成功地从其自己的AAD租户获取其令牌。所以这看起来不像是一个身份验证问题。在服务端,我已经将客户机的租户添加为有效的令牌发行者之一

我不确定是否在客户的租户中自动创建了服务应用程序的服务主体(到目前为止,同意页面从未显示)

支持该场景。 在列表中显示API之前,您只需先征得租户B的同意即可

您可以将Web API上的应用程序权限定义为普通()

然后,您可以通过访问如下URL来获得API许可:

https://login.microsoftonline.com/tenant-b-id/oauth2/authorize?client_id=your-api-client-id&response_type=code&redirect_uri=reply-url-defined-on-api&prompt=admin_consent
您必须将其中的3个值替换为您的值:

  • 租户b-id:租户b的目录id
  • api客户端id:租户A中api的应用程序id/客户端id
  • api上定义的回复url:租户A中api上定义的url编码回复url(例如
    https%3A%2F%2Flocalhost%2F

这将导致在租户B中为API创建一个服务主体,允许您为租户B中的应用分配应用权限。

在完成上述步骤后,我能够从租户B向Web API添加权限。但是,我仍然得到未经授权的响应代码。我查看了客户机的JWT令牌,它没有任何范围(scp)字段。这可能是问题所在吗?同意页面仅列出查看用户配置文件的权限。它没有列出与Web api访问相对应的权限。