从多租户应用程序查询租户 Azure AD

Querying a tenants Azure AD from a multi-tenant Application

我们有一个多租户 Saas 应用程序,使用我们的 username/pwd 身份验证系统和 Azure AD(OAuth 2.0 流程)提供登录。当用户使用 Azure AD 登录时,我们可以使用 https://graph.windows.net/{tenantid}/me 获取用户的个人资料。但是,我们希望使用 memberOf 或 getMemberGroups 操作获取更多信息,以检索租户目录中的用户组,将特定组从租户映射到我们应用程序中的组织结构。但是,这些操作总是失败并显示禁止状态代码。我们是否缺少所需的权限,或者只是无法查询其他租户的组和角色。

提前致谢

这完全有可能,但今天需要您请求 "Read Directory" 许可。此权限确实需要租户的管理员同意。我们正在考虑为 Graph API 添加一些额外的细粒度权限,以允许用户同意(以获取群组成员信息)。

您的另一个选择是将您的应用程序配置为请求组成员身份声明(它应该出现在任何用户或 JWT 令牌中)。您可以通过转到 Azure 管理门户并进入您的应用程序的配置页面来执行此操作。从那里下载应用程序清单文件并更新 groupMembershipClaims 属性。您可以在此处描述的应用程序清单中看到大部分属性:https://msdn.microsoft.com/en-us/library/azure/dn151677.aspx. Once updated, you can upload this app manifest file, and this will configure your application accordingly. Once done, AAD will issue group membership claims in the token. Dushyant has written a nice blog about authorizing access to a web app, using group membership claims or app roles. You can find it via Alex Simons blog post here: http://blogs.technet.com/b/ad/archive/2014/12/18/azure-active-directory-now-with-group-claims-and-application-roles.aspx

HTH