Azure AD Graph API未返回“创建用户”的“用户GUID”

时间:2017-08-30 21:06:12

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

这是我发送请求的帖子格式的URL。

https://graph.windows.net/myorganization/users?api-version=1.6

我还使用访问令牌附加了Authentication header值Bearer。             request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", accessToken);

我正在请求身体中的这些元素

Content-type: application/json

{
  "accountEnabled": true,
  "displayName": "displayName-value",
  "mailNickname": "mailNickname-value",
  "userPrincipalName": "upn-value@tenant-value.onmicrosoft.com",
  "passwordProfile" : {
    "forceChangePasswordNextSignIn": true,
    "password": "password-value"
  }
}

来源:Link

这是我得到的回应

{StatusCode: 201, ReasonPhrase: 'Created', Version: 1.1, Content: System.Net.Http.NoWriteNoSeekStreamContent, Headers:
{
  Cache-Control: no-cache
  Date: Wed, 30 Aug 2017 19:11:40 GMT
  Pragma: no-cache
  Location: https://graph.windows.net/metadata/directoryObjects/metadata/Microsoft.DirectoryServices.User
  Server: Microsoft-IIS/8.5
  ocp-aad-diagnostics-server-name: servername
  request-id: req id
  client-request-id: client request id
  x-ms-dirapi-data-contract-version: 1.6
  ocp-aad-session-key: some random keys
  X-Content-Type-Options: nosniff
  DataServiceVersion: 3.0;
  Strict-Transport-Security: max-age=31536000; includeSubDomains
  Access-Control-Allow-Origin: *
  X-AspNet-Version: 4.0.30319
  X-Powered-By: ASP.NET
  X-Powered-By: ASP.NET
  Duration: 4425304
  Content-Length: 1271
  Content-Type: application/json; odata=minimalmetadata; streaming=true; charset=utf-8
  Expires: -1
}}

但我无法找到上面的Source链接中提到的任何Userdata / GUID。

任何帮助都将不胜感激。

2 个答案:

答案 0 :(得分:3)

您发布的回复仅包含标题。还有一个JSON正文(标题包括Content-Length: 1271)。

正如您在the link you posted中看到的那样,响应正文包含新的用户信息,包括用户的objectId,因此您应该解析正文。

答案 1 :(得分:1)

您将Azure Active Directory GraphMicrosoft Graph API混为一谈。这是两个不同的API。虽然Microsoft Graph API正在取代AAD Graph,但它们具有不同的方法和有效负载,因此代码在两者之间不可互换。他们还使用不同的令牌。

当您creating a user时,您希望{J}有效负载POST https://graph.microsoft.com/v1.0/users而非https://graph.windows.net/...

您还要确保申请User.ReadWrite.All范围,并且您要么使用全局管理员帐户,要么让全局管理员完成Admin Consent流程。这将为您提供在目录中创建用户所需的权限。