【问题标题】:Can SCIM update non SCIM-created resources?SCIM 可以更新非 SCIM 创建的资源吗?
【发布时间】:2020-11-24 23:53:41
【问题描述】:

具体来说,能否使用 SCIM 将用户添加到预先存在的(非 SCIM 创建的)组?我们需要通过 SCIM 提供用户,然后将他们添加到站点中手动创建的组(.Net 应用程序)。

据我了解,不能这样。组更新请求(即 PATCH 请求)似乎需要“id”属性作为组的唯一标识符,而这个“id”似乎只在 SCIM 创建请求中生成。因此,如果资源(组/用户)最初不是通过 SCIM 创建的,则 SCIM 无法更新/替换/删除它。对吗?

e.g. PATCH /Groups/acbf3ae7-8463-4692-b4fd-9b4da3f908ce

我想了一个变通约定,例如使用“user:1234”和“group:1234”作为“id”属性格式(即[资源类型]:[内部类型特定的ID]),然后是任何用户或组可以由“id”指定,即使它不是通过 SCIM 创建的。但这似乎很老套。

有没有更好的方法来做到这一点?非常感谢您的帮助,对 SCIM 非常陌生!

【问题讨论】:

    标签: provisioning scim


    【解决方案1】:

    是的,SCIM 可用于管理存在现有非 SCIM 创建对象的“棕地”场景。

    用户对象的典型逻辑流程是:

    • 使用具有唯一性约束的属性(例如用户名、电子邮件)的过滤器(如 RFC7644 3.4.2.2 中定义)获取 /users。
    • 如果没有找到符合该条件的用户,请使用 POST 到 /users 创建一个新用户
    • 如果找到了一个用户,即使它不是通过 SCIM 创建的,也应该返回一个 id 值

    “使用友好标识符搜索 -> 如果未找到则创建/缓存 id 值并将其与其他目录中的现有用户相关联”的一般逻辑非常简单,并且可以成功地与其他对象类型一起使用(即:组)也是如此。

    【讨论】:

      猜你喜欢
      • 2013-12-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多