跳转至

用户端点

用户端点

此端点允许创建、修改或删除用户,可通过以下路径访问:

<api-root>/scim/v2/Users

默认情况下,REP_USER 表中 FLAG_ELIMINATED(“删除标志”)列的值等于 DELETED('1')、RECODED('2') 或 FORGOTTEN('5') 的用户会被过滤掉,无法通过 SCIM API 提取。

操作

操作 Http 方法 请求正文 路径变量 查询字符串参数 应答正文 HTTP 响应正文 响应状态(SCIM 异常)
创建 POST User - - User 201(已创建) 405(方法不允许) 409(冲突)
读取 GET - userId - User 200(成功) 404(未找到)
删除 DELETE - userId - - 200(成功) 404(未找到)
替换 PUT User userId - User 200(成功) 404(未找到)
搜索 GET - - filter sortBy sortOrder startIndex count (所有参数均为可选) 用户列表 200(成功) 400(无效请求) 405(方法不允许)
更新 PATCH PatchRequest userId - User 200(成功) 400(无效请求) 404(未找到)

SCIM 异常

调用示例

HTTP 状态 描述
400(无效请求) 当请求不符合服务规范时发生,例如在过滤器定义不正确(参数错误/语法错误)时调用“搜索”方法,或在 Patch 请求无效时调用“更新”方法。
404(未找到) 当请求的资源不存在时发生;例如,尝试替换、更新、搜索或删除某个用户,但不存在与所用标识代码匹配的用户。
405(方法不允许) 当请求的端点不允许使用该 HTTP 方法时发生,或者所提供的序列化对象与该方法的预期对象不匹配时发生。例如,在请求正文中提供了不正确的用户对象。
409(冲突) 例如,当使用系统中已存在的用户 ID 代码请求创建新用户时发生。

支持的标准 SCIM 字段

下表列出了支持的标准 SCIM 用户字段。

SCIM 用户字段 支持的基数(仅集合) 支持的值
userName - -
name.givenName - -
name.familyName - -
emails 仅 1 *String *用于确定类型工作的公式
phoneNumbers 仅 1 *String *用于确定类型工作的公式
meta.lastModified
password
userType L(本地)/E(外部)
groups
preferredLanguage 仅 1 *LanguageCaption - CountryCaption
active True/False

*注意:preferredLanguage 字段仅支持 LanguageCaption - CountryCaption 格式的值(示例:en-US),且仅允许 Tagetik 应用程序管理的值

如果在创建或更新期间为 preferredLanguage 字段使用了不符合所需格式或应用程序未管理的值,将发送状态代码 '400 Bad request',并附带错误消息 'Invalid Language Code' 或 'Language Code Not Managed'。

自定义字段

下表列出了 CCH Tagetik 的自定义用户字段。

SCIM 用户字段 描述 支持的值
userReferences 指示新用户将从中继承角色的现有用户 -
locked 用户锁定状态 True/False(不可变,等于 'active' 字段的相反值)
mustChangePwdAtNextLogin 强制用户在下次登录时更改密码 True/False
interactionType 客户端交互类型 0(交互式)/1(机器对机器)
lastLogin 应用程序中的最后访问 -
validityStartDate 有效期开始日期 **
validityEndDate 有效期结束日期 **
descriptionLanguage 描述语言 -
userRoles 用户可访问的数据库列表及相应角色 -
dbAllowed 与用户关联的数据库列表,包含 ID、描述和锁定状态 -

**注意:在创建或更新时,可以为 validityStartDate 和 validityEndDate 字段指定时间。但输入的任何时间都会被忽略,两个字段均替换为 '00:00:00'。

SCIM 企业用户架构扩展字段

下表列出了支持的企业架构用户字段。

SCIM 用户字段 描述 支持的值
department 指定用户的部门 -

示例

