用户存储库迁移

IBM® Verify 提供了一种简便的方法来迁移用户仓库。 Verify 用户的标准注册流程是使用提供的 REST API。 您可以使用 ` CSV ` 导入方法快速添加用户。

IBM Verify 支持以下几种导入用户数据的方式。
  • 手动输入
  • CSV 导入 API
  • 用户 API(单个)
  • 批量加载 API(多个)
CSV 的导入方法是最常见的方式。

数据信息

数据格式
若要使用 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
根据需要添加更多列。 属性值总是在事后可以通过管理控制台进行更新。 将此文件另存为编码为 UTF-8 的 CSV 文本文件。 文件大小上限为 10 MB。 如果文件较大,请将其拆分为多个 CSV 文件。
注意: 如果您是从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.