Microsoft Graph - 在联合域

时间:2017-04-06 19:38:30

标签: office365 microsoft-graph

我们正在尝试在联合域上创建用户,而不发送JSON字段onPremisesImmutableId。正如Create User页面上所述,在这种情况下,此字段将成为强制性字段。

当我们发出这样的请求时,HTTP响应状态代码奇怪地是400而在响应有效负载中没有正确的消息。以下是一个示例。

是否有可能获得有关请求失败原因的准确消息?我们要问的原因是,在使这个域名联邦之前,同样的请求工作得非常好,但现在已经不行了。花了我们几个小时才弄清楚出了什么问题,文档最终给出了一个线索。

Request:
Invoke-WebRequest -Method POST https://graph.microsoft.com/v1.0/users -Headers @{"Authorization"="Bearer <access_token>"} -Body '{"accountEnabled":true,"displayName": "displayName-value","mailNickname": "mailNickname-value",  "userPrincipalName": "blah-blah","passwordProfile":{"password": "bleh"}}' -ContentType 'application/json'

===============

Response:
    status: 400 Bad Request
    Date: Thu, 06 Apr 2017 19:35:32 GMT
    x-ms-ags-diagnostic: {"ServerInfo":{"DataCenter":"South India","Slice":"SliceA","ScaleUnit":"000","Host":"AGSFE_IN_1","ADSiteName":"MAA"}}
    Duration: 148.322
    client-request-id: 516c451a-1052-4918-9671-2ebfa8d2f795
    Content-Type: application/json
    Access-Control-Allow-Origin: *
    Access-Control-Expose-Headers: ETag, Location, Preference-Applied, Content-Range, request-id, client-request-id
    Cache-Control: private
    Transfer-Encoding: chunked
    request-id: 516c451a-1052-4918-9671-2ebfa8d2f795

 {
  "error": {
    "code": "Request_BadRequest",
    "message": "One or more properties contains invalid values.",
    "innerError": {
      "request-id": "516c451a-1052-4918-9671-2ebfa8d2f795",
      "date": "2017-04-06T19:35:32"
    }
  }
}

1 个答案:

答案 0 :(得分:2)

您在联合域中创建用户的请求必须包含onPremisesImmutableId。这就是您的请求开始失败的原因(在将域转换为联合之后)。尽管此属性表明它是不可变的,但它意味着这应该是本地用户的不可变id的值 - 这样您就可以将本地用户对象绑定到云用户对象。如果未正确设置此属性,则联合登录将不起作用。此属性可以更新(虽然出于显而易见的原因不推荐),如果用户已被移动到非联合云专用域,则可以取消该属性。

如果您尝试在未设置onPremisesImmutableId的情况下在联合域中创建用户(或者甚至将用户的userPrincipalName更改为在联合域下而不设置onPremisesImmutableId),则400错误是合适的。该错误确实表明某些内容未正确设置 - 但是错误消息是我们做的事情*肯定需要努力改进,并且可以做得更精确。

希望这有帮助,