显示所有用户的列表
方法 GET
URL <api-root>/scim/v2/Users
Body -
说明
获取单个用户
方法 GET
URL <api-root>/scim/v2/Users/MYUSER
Body -
示例应答 { "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:User", "urn:tgk:params:scim:schemas:extension:2.0:User", "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User" ], "id": "MYUSER", "externalId": "MYUSER", 'meta': { "resourceType': 'User', "lastModified": 1700149220782 }, "userName": "MYUSER", "name': { "familyName": "My", "givenName": "User". }, "userType': 'E', "preferredLanguage': 'en-IT', "active": true, "emails": [ { "value": "myuser@example.com" } ], "partiallyBlocked': false, "urn:tgk:params:scim:schemas:extension:2.0:User": { "userReferences": [ "REF_USER_CODE" ], "locked": false, "mustChangePwdAtNextLogin": false, "interactionType": "INTERACTIVE", "lastLogin": "2024-01-01T10:10:10.000Z", "validityStartDate": "2020-01-01T00:00:00Z", "validityEndDate": "2030-01-01T00:00:00Z", "descriptionLanguage": "es", "userRoles": [ { "dbId": "[!]", "role": "$ALL" }, { "dbId": "TCPM_DEMO_DEV", "role": "$ALL" } ], "dbAllowed": [ {"id": "TCPM_DEMO_DEV", "description": "TCPM_DEMO_DEV", "locked": false}] }, "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User": { "department": "User Department" }
说明 通过此请求,我们获取现有用户 MYUSER 的属性,其 preferredLanguage 为 'en-IT'。
创建新用户
方法 POST
URL <api-root>/scim/v2/Users
Body { "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:User" ], "externalId": "MYUSER", "userName": "MYUSER", "userType': 'E', "active": true, "preferredLanguage': 'en-IT', "emails":[ { "value":"myuser@example.com", "type":"work", "primary": true } ], "name": { "familyName": "User", "givenName": "My" }, "urn:tgk:params:scim:schemas:extension:2.0:User": { "userReferences": [ "REF_USER_CODE" ], "descriptionLanguage": "it" } }
说明 此请求添加一个外部用户 MYUSER,电子邮件为 myuser@example.com,preferredLanguage 为 'en-IT',并将引用用户设置为 'REF_USER_CODE'。
对现有用户应用更改
方法 PATCH
URL <api-root>/scim/v2/Users/MYUSER
Body { "schemas":["urn:ietf:params:scim:api:messages:2.0:PatchOp", "urn:tgk:params:scim:schemas:extension:2.0"], "Operations":[{ "op":"add", "path":"urn:tgk:params:scim:schemas:extension:2.0:User:userReferences", "value":["REF_USER_CODE"]}] }
说明 此请求将引用用户 'REF_USER_CODE' 添加到现有用户 'MYUSER'。 要替换现有引用用户,请使用 " "op":"replace" 而非 "op":"add"
对用户角色应用更改
方法 PATCH
URL <api-root>/scim/v2/Users/MYUSER
Body { "schemas":["urn:ietf:params:scim:api:messages:2.0:PatchOp", "urn:tgk:params:scim:schemas:extension:2.0"], "Operations":[{"op":"add", "path":"urn:tgk:params:scim:schemas:extension:2.0:User:userRoles", "value":[{"dbId":"DB_ID", "role":"COD_RUOLO"}]}] }
说明 此请求将角色 'COD_RUOLO' 添加到现有用户 'MYUSER' 的数据库 'DB_ID' 中。 要替换角色,请使用 ' "op":"replace" 而非 "op":"add"。 请注意,从 SP34 开始,对于涉及用户-应用程序数据库关联的添加和替换操作,"Application DB Restrictions" 字段将默认设置为 "Restricted",以确保与 CCH Tagetik Web 界面行为一致。
为电子邮件分配类型 'work'
方法 PATCH
URL <api-root>/scim/v2/Users/MYUSER
Body { "schemas":["urn:ietf:params:scim:api:messages:2.0:PatchOp", "urn:tgk:params:scim:schemas:extension:2.0", "urn:ietf:params:scim:schemas:extensions:enterprise:2.0:User"], "Operations":[{"op":"add", "path":"emails[type eq \"work\"].value", "value":"test@test.it"}]}] }