【发布时间】:2020-06-24 00:28:43
【问题描述】:
环境以多租户方式配置。 “AppName”是一个通用 AD 中的应用注册,其创建目的是为了让来自不同租户的用户访问单个环境。为了便于描述,将多租户称为 AD1、AD2 和 AD3。
当来自这些 AD 之一的用户(没有管理员权限)第一次登录时会显示此消息。
AppName 需要访问组织中只有管理员才能授予的资源的权限
此外,在应用程序异常记录中,我可以看到以下错误
Microsoft.IdentityModel.Protocols.OpenIdConnect.OpenIdConnectProtocolException:“OpenIdConnectMessage.Error 不为空,表示错误。错误:'access_denied'。Error_Description(可能为空):'AADSTS650056:应用程序配置错误。这可能是由于一个以下情况:客户端在客户端的应用程序注册中的请求权限中没有列出任何“AAD Graph”权限。或者,管理员没有在租户中同意。或者,检查请求中的应用程序标识符以确保它匹配配置的客户端应用程序标识符。请联系您的管理员修复配置或代表租户同意。
前提是 AD1 的用户要成功访问环境,AD1 的 Admin 用户必须首先登录并授予管理员访问权限。 “普通AD”应用注册配置如下。
App Registration 中 Supported account types 选项设置为
任何组织目录中的帐户(任何 Azure AD 目录 - 多租户)
唯一的 API 权限如下图所示。 “Granted for ....”状态仅指租户 ID 所在的“公共 AD” - 它不授予管理员对 任何 AD 的同意。
代码中使用的技术是带有 OpenIDConnect 的 ADAL.Net。我们正在使用:https://login.microsoftonline.com/common (V1.0) 端点。
在下面显示的 sn-p 中,在此 url 中找到在我们的案例中设置的唯一 API 权限。“需要管理员同意”设置为“否”。
这就是让我失望的原因。为什么会弹出消息/错误?由于这是多租户方案,是否需要始终获得管理员同意?这个管理员是否同意,在某种程度上,在公共 AD 和多租户 AD 之间建立信任?
【问题讨论】:
标签: azure azure-active-directory multi-tenant adal azure-ad-graph-api