这是我发送请求的帖子格式的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。
任何帮助都将不胜感激。
答案 0 :(得分:3)
您发布的回复仅包含标题。还有一个JSON正文(标题包括Content-Length: 1271
)。
正如您在the link you posted中看到的那样,响应正文包含新的用户信息,包括用户的objectId
,因此您应该解析正文。
答案 1 :(得分:1)
您将Azure Active Directory Graph与Microsoft 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流程。这将为您提供在目录中创建用户所需的权限。