添加外部用户

ENTERPRISE

将外部用户添加到 DC/OS

在配置目录服务或身份提供程序后,您可以将用户添加到 DC/OS 以便您可以分配权限。

先决条件

通过登录尝试添加外部用户

默认情况下,用户没有 DC/OS 权限。在无任何权限的情况下,任何对 DC/OS 的访问尝试都将失败。但是,如果您已成功配置 LDAP 目录或身份提供程序,且用户提供有效凭据,登录尝试将导致用户帐户被添加到 DC/OS 中。

要求:用户的姓名和密码必须正确。

因为在添加任何权限之前您将需要 DC/OS 中的用户帐户,您可能会发现最简单的方法是让每个用户尝试登录到 DC/OS。虽然他们的尝试将失败,但这将用于通过他们的账号填入 DC/OS。

从 Web 界面单独导入外部 LDAP 用户

根据以下说明导入外部用户:

  1. 选择 Organization > Users 并创建新用户。
  2. 选择 Import LDAP User
  3. User Name 框中输入用户的用户名或 ID。
  4. 单击 Add
  5. 完成添加所有用户后,单击 Close 按钮。

导入 LDAP 用户组

关于导入 LDAP 组

您可以将现有 LDAP 用户组导入到 DC/OS 中。从 DC/OS Enterprise 1.12 开始,LDAP 同步功能支持导入的 LDAP 组。DC/OS 定期同步外部 LDAP 目录,默认设置为间隔 1800 秒(30 分钟)。

要求:LDAP 目录中的组条目必须使用 memberuniquemembermemberuid 属性列出其成员。

组大小限制为 100 个用户。要增加此限制数,请联系 Mesosphere 客户支持。如果用户名与现有用户匹配,则不会重新导入。您可以检查日志以确定是否已发生。

配置 LDAP 组导入

根据以下说明配置 LDAP 组导入:

  1. 打开 Settings -> LDAP Directory 选项卡。
  2. 单击 ADD DIRECTORY
  3. 单击 Group Import (Optional)
  4. 为应在 GROUP SEARCH BASE 字段中搜索的目录树子集提供 DN。例如:(cn=Users,dc=mesosphere,dc=com)
  5. GROUP SEARCH FILTER TEMPLATE 字段中提供用于将组名称转换为有效 LDAP 搜索筛选器的模板。字符串必须包含 %(groupname)。例如:(&(objectclass=group)(sAMAccountName=%(groupname)s))
  6. 完成后,将显示“LDAP 组导入配置”对话框,如图 1 所示。 LDAP 组导入配置 图 1. LDAP 组导入配置
  7. 单击 ADD DIRECTORY

使用 Web 界面导入 LDAP 组

  1. Organization -> Groups 选项卡中,单击右上方的 + 图标,然后选择 Import LDAP Group
  2. Name 框中键入 LDAP 组名称。组名称不得与现有组的名称相匹配。
  3. 单击 Add Group。这将在 DC/OS 中创建与 LDAP 组相同名称的用户组,并将 LDAP 组中的所有用户导入到 DC/OS 中。
  4. 完成添加所有组后,单击 Close 按钮。

使用 API 导入 LDAP 组

您可以使用 /ldap/importuser IAM API 端点导入一组 LDAP 用户。

前提条件:

  • 必须设置 group-search 配置密钥,如配置 LDAP 组导入 中所述。
  • 现有组条目必须通过使用 memberuniquemembermemberuid 属性列出其成员。
  • 在本部分中发出 curl 命令之前,必须遵循获取 DC/OS CA 根证书 中的步骤。
在此示例中,导入了名为 johngroup 的组。

  1. 登录 CLI 以确保您可以引用以下代码样本中所示的群集 URL。
  2. 使用以下命令启动导入。
    1. curl -i -X POST cacert dcos-ca.crt -H "Authorization: token=$(dcos config show core.dcos_acs_token)" data '{"groupname": "johngroup"}' header "Content-Type: application/json" $(dcos config show core.dcos_url)/acs/api/v1/ldap/importgroup
  3. 确认 johngroup 已添加。
    1. curl cacert dcos-ca.crt -H "Authorization: token=$(dcos config show core.dcos_acs_token)" $(dcos config show core.dcos_url)/acs/api/v1/groups/johngroup
    1. curl cacert dcos-ca.crt -H "Authorization: token=$(dcos config show core.dcos_acs_token)" $(dcos config show core.dcos_url)/acs/api/v1/groups/johngroup/users