在Azure AD多租户环境中是否始终需要获得管理员同意?

问题描述 投票:0回答:1

以多租户方式配置环境。 “ AppName”是通用AD中的应用注册,其创建目的仅是为了使不同租户的用户可以访问单个环境。为了我的描述,请调用多租户AD1,AD2和AD3。

当来自其中一个AD(没有管理员权限)的用户首次登录时,将显示此消息。

AppName需要权限来访问组织中只有管理员才能授予的资源

另外,在应用程序异常日志中,我可以看到以下错误

Microsoft.IdentityModel.Protocols.OpenIdConnect.OpenIdConnectProtocolException:“ OpenIdConnectMessage.Error不为null,表示错误。错误:'access_denied'。Error_Description(可能为空):'AADSTS650056:应用程序配置错误。这可能是由于以下原因之一造成的:以下内容:客户端尚未在客户端的应用程序注册中请求的权限中列出“ AAD Graph”的任何权限;或者,管理员未在租户中表示同意;或者,检查请求中的应用程序标识符以确保它与已配置的客户端应用程序标识符。请代表您的租户联系您的管理员,以修改配置或同意。

前提是,AD1中的用户要成功访问环境,AD1中的Admin用户必须首先登录并授予admin访问权限。“通用AD”应用程序注册的配置如下。

[应用程序注册中的支持的帐户类型选项设置为

任何组织目录中的帐户(任何Azure AD目录-多租户)

唯一的API权限如下图所示。状态“为...授予”仅指租户ID所在的“公共AD”,它不授予any AD的管理员同意。

API Permission

代码中使用的技术是带有OpenIDConnect的ADAL.Net。我们正在使用:https://login.microsoftonline.com/common(V1.0)端点。

在以下示例中,在此url中找到我们所设置的唯一API权限。“需要管理员同意”设置为“否”。

User.Read permission does not require Admin consent

这就是让我失望的原因。为什么会弹出消息/错误?因为这是一个多租户方案,是否必须征得管理员的同意[[always?此管理员是否同意在公共AD和多租户AD之间建立信任?

azure azure-active-directory multi-tenant adal azure-ad-graph-api
1个回答
0
投票
是。如果是多租户,则管理员必须加入他们的租户。只有在完成注册过程之后,用户才能登录。此外,屏幕快照中显示的管理员同意与租约类型无关或无关,它是特定于许可的。应用程序权限和某些委派的权限需要管理员同意。

https://docs.microsoft.com/en-us/azure/active-directory/develop/howto-convert-app-to-be-multi-tenant#understand-user-and-admin-consent

https://github.com/Azure-Samples/active-directory-aspnetcore-webapp-openidconnect-v2/blob/master/2-WebApp-graph-user/2-3-Multi-Tenant/README.md

© www.soinside.com 2019 - 2024. All rights reserved.