该部分讨论了 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
-
如果您已经有项目,请单击 Select a Project,选择项目,然后单击 Open。
如果您还没有项目,请单击 Create a project,在 Project Name 框中键入项目名称,选择加入或退出电子邮件通信,接受服务条款,然后单击 Create。
-
在 Credentials 对话框中,选择 OAuth client ID。
-
单击 Configure consent screen。
-
下一个屏幕允许您提供一系列信息,以便在用户提供凭据时显示给用户。至少,您必须在 Product name shown to users 框中指定 IdP 的名称。
-
点击保存。
-
选择 Web 应用程序 作为 应用程序类型。
-
在 Name 框中键入 IdP 的名称。
-
将群集的 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。 -
也将您的群集 URL 粘贴到 Authorized redirect URIs 字段。
-
将
/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
-
单击 Create。
-
将客户端 ID 和客户端密钥值复制并粘贴到文本文件中。
在 DC/OS 中配置 IdP
-
以具有
dcos:superuser
权限的用户身份登录 DC/OS UI。 -
打开 Settings -> Identity Providers 选项卡。
-
单击右上方的 + 图标。
-
单击 OpenID Connect。
-
在 Provider ID 字段中键入您的 IdP 名称。此名称将在 URL 中传递,因此请确保它仅包含小写字母数字和
-
字符。例如:google-idp
. -
在 Description 字段中键入 IdP 的可读名称。例如,
Google
. -
将以下内容粘贴到 Issuer 字段:
https://accounts.google.com
. -
将您的群集 URL 粘贴到 Base URI 字段。有关获取此值的更多信息,请参阅前一部分。
-
将客户端 ID 值从 Google 粘贴到 Client ID 字段。
-
将客户端密钥从 Google 粘贴到 Client Secret 字段。
图 1. Google IdP 配置
-
单击 Submit。
-
您现在应该能在 DC/OS UI 中看到新的 IdP。
验证 IdP
关于验证 IdP
您可以使用以下任一方法来验证您是否已正确设置 IdP。
使用 DC/OS GUI
-
退出 DC/OS GUI。
-
您应该在登录对话框中看到一个新按钮,该按钮显示 LOGIN WITH GOOGLE。
-
单击新按钮。
-
您将被重定向至 Google。
-
单击以允许 DC/OS 访问您的 Google 帐户信息。
-
您应该看到来自 DC/OS 的访问被拒绝消息。这表示登录成功,用户账户已添加到 DC/OS,但新用户没有权限,因此无法查看 DC/OS Web UI 中的任何内容。
-
单击 LOG OUT。
-
使用
dcos:superuser
权限以用户身份重新登录。 -
打开 Organization -> Users 选项卡。
-
您应该看到所列的新用户。
-
为此用户分配适当的权限.
使用 DC/OS CLI
先决条件:已安装 DC/OS CLI.
-
使用以下命令以新用户身份登录。
dcos auth login --provider=google-idp --username=<user-email> --password=<secret-password>
-
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
-
复制路径并将其粘贴到浏览器中。
-
您应该看到类似以下内容的消息。
图 2. CLI IdP 认证令牌
-
单击 Copy to clipboard。
-
返回到终端提示符并粘贴认证令牌值。
-
您应该收到以下消息。
Login successful!