用户存储库迁移
IBM® Verify 提供了一种简便的方法来迁移用户仓库。 Verify 用户的标准注册流程是使用提供的 REST API。 您可以使用 ` CSV ` 导入方法快速添加用户。
- 手动输入
- CSV 导入 API
- 用户 API(单个)
- 批量加载 API(多个)
数据信息
- 数据格式
- 若要使用 CSV 方法导入用户, Verify 您必须将用户存储库(无论是 LDAP 还是SQL数据库)转换为与 UTF-8 兼容的 CSV 格式。 请确保您计划用于转换数据的方法支持此格式。
- 用户的类型
- 请务必注意您正在导入的用户类型。 如果您不熟悉云目录模型 Verify ,请阅读关于目录 Verify 结构的文章。 在此任务中,被导入的用户将获得一个标准的云目录用户账户,该账户配有本地密码,该密码在用户创建时自动生成。 用户类型
regular决定了该用户的类型。userCategory如果您只想导入用户的元数据而不包含本地密码,则必须替换 和 的realm属性值。 - 访问令牌
- 用于导入用户的 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 。 在该调用示例中,添加了一个用户过滤器,以防止返回“Groups”的属性名称。创建 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 该列将用于创建具有该密码的用户。 {TYPE}如果您的数据库或 LDAP 以支持的格式之一提供了单向哈希值,则必须获取该值并在其前添加前缀。 例如,如果您使用的是 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 文件中指定,则“notify”字段设置为“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。 不过,与您的 Verify 团队合作,由他们为您安排批量导入,会更加高效。 您可以通过基于网页的 IBM 支持社区 ,或致电 1-800- IBM -SERV(800-426-7378)向 IBM 支持团队提交支持工单。 服务管理团队为您提供了一个安全的上传位置。 然后,您可以将用户数据上传至此位置,服务管理团队会将您的数据加载到 Verify.