SCIM 配置发送意外的有效负载以进行用户停用

问题描述 投票:0回答:1

我根据他们的文档中列出的示例实现了 SCIM 2.0 与 Okta 的集成。

但是,我们收到了意外的用例请求。如果 Okta 发现用户已存在但已停用,我们会收到一个对

/Users/{id}
端点的请求,其负载如下:

{
  "totalResults": 1,
  "startIndex": 1,
  "itemsPerPage": 1,
  "schemas": [
    "urn:ietf:params:scim:api:messages:2.0:ListResponse"
  ],
  "resources": [
    {
      "name": {
        "formatted": "John Does"
      },
      "emails": [
        {
          "value": "[email protected]",
          "primary": true
        }
      ],
      "externalId": "113",
      "active": true,
      "id": "113",
      "schemas": [
        "urn:ietf:params:scim:schemas:core:2.0:User"
      ]
    }
  ],
  "Resources": [
    {
      "name": {
        "formatted": "John Does"
      },
      "emails": [
        {
          "value": "[email protected]",
          "primary": true
        }
      ],
      "externalId": "113",
      "active": true,
      "id": "113",
      "schemas": [
        "urn:ietf:params:scim:schemas:core:2.0:User"
      ],
      "natsRole": "nats/v1"
    }
  ],
  "active": false
}

此请求的 payload 使用架构

urn:ietf:params:scim:api:messages:2.0:ListResponse
。由于 URL 模式要求对一个用户进行更新,这似乎可能是 Okta 方面的一个错误,但我想知道这是否是 SCIM 规范的一部分,或者我们是否由于配置错误而从 Okta 收到此调用(我将其设置为仅支持推送新用户推送配置文件更新)。

这是一个错误还是设计使然?如果是,Spring Boot 控制器集成是否需要接受可能是两种模式类型之一的动态 RequestBody?

spring-boot okta scim2
1个回答
0
投票

如果您是 SCIM 服务器/服务提供商,而 Okta 是 SCIM 客户端,并且引用的 JSON 负载来自 Okta 的 SCIM 客户端 - 那么 Okta 的 SCIM 客户端不正确。 ListResponse 结构仅用于来自 SCIM 服务提供商的某些响应,绝不用于来自客户端的请求。

© www.soinside.com 2019 - 2024. All rights reserved.