用户资料库迁移
IBM® Verify 提供了一种迁移用户资源库的简单方法。 验证用户身份的标准流程是使用提供的REST API。 您可以使用 CSV 导入方法快速接入用户。
- 手动输入
- CSV 导入 API
- 用户API(单个)
- 批量加载API(多个)
数据信息
- 数据格式
- 要使用 CSV 方法导入用户, Verify 您必须将用户存储库(无论是 LDAP 还是SQL数据库)转换为与 UTF-8 兼容的 CSV 格式。 确保您计划用于转换数据的方法支持这种格式。
- 用户的类型
- 请务必注意导入的用户类型。 如果您不熟悉 Verify 云目录模型,请阅读关于 Verify 目录结构的文章。 对于这项任务,导入的用户将获得一个标准的云目录用户账户,并附带一个本地密码,该密码在创建用户时生成。
regular用户类型决定了此类用户。 如果您只想导入用户的元数据,而无需本地密码,则必须替换realm和userCategory的属性值。 - 访问令牌
- 用于导入用户的 API 客户端必须在 IBM Verify 中至少拥有以下一种权限。
- 管理用户和组
- 同步用户和组
- 管理用户和标准组
获取 CSV 页眉
要正确构建用于导入的 CSV 文件,您需要先了解有哪些头部选项。 如果您熟悉用户模式,则标题名称等于SCIM中属性的标识符。 如果您使用的是自定义属性,则为属性创建时指定的值。
curl -X GET "https://${tenant_url}/v2.0/CSV/headerNames?filter=user" -H "Authorization: Bearer ${access_token}"
此响应包括所有可能的标题名称。 在CSV 中的a列中使用的名称位于 name 对象名称中。 在呼叫示例中,添加了一个用户过滤器,以防止返回“组”的属性名称。创建 CSV 文件
要快速创建一个包含基本用户字段的 CSV 文件(密码自动生成),请参考以下示例:
preferred_username |
given_name |
family_name |
email |
|---|---|---|---|
| user1 | John | 小母鹿 | jdoe@example.com |
| user2 | 简 | Smith | jsmith@example.com |
| user3 | John | 琼斯 | jjones@example.com |
注意: 若您是从Excel导出 CSV 文件,编码格式常会在文件开头包含一些特殊字符。 在纯文本编辑器中打开文件并删除字符。 字符看起来像:
 ,被称为字节顺序标记(BOM)。 如果您在文本编辑器中看不到字符,请将文本复制并粘贴到新的文本编辑器中,另存为新文件。密码迁移
Verify 支持现有密码迁移和明文形式的密码的接入。 如果您想使用已知或散列密码创建用户,请在每个用户行中添加一个名为password 的列, Verify 将使用该密码创建一个用户。 如果您的数据库或 LDAP 提供符合支持格式的单向哈希值,则必须获取该值并在其前添加前缀 {TYPE}. 例如,若使用 Salted-SHA256 ,则该值必须以 {SSHA256}. 为前缀。注意 :如果您的密码中包含
'+' 符号,请将所有 “+” 符号替换为 “%2B”。示例 CSV 文件
此示例是一个包含最小信息的 CSV 文件。preferred_username,given_name,family_name,email
user1,John,Doe,jdoe@example.com
user2,Jane,Smith,jsmith@example.com
user3,John,Jones,jjones@example.com
注意: 逗号后的空格会破坏句子的连贯性。
导入文件
创建文件后,还有一些配置可供选择。 在接下来的通话中,所有新账户的电子邮件通知都通过参数notifyType=NONE 被屏蔽。 首次登录时系统会生成一个随机密码,但用户无需重置(用户可在以后重置)。 若要取消首次登录时更改密码的要求,请添加标题 usershouldnotneedtoresetpassword:
true。curl --location -X POST "https://${tenant_url}/v2.0/CSV/importUsers?notifyType=NONE" \
--header "Authorization: Bearer ${access_token}" \
--header 'usershouldnotneedtoresetpassword: true' \
--form 'file=@/path/to/file/user_import.csv'如果文件格式正确并被接受,您会收到一个ID。 该ID可用于轮询状态API,查看一切是否正常。 用户按顺序处理。 最大文件大小(10 MB)的文件可能需要15-20分钟的处理时间。
注意 :如果使用随机密码,无论通知设置如何,用户都会收到一封电子邮件。 如果密码在 CSV 文件中被指定,则通知设置为NONE生效,用户不会收到邮件。
检查导入状态
在处理用户时,您可以通过调用 CSV 作业API查看导入的当前状态。curl --location --request GET "https://${tenant_url}/v2.0/CSV/jobs/${id}" \
--header "Authorization: Bearer ${access_token}"响应提供当前 state 和未处理用户数量(unprocessedCount )以及已处理并添加的用户数量(processedCount )的统计信息。如果出现任何错误,则提供计数(errorsCount )。批量装入
您可以使用批量API迁移数百万用户。 看 https://docs.verify.ibm.com/verify/reference/bulkrequest。 然而,与您的验证团队合作为您安排批量加载会更有效率。 您可以通过基于网页的 IBM " IBM 支持社区"或致电( IBM 1-800-SERV (800-426-7378))向支持团队提交支持工单。 服务管理团队为您提供安全的上传位置。 然后,您可以将您的用户数据上传到该位置,服务管理团队会将您的数据加载到 Verify。