Microsoft Graph如何使用多租户应用程序注册访问客户端目录

时间:2018-12-20 07:42:18

标签: c# microsoft-graph multi-tenant msal

我已经在启用了多租户的Azure AD(AAD)中进行了应用注册。此注册已在另一个(客户)AAD租户中成功注册(已获得管理员同意)。

我正在使用.Net Core 2.1和MSAL 2.0库进行身份验证。

当我从原始AAD(在其中创建应用程序注册)的用户登录时,我需要从我们的管理应用程序访问带有Microsoft Graph的客户端AAD,以读取客户端AAD组。

我已关注本文https://docs.microsoft.com/en-us/graph/auth-v2-service,并向客户端AAD请求了令牌(第4步)。当我使用此令牌访问客户端AAD组时,出现访问被拒绝错误。

当我在客户端租户AAD中创建未启用多租户的应用程序注册时,它运行良好。我想实现的目标难道不是吗?我以为我不是唯一想要从管理应用程序访问客户端AAD的人,但是我找不到其他任何描述此问题的文章。

1 个答案:

答案 0 :(得分:1)

  
    

当我从原始AAD(在其中创建应用程序注册)的用户登录时,我需要从我们的管理应用程序访问带有Microsoft Graph的客户端AAD,以读取客户端AAD组。

  

您只能使用客户AAD组织中的帐户登录,而不能使用原始AAD中的用户登录。除非您将用户从原始AAD添加到客户端AAD。

例如,您在AAD1中注册了一个应用程序,则可以使用AAD1中的帐户登录以管理受AAD1保护的资源;如果应用程序是多租户应用程序,则在AAD2中授予权限后,AAD2中的用户可以使用其帐户登录应用程序以管理受AAD2保护的资源。除非您以原始用户身份将原始AAD中的用户添加到客户端AAD中。

  
    

我已关注本文https://docs.microsoft.com/en-us/graph/auth-v2-service,并向客户端AAD请求了令牌(第4步)。当我使用此令牌访问客户端AAD组时,出现访问被拒绝错误。

  

您正在使用Client Credential Flow和应用程序的身份而非用户的身份来获取令牌。如果要使用用户身份登录应用,则应使用OAuth 2.0 code grant flow

相关问题