图表API客户端令牌身份验证问题

时间:2015-10-23 01:42:01

标签: azure asp.net-mvc-4 active-directory owin azure-ad-graph-api

我的网站正在使用GraphClient库(http://www.nuget.org/packages/Microsoft.Azure.ActiveDirectory.GraphClient)来查询Azure AD。它使用自己的凭据和授权令牌来访问graph.windows.net,这很好。

我试图更改它,以便当用户登录我的网站并使用他们自己的Microsoft租户帐户进行身份验证时,我的网站会使用该用户令牌而非其(网络服务器)查询graph.windows.net自己的。

我使用OWIN中间件,OpenID针对Microsoft进行身份验证,最后使用GraphClient来查询AzureAD。

现在我的流程在OWIN Notifications => AuthorizationCodeReceived我做一个AcquireTokenByAuthorizationCode()来检索用户的AccessToken,然后我尝试连接到GraphClient,就像这样..

new ActiveDirectoryClient(
  new Uri(graphResourceID + '/' + tenantID),
  async () => userAccessToken
)

GraphClient始终会返回一个回复说“特权不足”。我检查的所有电话。但是如果我向graph.windows.net REST API创建一个简单的HTTPClient请求并注入" Bearer"使用上面的userAccessToken的authoriaztion头,然后Graph API给了我一个有效的响应。

为什么GraphClient库返回的权限不足'什么时候一个简单的HTTPClient请求工作正常?

1 个答案:

答案 0 :(得分:1)

连接到Azure Active Directory,您应该能够为应用程序配置权限:

enter image description here

enter image description here