通过 Admin 菜单的 Authentication 部分中的 Google Authentication 页面,您可以在 Looker 上设置 Google OAuth。
功能概览
如果需要,Looker 可以通过 Google OAuth 为拥有 Google Workspace 帐号的用户执行身份验证。
- 使用 Google Workspace 的组织可以通过 Google 帐号对 Looker 用户进行身份验证。
- 用户通过使用自己的 Google 账号进行身份验证来登录 Looker。
- 新的 Google 帐号会自动获得 Looker 的访问权限。无需另行邀请用户加入 Looker。您可以为新用户设置默认角色,从而限制其对功能和数据的访问权限。
- 启用后,Looker 仅通过 Google OAuth 对用户进行身份验证,除非选择了“备用登录”选项(请参阅下文中的进一步说明)。
- 用户的 Google 头像(而不是标准的用户符号)显示在导航栏中。
- 启用 Google OAuth 时,Looker 实例可以将现有用户账号与 Google 注册的网域合并,但仅限于电子邮件地址与该网域匹配的账号。所有其他非管理员账号都将无法登录。
- 指定网域中的所有用户均可访问 Looker 实例。
- Google 新用户的权限默认拥有指定模型列表的基本访问权限(可以选择访问零个模型)。管理员可在创建帐号后更新权限。
- 即使为 Looker 实例停用了 OAuth,通过 Google OAuth 进行身份验证的新 Looker 账号也无法改用密码身份验证。
初步要求
使用 Google OAuth 需要满足以下要求:
- 组织的 Google Workspace 帐号。
- 一个由组织控制且已注册到 Google Workspace 帐号的网域。
- 电子邮件地址位于与 Google 帐号关联的网域中的用户。
- 每位用户都必须在 Google Workspace 中拥有受管理的用户帐号。要查找并迁移任何使用非受管用户账号的用户,请使用非受管用户转移工具。
使用 Google OAuth 启用身份验证
如要使用 Google OAuth 进行身份验证,需要管理员在 Google 端和 Looker 端执行相关步骤,如以下部分所述。
在 Google 端设置
在 Google 端启用 Google OAuth 的步骤如下。有关这些步骤的一般说明,请参阅关于设置 OAuth 2.0 的 Google 支持页面。您可以在 Google Cloud 控制台帮助页面中找到 Google 开发者控制台上的相关文档。
前往 Google Cloud 控制台。
点击选择项目下拉菜单中的向下箭头。您可能会在下拉菜单中看到现有项目的名称;点击向下箭头无论如何都会转到创建新项目的选项。
在选择项目页面中,点击新建项目。
Google 会显示新建项目页面。
在新建项目页面上填写信息,然后点击创建。
完成新项目的创建后,Google 会返回到 Google Cloud 控制台并显示您的新项目。
在左侧菜单中,依次选择 API 和服务 > 凭据。
在凭据页面上,点击创建凭据按钮,然后从下拉菜单中选择 OAuth 客户端 ID。
Google 会显示“创建 OAuth 客户端 ID”页面。
Google 要求您配置 OAuth 同意屏幕,以便用户选择如何授予对其私人数据的访问权限,并提供指向贵组织的服务条款和隐私权政策的链接。点击配置同意屏幕。(如果您为以前的项目配置了 OAuth 同意,则不会看到此选项,可以跳到第 13 步。)
Google 会显示 OAuth 同意屏幕页面。
在已获授权的网域字段中输入 Looker 实例的网域。例如,如果 Looker 在
http://mycompany.looker.com
托管您的实例,则域名为looker.com
。对于客户托管的 Looker 部署,请输入您在其中托管 Looker 的网域。配置 OAuth 权限请求页面,然后点击 Save and Continue(保存并继续)。
在 Scopes 页面上,点击 Save and Continue。无需额外配置范围。
在摘要页面上,点击返回信息中心。
Google 会返回创建 OAuth 客户端 ID 页面。
在应用类型下,选择网页应用。
在名称字段中,输入 OAuth 客户端 ID 的名称。
在已获授权的 JavaScript 来源字段中,输入您的 Looker 实例的网址,包括
http://
。例如:- 如果 Looker 托管您的实例:
http://mycompany.looker.com
- 如果您有客户托管的 Looker 实例:
http://looker.mycompany.com
- 如果您的 Looker 实例需要端口号:
http://looker.mycompany.com:9999
- 如果 Looker 托管您的实例:
在已获授权的重定向 URI 字段中,输入您的 Looker 实例的网址,后跟
/oauth2callback
。例如:http://mycompany.looker.com/oauth2callback
或http://looker.mycompany.com:9999/oauth2callback
。点击创建。
复制您的客户端 ID 和客户端密钥值 - 您需要它们来配置 Looker。
在 Looker 端设置
如需在 Looker 端启用 Google OAuth,请按以下步骤操作。
在 Looker 应用中,以管理员的身份登录后,点击管理员下拉菜单,以打开管理菜单。
在 Authentication 组下,点击 Google。Looker 会显示 Google 身份验证页面。
点击已启用,以显示和修改 Google OAuth 设置。(此操作不会立即启用 Google 身份验证;稍后您必须确认您的选择)。
输入您的 Google Auth 设置。
- 客户端 ID 和客户端密钥 - 按照上文 Google 设置说明中的说明,从 Google OAuth 客户端页面复制并粘贴这些值。
- 网域 - 贵组织的 Google 管理的域名。指定网域中的任何 Google 用户都可以登录您的 Looker 实例。如果您控制多个 Google 网域,可以输入各个网域,并用英文逗号分隔。
输入迁移选项,用于控制 Looker 实例在过渡到 Google OAuth 期间的行为。
- 管理员的备用登录方式 - 让管理员能继续使用电子邮件地址和密码登录。在设置 Google OAuth 时,该功能非常有用。建议采用此设置,下文对此进行了详细说明。
- 通过电子邮件合并 - 将电子邮件地址位于指定网域的任何现有用户在下次登录时将其转换为使用 Google OAuth。推荐使用此设置。
- 新用户的角色 - 指定新的非管理员用户具有的功能和模型访问权限。此列表可在以后更新。如果留空,通过 Google 身份验证的新用户在 Looker 平台中的功能会受到限制,直到管理员向其帐号添加角色为止。由于您的 Google 网域中的所有用户都能够登录 Looker,因此请考虑为新用户指定默认角色,以适当限制访问权限。
点击测试 Google 身份验证,以使用当前设置,并尝试在新窗口中对当前浏览器进行身份验证。此操作不会保存当前设置,也不会将它们应用于 Looker 实例。
如果您未登录 Google,系统会提示您登录,并请求您同意其使用您的 Google 帐号信息。此流程会使用您在 Google 端设置中使用的自定义同意屏幕设置。
成功完成后,系统会显示用户信息部分,其中包含您的姓名、电子邮件地址和域名。此用户信息部分的显示表明该用户将成功通过 Looker 的身份验证。
如果失败,系统会显示错误说明。以下是一些常见问题:
- 错误复制的客户端 ID 或客户端密钥。这些内容必须仔细复制和粘贴。
- 用户不在网域内。如果您看到用户信息部分,但没有看到用户信息,可能是因为该用户不在您指定的网域内。这表明此人已向 Google 正确进行身份验证,但使用的不是您选择允许访问您的 Looker 实例的 Google 帐号。
- 未在 Google 中为您的 Looker 实例正确设置 Looker 网址或重定向网址。
如需保存并应用更改,请选中我已确认上述配置,并希望在全局范围内应用该配置。点击更新。
提示
如需尝试完整的身份验证周期,您可以退出 Google,然后会看到 Google 在您尝试登录 Looker 时提示您再次登录。
在 Google 中,您可以点击个人下拉菜单(Google Workspace 页面右上角您的电子邮件地址旁边)中的帐号,以管理您的个人帐号。
该管理页面上有一个安全标签页,其中包含帐号权限部分。点击应用和网站查看全部后,您(作为用户)就可以查看和管理您已授予权限的服务和应用。
如果点击您授予的用于登录的 Looker 权限,系统会显示用户在您在上面自定义的同意屏幕中看到的详细信息。您也可以点击撤消访问权限,这样您下次登录 Looker(或测试授权)时,系统就会通过同意屏幕重新提示您。您可以使用此工作流程来自定义权限请求页面,并查看用户会看到的内容。
问题排查
如果用户尝试登录失败,首先要确保该用户在其 Google 帐号中同时有姓氏和名字。如果用户已从其 Google 账号中删除其名字或姓氏,则 Looker 可能无法使用 Google OAuth 对用户进行身份验证。
如果用户尝试登录失败,并且 Looker 显示错误(例如
User not in the authorized domain
),请检查 JSON 响应的hd
字段。如果hd
字段包含域名,请确保该域名是在您的 Google Workspace 帐号中注册的。如果hd
字段为空,请使用非受管用户转移工具邀请用户将其帐号转换为您网域中的受管理帐号。如果用户尝试登录失败,但 Looker 未显示错误消息,那么可能是因为该用户修改了 Google Workspace 帐号名称并删除了自己的名字或姓氏。在这种情况下,Google Workspace 账号名称可能仍然在管理控制台中显示,因此可能无法显示用户的修改。为防止出现此问题,Google Workspace 管理员可以停用允许用户自定义此设置选项。
在启用 Google Auth 的情况下启用电子邮件登录
新的 Google 账号会自动获得 Looker 的访问权限,因此无需添加您 Google 网域中的用户。
如要通过不属于您的 Google 网域的电子邮件地址添加用户,请执行以下操作:
- 在 Google 身份验证页面上启用管理员和指定用户的备用登录方式选项
- 创建或修改现有的用户角色以添加
login_special_email
权限 - 从用户面板转到添加用户 (/admin/users/new)
- 添加您要添加的电子邮件地址以及这些用户应具备的角色,这些角色必须包含具有
login_special_email
权限的角色 - 这些用户现在可以通过 http://mycompany.looker.com/login/email(隐藏网址)登录
启用 Google Auth 后将其停用
如果您想在 Looker 实例已启用 Google 身份验证后停用它,则需要考虑以下事项:
- 在添加 Google 身份验证之前创建且已设置常规电子邮件登录和密码的用户仍可正常运行。
- 在添加 Google 身份验证之后创建的用户将无法再登录。虽然他们的帐号仍然存在,但他们无法访问这些帐号,而且这些帐号实际上处于孤立状态。
因此,我们建议您避开此路线。如果您必须这样做,或许可以通过 Looker API 来修复孤立的帐号。如需更多指导,请与 Looker 支持团队联系。