排查因更改电子邮件地址而导致的账号重复问题

本指南可帮助您排查和解决 Looker 在现有用户的主邮箱在身份提供方 (IdP)(例如 Azure Active Directory (Azure AD))中发生更改时创建的重复用户账号。

在开始问题排查之前,您必须确定您的实例是 Looker(原始版本)实例(托管或自托管)还是 Looker (Google Cloud Core) 实例,因为它们支持不同的用户合并选项:

  • Looker(原始版本):支持本地电子邮件地址和密码 凭据。此选项允许您在唯一 IdP 标识符发生更改时通过电子邮件地址匹配来合并用户。
  • Looker (Google Cloud Core):不支持本地电子邮件地址和密码登录或 电子邮件地址凭据。因此,您无法在 Looker (Google Cloud Core) 中使用电子邮件地址和密码凭据选项来合并用户。

Looker(原始版本)实例

使用以下决策树排查 Looker(原始版本)实例中的电子邮件地址更改问题:

以下部分将更详细地介绍树中的场景。

配置身份提供方设置

为防止在用户的电子邮件地址发生更改时出现重复账号,您可以将 IdP 配置为断言不可变的唯一标识符:

  1. 在您的 IdP(例如 Azure AD)中,找到唯一标识符映射设置(例如,SAML 的唯一用户标识符(名称 ID) 属性或 OIDC 的 sub 声明)。
  2. 将此属性配置为映射到不可变的用户属性(例如员工 ID 或数据库 UUID),而不是可变的电子邮件地址。
  3. 保存配置。由于唯一标识符在电子邮件地址发生更改时保持不变,因此 Looker 会识别现有用户,并在用户下次登录时自动更新其电子邮件地址,而不会创建重复账号。

防止重复

如果您在 Looker(原始版本)上使用可变的电子邮件地址作为唯一标识符,并且无法将其更改为不可变的属性,则必须按照以下步骤配置 Looker 以根据电子邮件地址匹配来合并用户:

  1. 在 Looker 管理面板中,依次前往管理 > SAML管理 > OpenID Connect
  2. 前往 Merge Users Using (使用以下方式合并用户)选项,然后选中 Looker Email/Password (Looker 电子邮件地址/密码)对应的复选框。
  3. 在用户使用新电子邮件地址登录之前,您必须在其现有用户账号上创建一个与新电子邮件地址匹配的 Looker 电子邮件地址凭据。使用 Looker API 端点 create_user_credentials_email: POST /api/4.0/users/<var>USER_ID</var>/credentials_email 在请求正文中指定新电子邮件地址。
  4. 让用户登录。Looker 会将 IdP 声明的新电子邮件地址与预先创建的电子邮件地址凭据进行匹配,并合并用户的账号。

清理重复项

如果电子邮件地址已更改且存在重复用户账号,请按照以下步骤清理和合并账号:

  1. 在 Looker 管理面板中,依次前往管理 > 用户 ,然后找到用户的原始账号和重复账号。
  2. 确定重复账号是否包含需要保留的用户生成的内容或时间表。如果是,请按照迁移重复 内容部分中的步骤操作。
  3. 在 Looker SAML 或 OIDC 设置中,验证 Merge Users Using (使用以下方式合并用户)是否已启用 Looker Email/Password (Looker 电子邮件地址/密码)。
  4. 删除重复的用户账号。
  5. 在 Looker API 中,在 原始用户账号上创建一个使用新电子邮件地址的 Looker 电子邮件地址凭据: POST /api/4.0/users/<var>USER_ID</var>/credentials_email
  6. 指示用户使用 SAML 或 OIDC 登录。Looker 会将用户的登录凭据合并到原始用户账号中。

迁移重复内容

如果重复账号包含用户生成的内容、个人文件夹项、Look、信息中心或时间表,您可以在删除重复账号之前将这些内容迁移到原始账号:

  1. 使用 Looker API 检索与重复用户 ID 关联的内容和时间表列表。
  2. 调用更新端点(例如 update_dashboardupdate_lookupdate_schedule_plan),将这些资源的所有者更改为原始用户 ID。
  3. 或者,您可以使用 Looker 开源 Admin Power Pack 等工具来批量迁移用户内容。
  4. 转移内容后,继续删除重复的用户账号。

Looker (Google Cloud Core) 实例

Looker (Google Cloud Core) 不支持电子邮件地址凭据或电子邮件地址和密码合并。使用以下决策树处理 Looker (Google Cloud Core) 中的电子邮件地址更改:

以下部分将更详细地介绍树中的场景。

迁移前的步骤

如果您准备从 Looker(原始版本)实例迁移到 Looker (Google Cloud Core),则必须先按照以下步骤将用户转换为 Core 支持的身份验证方法(例如 Google OAuth):

  1. 在 Looker(原始版本)实例上启用 Google OAuth。
  2. 在 Google OAuth 设置下启用 Merge Users Using (使用以下方式合并用户),并启用 Looker Email/Password (Looker 电子邮件地址/密码)。
  3. 指示所有用户在 Looker(原始版本)实例上使用 Google OAuth 登录,以便在迁移之前合并其账号。
  4. 执行到 Looker (Google Cloud Core) 的迁移。

迁移后的步骤

如果到 Looker (Google Cloud Core) 的迁移已完成,但重复账号仍然存在,请执行以下任务之一:

  • 如果 Looker(原始版本)实例仍然可以访问: 请与支持团队联系以恢复该实例,在原始实例上执行 Google OAuth 合并步骤,然后重新执行到 Looker (Google Cloud Core) 的 迁移。 Google Cloud
  • 如果无法访问 Looker(原始版本)实例:您 必须使用 Looker API 脚本将用户生成的内容从用户的旧账号手动迁移到新账号,然后删除 旧账号或重复账号。

最终审核和支持

如果仍然无法解决重复账号问题,请与支持团队 联系