我们有一个Azure资源应用程序,我们希望公开其API以供Azure上的客户端应用程序访问 . 这两个应用程序位于不同的租户 . 访问API(Office 365帐户持有者)的用户位于不同的租户 .
当我们尝试从客户端应用程序对资源应用程序进行身份验证时,在租户上手动配置服务主体时,整个设置就会起作用 . 我的意思是他们能够使用他们的Office 365帐户登录并显示同意屏幕 .
如果我们没有在尝试进行身份验证的用户的AAD租户上配置服务主体,则会收到以下错误:
AADSTS65005 - The app needs access to a service <service> that your
organization org.onmicrosoft.com has not subscribed to or enabled. Contact
your IT Admin to review the configuration of your service subscriptions.
我们不可能在访问我们的应用程序(资源应用程序)的每个租户上配置服务主体 . 我们缺少什么?我们使用正确的流量吗?
1 回答
您可以在此处找到有关您的方案的帮助:https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-devhowto-multi-tenant-overview#understanding-user-and-admin-consent . (向下滚动到多个租户中的多个层)
基本上,您的应用程序所需的所有部分必须作为服务主体出现在客户的租户中 . 这是AAD的要求 .
发生这种情况的唯一方法是管理员单独同意API和app,因为他们在不同的租户中注册 .
如果它们在同一租户中注册,则可以使用清单中的knownClientApplications属性来同时允许两者同意 .