共用方式為

Microsoft Entra 用户预配服务的 SCIM 2.0 协议符合性的已知问题和解决方法

Microsoft Entra ID 可以自动将用户和组预配到 Web 服务前端的任何应用程序或系统,该接口在 跨域标识管理系统 (SCIM) 2.0 协议规范中定义。

Microsoft SciM 2.0 协议的 Entra 支持在“使用跨域标识管理系统”(SCIM)中介绍了如何自动将用户和组从Microsoft Entra ID 预配到应用程序,其中列出了它实现的协议的特定部分,以便自动将用户和组从 Microsoft Entra ID 预配到支持 SCIM 2.0 的应用程序。

本文介绍Microsoft Entra 用户预配服务遵守 SCIM 2.0 协议的当前和过去问题,以及如何解决这些问题。

了解预配作业

预配服务使用作业的概念来针对应用程序进行操作。 可在 进度栏中找到 jobID。 所有新的预配应用程序都以 jobID 开头 scim创建。 scim 作业表示服务的当前状态。 较旧的作业具有 ID customappsso。 此作业表示 2018 年服务的状态。

如果在库中使用应用程序,该作业通常包含应用的名称(例如 zoom snowFlake 或 dataBricks)。 使用库应用程序时,可以跳过本文档。 这主要适用于具有 jobID SCIM 或 customAppSSO 的非库应用程序。

SCIM 2.0 符合性问题和状态

在 中,任何标记为固定的项都意味着可以在 SCIM 作业上找到适当的行为。 我们努力确保对所做更改的向后兼容性。 建议对任何新实现使用新行为并更新现有实现。 不再支持在 2018 年 12 月之前默认的 customappSSO 行为。

注释

对于 2018 年所做的更改,可以恢复为 customappsso 行为。 对于自 2018 年以来所做的更改,可以使用 URL 还原回旧行为。 我们努力确保对所做更改的向后兼容性,让你能够还原到旧的 jobID 或使用标志。 但是,如前所述,我们不建议实施旧行为,因为它不再受支持。 建议对任何新实现使用新行为并更新现有实现。

SCIM 2.0 符合性问题 固定? 修复日期 向后兼容性
Microsoft Entra ID 要求“/scim”位于应用程序的 SCIM 终结点 URL 的根目录中 是的 2018 年 12 月 18 日 降级到 customappSSO
扩展属性在属性名称之前使用点 . 表示法,而不是冒号“:”表示法 是的 2018 年 12 月 18 日 降级到 customappSSO
多值属性的修补请求包含无效的路径筛选器语法 是的 2018 年 12 月 18 日 降级到 customappSSO
组创建请求包含无效的架构 URI 是的 2018 年 12 月 18 日 降级到 customappSSO
更新 PATCH 行为以确保符合性(如布尔和适当的组成员身份删除) TBD 使用功能标志

用于更改 SCIM 行为的标志

使用应用程序的租户 URL 中的标志来更改默认 SCIM 客户端行为。

SCIM 标志到以后的行为。

使用以下 URL 更新 PATCH 行为并确保 SCIM 符合性。 该标志更改以下行为:

  • 对禁用用户的请求
  • 添加单值字符串属性的请求
  • 替换多个属性的请求
  • 删除组成员的请求

此行为目前仅在使用标志时可用,但将成为未来几个月的默认行为。 请注意,此功能标志当前不适用于按需预配。

用于帮助概述同步引擎当前发送的内容的示例请求,以及启用功能标志后发送的请求。

对禁用用户的请求:

没有功能标志

{
  "schemas": [
      "urn:ietf:params:scim:api:messages:2.0:PatchOp"
  ],
  "Operations": [
      {
          "op": "Replace",
          "path": "active",
          "value": "False"
      }
  ]
}

使用功能标志

{
  "schemas": [
      "urn:ietf:params:scim:api:messages:2.0:PatchOp"
  ],
  "Operations": [
      {
          "op": "replace",
          "path": "active",
          "value": false
      }
  ]
}

请求添加单值字符串属性:

没有功能标志

{
  "schemas": [
      "urn:ietf:params:scim:api:messages:2.0:PatchOp"
  ],
  "Operations": [
    {
      "op": "Add",
      "path": "nickName",
      "value": "Babs"
    }
  ]
}

使用功能标志

{
  "schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"],
  "Operations": [
    {
      "op": "add",
      "path": "nickName",
      "value": "Babs"
    }
  ]
}

替换多个属性的请求:

没有功能标志

{
  "schemas": [
      "urn:ietf:params:scim:api:messages:2.0:PatchOp"
  ],
  "Operations": [
      {
          "op": "Replace",
          "path": "displayName",
          "value": "Pvlo"
      },
      {
          "op": "Replace",
          "path": "emails[type eq \"work\"].value",
          "value": "TestBcwqnm@test.microsoft.com"
      },
      {
          "op": "Replace",
          "path": "name.givenName",
          "value": "Gtfd"
      },
      {
          "op": "Replace",
          "path": "name.familyName",
          "value": "Pkqf"
      },
      {
          "op": "Replace",
          "path": "externalId",
          "value": "Eqpj"
      },
      {
          "op": "Replace",
          "path": "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User:employeeNumber",
          "value": "Eqpj"
      }
  ]
}

使用功能标志

{
  "schemas": [
      "urn:ietf:params:scim:api:messages:2.0:PatchOp"
  ],
  "Operations": [
      {
          "op": "replace",
          "path": "emails[type eq \"work\"].value",
          "value": "TestMhvaes@test.microsoft.com"
      },
      {
          "op": "replace",
          "value": {
              "displayName": "Bjfe",
              "name.givenName": "Kkom",
              "name.familyName": "Unua",
              "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User:employeeNumber": "Aklq"
          }
      }
  ]
}

请求删除组成员:

没有功能标志

{
  "schemas": [
      "urn:ietf:params:scim:api:messages:2.0:PatchOp"
  ],
  "Operations": [
      {
          "op": "Remove",
          "path": "members",
          "value": [
              {
                  "value": "u1091"
              }
          ]
      }
  ]
}

使用功能标志

{
  "schemas": [
      "urn:ietf:params:scim:api:messages:2.0:PatchOp"
  ],
  "Operations": [
      {
          "op": "remove",
          "path": "members[value eq \"7f4bc1a3-285e-48ae-8202-5accb43efb0e\"]"
      }
  ]
}
  • 降级 URL: 新 SCIM 兼容行为成为非库应用程序的默认行为后,可以使用以下 URL 回滚到旧的不符合 SCIM 的行为:AzureAdScimPatch2017

后续步骤

详细了解如何预配和取消预配 SaaS 应用程序