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

时间:2018-11-28 17:48:58

标签: azure azure-active-directory multi-tenant azureportal

我有一个在AAD租户“ A”中注册为多租户Web API的服务。并且一个客户在另一个AAD租户“ B”中注册为网络应用。问题是,我是否需要在Azure门户上进行任何其他配置,以使租户“ B”中的客户端应用程序成功访问租户“ A”中的Web API(从应用程序到应用程序的身份验证)? AAD是否支持这种情况?当前,当将服务部署到Azure时,我会得到未经授权状态码作为服务的响应。

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

enter image description here

该服务基于asp.net MVC应用程序构建,并使用JWT承载身份验证方案。客户从其自己的AAD租户成功获取了其令牌。因此,这似乎不是身份验证问题。在服务方面,我还添加了客户的租户,使其成为有效的令牌发行者之一。

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

1 个答案:

答案 0 :(得分:1)

该方案受支持。 您只需要先征得租户B的API同意,即可在列表中显示该API。

您可以照常(check here)定义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个值:

  • tenant-b-id :租户B的目录ID
  • your-api-client-id :租户A中API的应用程序ID /客户端ID
  • reply-url-defined-on-api :在租户A中的API上定义的URL编码的答复URL(例如https%3A%2F%2Flocalhost%2F

这将导致在租户B中为API创建服务主体,从而使您可以为租户B中的应用分配应用权限。