解析 SystemForCrossDomainIdentityManagementBadResponse

Resolving SystemForCrossDomainIdentityManagementBadResponse

我已经在我们的应用程序中实现了这个SCIM reference code

我实现的代码确实通过了此 postman link 中存在的 Users 的所有测试集合。我的 SCIM Api 也被 Azure 接受为用户的有效端点。

当我尝试从 Azure 门户 为用户执行按需提供 时,真正的问题开始了。

我收到以下错误代码:SystemForCrossDomainIdentityManagementBadResponse

错误消息:响应中缺少必需的属性。缺少的属性是标识符。这是回复:

{
    "result": {
        "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User": {},
        "active": true,
        "displayName": "Chris Brown",
        "emails": [
            {
                "type": "work",
                "primary": true,
                "value": "chris.brown@xyz.com"
            }
        ],
        "meta": {
            "resourceType": "User",
            "created": "2022-04-21T05:27:03.774148Z",
            "lastModified": "2022-04-21T05:27:03.774148Z",
            "version": null,
            "location": null
        },
        "name": {
            "formatted": "Chris Brown",
            "familyName": "Brown",
            "givenName": "Chris"
        },
        "preferredLanguage": "en-GB",
        "userName": "chris.brown@xyz.com",
        "externalId": "chris.brown",
        "id": "a99b4da2-ab2f-49fc-8a01-4a9ce251fbdb",
        "schemas": [
            "urn:ietf:params:scim:schemas:core:2.0:User",
            "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User"
        ]
    },
    "targetUrl": null,
    "success": true,
    "error": null,
    "unAuthorizedRequest": false,
}

如您所见,我在响应中添加了 id(标识符)。现在我对错误消息传达的内容感到困惑。

请帮忙。

用于清楚了解 Azure 门户中的错误消息的图像:

您的回答不符合 SCIM 规范。对 POST 的响应(我认为这就是它的截图)将实际响应嵌套在规范中根本未定义的“结果”对象中。

查看 https://datatracker.ietf.org/doc/html/rfc7644#section-3.3 以获取对 POST 的正确响应示例。

此外,在您的响应中,除了“请求”attribute/object 之外,还有许多属性未在规范中定义,因此不符合规范。那些将是:

“targetUrl”:空, “成功”:真实, “错误”:空, “unAuthorizedRequest”:错误,