1

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

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

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

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

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

GraphClient 总是对我检查的所有调用返回一个“权限不足”的响应。但是,如果我向 graph.windows.net REST API 创建一个简单的 HTTPClient 请求,并从上面使用 userAccessToken 注入“Bearer”授权标头,那么 Graph API 会给我一个有效的响应。

当一个简单的 HTTPClient 请求正常工作时,为什么 GraphClient 库会返回“权限不足”?

4

1 回答 1

1

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

在此处输入图像描述

在此处输入图像描述

于 2016-01-26T00:55:50.030 回答