2017-09-25 126 views
1

我有一个Azure AD B2C。由于Azure Active Directory已迁移到新门户,因此使用Azure Graph API读取和写入租户用户数据时遇到问题。之前,我有一个从旧门户创建的应用程序,现在无法使用。Azure图形API:使用Azure AD禁止的错误403 B2C

所以,我创建的新门户的新的应用程序,如下:

  • 打开“Azure的活动目录”选项卡
  • 打开“应用程序注册”
  • 单击“新建应用程序注册”
  • “属性” 选项卡中有:

  • “回复的URL” 选项卡中有:

    • https://开头图。 windows.net/winbizdev.onmicrosoft.com
  • “所需的权限” 选项卡中有:

    • 的Windows Azure Active Directory的 - >检查不需要管理员
  • “键” 选项卡中有3个要素:

    • CLIENT_SECRE t内永不过期

现在这里是我的C#代码从Azure的图形API访问用户数据:

 _authContext = new AuthenticationContext("https://login.microsoftonline.com/myTenant.onmicrosoft.com"); 
     _credential = new ClientCredential("<Application Client Guid>", "<Client secret which I created in "Keys" tab"); 
     var result = await _authContext.AcquireTokenAsync("https://graph.windows.net/", _credential);   
     var http = new HttpClient(); 
     var graphUrl = "https://graph.windows.net/myTenant.onmicrosoft.com/users/<My User Guid>?api-version=1.6";  
     var request = new HttpRequestMessage(new HttpMethod("GET"), graphUrl); 
     request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", result.AccessToken);  
     var response = await http.SendAsync(request); 
     return response; 

我总是得到一个403错误紫禁城。程序集“Microsoft.IdentityModel.Clients.ActiveDirectory”的版本是3.13.8.99。

那么,我的配置有什么问题?使用Azure Graph API再次读取和写入用户租户用户数据需要做些什么?

感谢您的帮助!

Alex

回答

0

您正在使用client credential flow获取访问令牌。这意味着您需要在Required permissions刀片上添加相关的应用权限

Azure广告图形api的所有应用程序权限都需要管理员同意。在添加应用程序权限后,请点击Grant Permissions按钮(以管理员帐户登录)。

+0

感谢您的回复和您的帮助! 在我的AD中,我只看到“会员”的用户。 我尝试创建一个“全局管理员”用户,但我打开他的属性,这个用户是“成员”。 所以,我不知道如何拥有或创建一个管理员,他的广告可以授予所有其他用户的恶意... 我该怎么做? –

+0

你可以将目录角色更改为'Global admin'吗?您帐户的目录角色是什么?如果不是'global admin',请索取公司的IT支持 –

+0

对不起,我没有在右边的标签中看到。我在“个人资料”标签中看到,“用户类型”是“成员”。但在“目录角色”中,我们检索从旧门户创建的全局管理员。 最后一个问题:因为随着从旧门户迁移到新门户,配置发生了变化,您是否知道是否计划了其他更改?我问这个问题,因为在这个迁移之前,我们可以没有问题地访问Graph API,然后突然没有任何工作,我们不得不改变我们的配置。 但现在,所有的作品再次。所以,感谢您宝贵的帮助! –