Authn.tech
首页
  • SAML 2.0
  • OAuth 2.0
  • OIDC
  • JWT / JOSE
  • WebAuthn / Passkey
  • MFA / TOTP
  • LDAP
  • GraphQL
  • SCIM 2.0
  • 国内平台 SSO
  • 工具总览
  • JWT 解析
  • JWT 签名
  • JWK 生成
  • JWK → PEM
  • PEM → JWK
  • PKCE 生成
  • OIDC Discovery
  • 扫码登录演示
  • TOTP
  • WebAuthn
  • SAML 编解码
  • SAML Metadata
  • SAML Response
  • 飞书 SAML
  • X.509 证书
  • PEM 解析
  • Base64URL
  • LDAP 过滤器
  • 概览 / 角色术语
  • OIDC Mock
  • SAML Mock
  • 邮件服务器
  • LDAP 目录
  • OIDC 登录演示
  • SAML 登录演示
  • 微信扫码登录
  • 企业微信扫码登录
  • 简体中文
  • English
  • Deutsch
GitHub
首页
  • SAML 2.0
  • OAuth 2.0
  • OIDC
  • JWT / JOSE
  • WebAuthn / Passkey
  • MFA / TOTP
  • LDAP
  • GraphQL
  • SCIM 2.0
  • 国内平台 SSO
  • 工具总览
  • JWT 解析
  • JWT 签名
  • JWK 生成
  • JWK → PEM
  • PEM → JWK
  • PKCE 生成
  • OIDC Discovery
  • 扫码登录演示
  • TOTP
  • WebAuthn
  • SAML 编解码
  • SAML Metadata
  • SAML Response
  • 飞书 SAML
  • X.509 证书
  • PEM 解析
  • Base64URL
  • LDAP 过滤器
  • 概览 / 角色术语
  • OIDC Mock
  • SAML Mock
  • 邮件服务器
  • LDAP 目录
  • OIDC 登录演示
  • SAML 登录演示
  • 微信扫码登录
  • 企业微信扫码登录
  • 简体中文
  • English
  • Deutsch
GitHub
  • SCIM 2.0

    • SCIM 2.0 概述
    • SCIM 资源与 Schema
    • SCIM 协议操作
    • SCIM 安全实现
    • SCIM 2.0 速查

SCIM 2.0 速查

标准端点

端点作用
/ServiceProviderConfig发现 PATCH、Bulk、filter、sort、ETag 和认证能力
/ResourceTypes发现资源类型、端点、核心 schema 与扩展
/Schemas发现 schema 与属性特征
/UsersUser 集合查询与创建
/Users/{id}单个 User 读取、替换、修改与删除
/GroupsGroup 集合查询与创建
/Groups/{id}单个 Group 读取、替换、修改与删除
/Bulk可选批量操作
/{ResourceType}/.search用 POST 执行查询

Base URL 和版本路径由服务提供方决定,例如 /scim/v2;客户端不应自行拼接未公布的根路径。

Schema URI

用途URI
Userurn:ietf:params:scim:schemas:core:2.0:User
Groupurn:ietf:params:scim:schemas:core:2.0:Group
EnterpriseUserurn:ietf:params:scim:schemas:extension:enterprise:2.0:User
ListResponseurn:ietf:params:scim:api:messages:2.0:ListResponse
PatchOpurn:ietf:params:scim:api:messages:2.0:PatchOp
SearchRequesturn:ietf:params:scim:api:messages:2.0:SearchRequest
Errorurn:ietf:params:scim:api:messages:2.0:Error
BulkRequest / BulkResponseurn:ietf:params:scim:api:messages:2.0:BulkRequest / BulkResponse

HTTP 与媒体类型

操作方法与结果
创建POST /Users,成功 201 Created
列表/过滤GET /Users?...,成功 200 OK
读取GET /Users/{id},成功 200 OK
完整替换PUT /Users/{id},成功 200 OK
部分修改PATCH /Users/{id},成功返回 200 OK + 完整资源,或 204 No Content + 版本/位置响应头
删除DELETE /Users/{id},成功 204 No Content
请求/响应类型application/scim+json

常见状态与 scimType

HTTP常见含义可见 scimType 示例
400请求或过滤器无效、结果过多invalidFilter、tooMany、invalidSyntax、invalidPath、invalidValue、noTarget
401未认证或 token 无效—
403权限不足—
404资源不存在—
409唯一性冲突uniqueness
412If-Match 版本不匹配—
413请求体过大—
429请求过多—
500服务端错误—

错误响应示例:

{
  "schemas": ["urn:ietf:params:scim:api:messages:2.0:Error"],
  "status": "409",
  "scimType": "uniqueness",
  "detail": "userName already exists"
}

status 在 SCIM 错误对象中是字符串形式的 HTTP 状态码。detail 应便于排错但不得泄露其他租户数据或内部栈信息。

接入流程

  1. 获取客户专属 Base URL 和认证配置;
  2. 读取 /ServiceProviderConfig、/ResourceTypes 和 /Schemas;
  3. 约定身份真源、属性映射、唯一键和 externalId;
  4. 先实现 User 查询、创建、PATCH 与 active=false;
  5. 再实现 Group 与成员 PATCH;
  6. 加入分页、过滤、标准错误、ETag 和安全重试;
  7. 仅在发现支持后使用 sort、Bulk 等可选能力;
  8. 用入职、改名、换部门、组变更、离职、重复请求和并发更新做端到端验收。

规范链接

  • RFC 7642:定义、概览、概念与需求
  • RFC 7643:Core Schema
  • RFC 7644:Protocol
  • RFC 9967:SCIM Profile for Security Event Tokens
最近更新: 2026/7/28 07:29
贡献者: linux
Prev
SCIM 安全实现