自 3 天以来,我一直在尝试为企业应用程序在 azure b2c 租户中授予应用程序权限的管理员同意。
应用程序在我的主租户中注册,其所有委托和应用程序类型权限都在租户范围内授予。主租户在其企业应用程序中也有一个条目,我可以在其中看到相同的权限。
我不知道如何在不将其发布到 MS 商店的情况下将其添加到我的副租户中。所以我只是用一个副租户帐户登录我的应用程序。 (不知道对不对?)
登录后,我在我的副租户的企业应用程序中有一个条目,但没有我需要的权限?
现在我的问题是:我如何为我的副租户中的所有用户授予所需的权限?
我已经尝试过这个网址:https://login.microsoftonline.com/{tenantID}/adminconsent?client_id={clientID}&scope=/.default&redirect_uri=xxx
对于我的主租户,它按预期工作,可能是因为它具有我的副租户中缺少的应用程序注册。
当我与我的副租户一起尝试时,我收到此错误:
Acess_denied: AADSTS650054 The application XXXX asked for permissions to access a resource that has been removed or is no longer available. Contact the app vendor.
答案 0 :(得分:1)
此处可能发生的情况是,您已将应用配置为请求访问至少一个在“side-tenant”中没有表示的 API(例如名为“LegacyAPI”的 API)。这就是错误消息提到“资源已被删除或不再可用”的原因。
为了使同意成功,应用请求访问的所有资源服务(即 API)必须存在于授予同意的租户中。 (服务主体对象需要存在。)
这里有两个选择:
New-AzureADServicePrincipal -AppId "{resource-app-id}"
)与您的问题无关,但与管理员同意 URL 相关:
对于您要执行的操作,可以通过三种方式构建管理员同意 URL,一种使用旧版 v1 端点,另两种使用较新(推荐)v2 端点。在您的管理员同意 URL 中,您使用的是 v1 端点,但您包含了 scope
参数(仅在 v2 端点中使用)。
https://login.microsoftonline.com/{tenant-id}/v2.0/adminconsent
?client_id={client-id}
&scope=.default
&redirect_uri={redirect-url}
https://login.microsoftonline.com/{tenant-id}/v2.0/adminconsent
?client_id={client-id}
&scope=https://graph.microsoft.com/User.Read
&redirect_uri={redirect-url}
https://login.microsoftonline.com/{tenant-id}/adminconsent
?client_id={client-id}
&redirect_uri={redirect-url}
参考:https://docs.microsoft.com/azure/active-directory/develop/v2-admin-consent