Azure active directory Azure AD用户配置与SCIM 2.0

Azure active directory Azure AD用户配置与SCIM 2.0,azure-active-directory,provisioning,scim,scim2,Azure Active Directory,Provisioning,Scim,Scim2,我正在尝试使用Azure AD进行SCIM 2.0资源调配 作为前提,我为我的产品安装了SCIM服务器,我正在实施补丁端点,以便与Okta和Microsoft Azure AD一起使用 我已经完成了Okta的测试,所以我现在正在尝试Azure广告 我阅读了这篇文章和SCIM 2.0规范 我使用以下映射在Azure广告上设置了一个企业应用程序 然后,Azure AD向我的服务器发送以下JSON POST请求,以创建分配给应用程序的用户: 帖子: { "active": true, "di

我正在尝试使用Azure AD进行SCIM 2.0资源调配

作为前提,我为我的产品安装了SCIM服务器,我正在实施补丁端点,以便与Okta和Microsoft Azure AD一起使用

我已经完成了Okta的测试,所以我现在正在尝试Azure广告

我阅读了这篇文章和SCIM 2.0规范

我使用以下映射在Azure广告上设置了一个企业应用程序

然后,Azure AD向我的服务器发送以下JSON 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"
}
{                                                                                                                                                                                                                                                                               
    "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"
    ]   
}
我可以正确处理POST请求,但我无法使用Azure AD的补丁请求

补丁:

{
  "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"
}
{                                                                                                                                                                                                                                                                               
    "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
属性的类型为Array,是否正确(根据规范)?在这种情况下,
$ref
属性的使用是否正确


还是我误解了规范?

他们在非复杂对象的
值实现上犯了错误。您可以在此处了解更多信息

他们已于2018年12月18日修复:)


我也在想同样的事情。你从李女士那里找到答案了吗?此外,它们还将布尔值作为字符串发送,例如“True”而不是True。@聪明的是,不,我没有,我只是实现了支持奇怪格式的特殊逻辑。