将AAD Graph API作为特定用户进行查询

时间:2016-11-14 21:15:10

标签: c# azure azure-active-directory azure-ad-graph-api

  • 我有一个webapi,由服务代表用户调用。
  • 我有用户ID,但没有他们的身份验证令牌。

我的目标是检查此用户是否属于指定的群组。

我正在尝试使用服务帐户连接到图表,但我不确定如何。我曾尝试查看UserPasswordCredential,但AcquireTokenAsync并未将其作为参数,但确实需要UserAssertion我无法找到有关正确构造该对象的文档。< / p>

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:2)

如果您使用.Net Framework进行开发,AcquireTokenAsync会使用UserPasswordCredential提供修补程序。

以下是供您参考的代码示例:

AuthenticationContext authenticationContext = new AuthenticationContext(UserModeConstants.AuthString, false);
string resrouce = "";
string clientId = "";
string userName = "";
string password = "";
UserPasswordCredential userPasswordCredential = new UserPasswordCredential(userName, password);
var token= authenticationContext.AcquireTokenAsync(resrouce, clientId, userPasswordCredential).Result.AccessToken;

我使用的是版本3.13.5.907 Microsoft.IdentityModel.Clients.ActiveDirectory。此方法仅适用于您在Azure AD上注册的本机客户端应用程序,因为它不提供凭据。如果您希望它适用于Web应用程序/ Web API,您可以直接发出HTTP请求,如下所示:

POST: https://login.microsoftonline.com/xxxxx.onmicrosoft.com/oauth2/token

Content-Type: application/x-www-form-urlencoded
resource={resource}&client_id={clientId}&grant_type=password&username={userName}&password={password}&scope=openid&client_secret={clientSecret}