配置 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. 单击 添加提供商

  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!