使用 SCIM 2.0 预配 Azure AD 用户
Azure AD User Provisioning with SCIM 2.0
我正在尝试使用 Azure AD 配置 SCIM 2.0
作为前提,我的产品有一个 SCIM 服务器,我正在实施 PATCH 端点以与 Okta 和 Microsoft Azure AD 一起使用。
我已经完成了 Okta 的测试,所以我现在正在尝试使用 Azure AD。
我读了这个postactive-directory-scim-provisioning and the SCIM 2.0 Specification Section 3.5.2。
我使用以下映射在我们的 Azure AD 上设置了一个企业应用程序
然后,Azure AD 发送以下 JSON POST 请求以创建分配给应用程序的用户到我的服务器:
POST:
{
"active": true,
"displayName": "$DISPLAY_NAME",
"emails": [
{
"primary": true,
"type": "work",
"value": "$EMAIL"
}
],
"externalId": "$EXTERNAL_ID",
"meta": {
"resourceType": "User"
},
"name": {
"formatted": "$FORMATTED"
},
"schemas": [
"urn:ietf:params:scim:schemas:core:2.0:User",
"urn:ietf:params:scim:schemas:extension:enterprise:2.0:User"
],
"userName": "$USER_NAME"
}
我可以正确处理 POST 请求,但我无法使用来自 Azure AD 的 PATCH 请求。
补丁:
{
"Operations": [
{
"op": "Replace",
"path": "name.givenName",
"value": [
{
"$ref": null,
"value": "$VALUE"
}
]
},
{
"op": "Replace",
"path": "name.familyName",
"value": [
{
"$ref": null,
"value": "$VALUE"
}
]
}
],
"schemas": [
"urn:ietf:params:scim:api:messages:2.0:PatchOp"
]
}
即使目标是单值属性,value
属性的类型是否正确(根据规范)?在这种情况下 $ref
属性的使用是否正确?
还是我误解了规范?
他们在 value
实现非复杂对象时犯了一个错误。您可以在此处阅读更多相关信息 https://social.msdn.microsoft.com/Forums/lync/en-US/e2200b69-4333-41ea-9f51-717d316c7751/automatic-user-provisioning-scim-restful-patch-payload-issue?forum=WindowsAzureAD
他们已于 2018 年 12 月 18 日修复它 :)
我正在尝试使用 Azure AD 配置 SCIM 2.0
作为前提,我的产品有一个 SCIM 服务器,我正在实施 PATCH 端点以与 Okta 和 Microsoft Azure AD 一起使用。
我已经完成了 Okta 的测试,所以我现在正在尝试使用 Azure AD。
我读了这个postactive-directory-scim-provisioning and the SCIM 2.0 Specification Section 3.5.2。
我使用以下映射在我们的 Azure AD 上设置了一个企业应用程序
然后,Azure AD 发送以下 JSON POST 请求以创建分配给应用程序的用户到我的服务器:
POST:
{
"active": true,
"displayName": "$DISPLAY_NAME",
"emails": [
{
"primary": true,
"type": "work",
"value": "$EMAIL"
}
],
"externalId": "$EXTERNAL_ID",
"meta": {
"resourceType": "User"
},
"name": {
"formatted": "$FORMATTED"
},
"schemas": [
"urn:ietf:params:scim:schemas:core:2.0:User",
"urn:ietf:params:scim:schemas:extension:enterprise:2.0:User"
],
"userName": "$USER_NAME"
}
我可以正确处理 POST 请求,但我无法使用来自 Azure AD 的 PATCH 请求。
补丁:
{
"Operations": [
{
"op": "Replace",
"path": "name.givenName",
"value": [
{
"$ref": null,
"value": "$VALUE"
}
]
},
{
"op": "Replace",
"path": "name.familyName",
"value": [
{
"$ref": null,
"value": "$VALUE"
}
]
}
],
"schemas": [
"urn:ietf:params:scim:api:messages:2.0:PatchOp"
]
}
即使目标是单值属性,value
属性的类型是否正确(根据规范)?在这种情况下 $ref
属性的使用是否正确?
还是我误解了规范?
他们在 value
实现非复杂对象时犯了一个错误。您可以在此处阅读更多相关信息 https://social.msdn.microsoft.com/Forums/lync/en-US/e2200b69-4333-41ea-9f51-717d316c7751/automatic-user-provisioning-scim-restful-patch-payload-issue?forum=WindowsAzureAD
他们已于 2018 年 12 月 18 日修复它 :)