You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

是否存在向身份提供商写入用户属性的开放标准API?

基于开放标准实现客户端向身份提供商写入用户属性的方案

1. OpenID Connect (OIDC) UserInfo 端点扩展(PATCH 方法)

OIDC 原生规范以用户属性读取为主,但多数主流身份提供商(IDP)都支持通过PATCH 请求扩展/userinfo端点,实现用户属性的更新:

  • 权限要求:客户端需申请专属更新权限的 scope(如profile:write或自定义的user_attributes:edit),认证时通过 Access Token 携带该权限
  • 请求示例:
PATCH /userinfo
Authorization: Bearer {valid_access_token}
Content-Type: application/json

{
  "nickname": "dev_john",
  "myapp_notification_setting": "daily"
}
  • 适配场景:既支持修改 OIDC 标准 Claims(如姓名、昵称),也可写入自定义属性,能满足跨客户端共享属性的需求

2. SCIM 2.0(跨域身份管理系统)

SCIM 是专门针对身份数据 CRUD 设计的开放标准,完全覆盖用户属性读写需求:

  • 核心操作:通过PUT或PATCH请求/Users/{user_id}端点更新用户属性,客户端需通过 OAuth 2.0 Access Token 完成认证
  • 请求示例(PATCH 更新自定义应用偏好):
PATCH /Users/{user_uuid}
Authorization: Bearer {valid_access_token}
Content-Type: application/json-patch+json

[
  {
    "op": "replace",
    "path": "/urn:ietf:params:scim:schemas:extension:myapp:2.0:User/preferences",
    "value": {"theme": "dark", "auto_save": true}
  }
]
  • 适配场景:适合需要复杂属性结构、跨系统同步用户数据的场景——应用专属偏好可放在自定义扩展 Schema 下,共享属性使用 SCIM 标准字段

3. OAuth 2.0 Claims 管理扩展

部分 IDP 遵循 RFC 7519(JWT)扩展规则,提供专门的 Claims 管理端点,结合 OAuth 2.0 权限体系实现属性写入:

  • 权限要求:客户端需获取update_user_claims类的 scope,请求时携带用户标识与待更新的 Claims 集合
  • 优势:完全兼容 OIDC 生态,无需引入额外协议,适合轻量属性更新场景

场景匹配建议

  • 场景1(应用专属偏好):优先使用 SCIM 自定义扩展 Schema,或在 OIDC UserInfo 中使用带应用前缀的自定义字段(如myapp_theme),避免与其他客户端属性冲突
  • 场景2(跨客户端共享属性):使用 OIDC 标准 Claims 的更新(通过 UserInfo PATCH)或 SCIM 标准用户字段,确保属性在所有授权客户端间同步

内容的提问来源于stack exchange,提问作者pixelistik

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 08:20:32