配置 OpenID 身份提供程序

ENTERPRISE

配置 OpenID 身份提供程序

该部分讨论了 OpenID IdP 的一般要求,并提供了设置 OneLogin IdP 的分步程序。

DC/OS Enterprise 可与使用 OpenID Connect 1.0 的任何身份提供程序 (Idp) 集成。以下程序将采用 Google IdP 作为示例,并引导您完成设置流程的每个步骤。

添加 OpenID Connect 身份提供程序:

您可以在 Google 或 DC/OS 中添加 Google OpenID Connect IdP。

在 Google 中配置 IdP

  1. 访问 Google Developer Console 的凭据页面.

  2. 如果您已经有项目,请单击 Select a Project,选择项目,然后单击 Open。

    如果您还没有项目,请单击 Create a project,在 Project Name 框中键入项目名称,选择加入或退出电子邮件通信,接受服务条款,然后单击 Create。

  3. 在 Credentials 对话框中,选择 OAuth client ID。

  4. 单击 Configure consent screen。

  5. 下一个屏幕允许您提供一系列信息,以便在用户提供凭据时显示给用户。至少,您必须在 Product name shown to users 框中指定 IdP 的名称。

  6. 点击保存。

  7. 选择 Web 应用程序 作为 应用程序类型。

  8. 在 Name 框中键入 IdP 的名称。

  9. 将群集的 URL 粘贴到 Authorized Javascript origins框中。例如:https://jp-ybwutd-elasticl-1r2iui8i0z9b7-1590150926.us-west-2.elb.amazonaws.com

    如果您的群集前端有负载均衡器(推荐),则群集 URL 将成为负载均衡器的路径。群集 URL 与 DC/OS UI 的路径相同,可从浏览器栏复制。或者,您可以登录到 DC/OS CLI 并键入 dcos config show core.dcos_url 以获取群集 URL。

  10. 也将您的群集 URL 粘贴到 Authorized redirect URIs 字段。

  11. 将 /acs/api/v1/auth/oidc/callback 粘贴到 Authorized redirect URIs 字段中您群集 URL 的末尾处。例如:https://jp-ybwutd-elasticl-1r2iui8i0z9b7-1590150926.us-west-2.elb.amazonaws.com/acs/api/v1/auth/oidc/callback

  12. 单击 Create。

  13. 将客户端 ID 和客户端密钥值复制并粘贴到文本文件中。

在 DC/OS 中配置 IdP

  1. 以具有 dcos:superuser 权限的用户身份登录 DC/OS UI。

  2. 打开 Settings -> Identity Providers 选项卡。

  3. 单击右上方的 + 图标。

  4. 单击 OpenID Connect。

  5. 在 Provider ID 字段中键入您的 IdP 名称。此名称将在 URL 中传递,因此请确保它仅包含小写字母数字和 - 字符。例如:google-idp.

  6. 在 Description 字段中键入 IdP 的可读名称。例如,Google.

  7. 将以下内容粘贴到 Issuer 字段:https://accounts.google.com.

  8. 将您的群集 URL 粘贴到 Base URI 字段。有关获取此值的更多信息,请参阅前一部分。

  9. 将客户端 ID 值从 Google 粘贴到 Client ID 字段。

  10. 将客户端密钥从 Google 粘贴到 Client Secret 字段。

    Google IdP 配置

    图 1. Google IdP 配置

  11. 单击 Submit。

  12. 您现在应该能在 DC/OS UI 中看到新的 IdP。

验证 IdP

关于验证 IdP

您可以使用以下任一方法来验证您是否已正确设置 IdP。

使用 DC/OS GUI

  1. 退出 DC/OS GUI。

  2. 您应该在登录对话框中看到一个新按钮,该按钮显示 LOGIN WITH GOOGLE。

  3. 单击新按钮。

  4. 您将被重定向至 Google。

  5. 单击以允许 DC/OS 访问您的 Google 帐户信息。

  6. 您应该看到来自 DC/OS 的访问被拒绝消息。这表示登录成功,用户账户已添加到 DC/OS,但新用户没有权限,因此无法查看 DC/OS Web UI 中的任何内容。

  7. 单击 LOG OUT。

  8. 使用 dcos:superuser 权限以用户身份重新登录。

  9. 打开 Organization -> Users 选项卡。

  10. 您应该看到所列的新用户。

  11. 为此用户分配适当的权限.

使用 DC/OS CLI

先决条件:已安装 DC/OS CLI.

  1. 使用以下命令以新用户身份登录。

    dcos auth login --provider=google-idp --username=<user-email> --password=<secret-password>
    
  2. CLI 应返回类似以下内容的消息。

    Please go to the following link in your browser:
    
     https://eanicich-elasticl-c3kpgqk7jdft-820516824.us-west-2.elb.amazonaws.com/acs/api/v1/auth/login?oidc-provider=google-idp&target=dcos:authenticationresponse:html
    
  3. 复制路径并将其粘贴到浏览器中。

  4. 您应该看到类似以下内容的消息。

    CLI IdP 认证令牌

    图 2. CLI IdP 认证令牌

  5. 单击 Copy to clipboard。

  6. 返回到终端提示符并粘贴认证令牌值。

  7. 您应该收到以下消息。

    Login successful!