添加外部用户
ENTERPRISE
将外部用户添加到 DC/OS
在配置目录服务或身份提供程序后,您可以将用户添加到 DC/OS 以便您可以分配权限。
先决条件
通过登录尝试添加外部用户
默认情况下,用户没有 DC/OS 权限。在无任何权限的情况下,任何对 DC/OS 的访问尝试都将失败。但是,如果您已成功配置 LDAP 目录或身份提供程序,且用户提供有效凭据,登录尝试将导致用户帐户被添加到 DC/OS 中。
要求:用户的姓名和密码必须正确。
因为在添加任何权限之前您将需要 DC/OS 中的用户帐户,您可能会发现最简单的方法是让每个用户尝试登录到 DC/OS。虽然他们的尝试将失败,但这将用于通过他们的账号填入 DC/OS。
从 Web 界面单独导入外部 LDAP 用户
使用以下说明导入外部用户:
选择 Organization > Users 并创建新用户。
选择 Import LDAP User。
在 User Name 框中输入用户的用户名或 ID。
单击 Add。
完成添加所有用户后,单击 Close 按钮。
导入 LDAP 用户组
关于导入 LDAP 组
您可以将现有 LDAP 用户组导入到 DC/OS 中。从 DC/OS Enterprise 1.12 开始,LDAP 同步功能支持导入的 LDAP 组。DC/OS 定期同步外部 LDAP 目录,默认设置为间隔 1800 秒(30 分钟)。
要求 LDAP 目录中的组条目必须使用 member
、uniquemember
或 memberuid
属性列出其成员。
组大小限制为 100 个用户。要增加此限制数,请联系 Mesosphere 客户支持。如果用户名与现有用户匹配,则不会重新导入。您可以检查日志以确定是否已发生。
配置 LDAP 组导入
使用以下说明配置 LDAP 组导入:
打开 Settings -> LDAP Directory 选项卡。
单击 ADD DIRECTORY。
单击 Group Import (Optional)。
为应在 GROUP SEARCH BASE 字段中搜索的目录树子集提供 DN。例如:
(cn=Users,dc=mesosphere,dc=com)
。在 GROUP SEARCH FILTER TEMPLATE 字段中提供用于将组名称转换为有效 LDAP 搜索筛选器的模板。字符串必须包含
%(groupname)
。例如:(&(objectclass=group)(sAMAccountName=%(groupname)s))
。完成后,将显示“LDAP 组导入配置”对话框,如图 1 所示。
图 1. LDAP 组导入配置
单击 ADD DIRECTORY。
使用 Web 界面导入 LDAP 组
在 Organization -> Groups 选项卡中,单击右上方的 + 图标,然后选择 Import LDAP Group。
在 Name 框中键入 LDAP 组名称。组名称不得与现有组的名称相匹配。
单击 Add Group。这将在 DC/OS 中创建与 LDAP 组相同名称的用户组,并将 LDAP 组中的所有用户导入到 DC/OS 中。
完成添加所有组后,单击 Close 按钮。
使用 API 导入 LDAP 组
您可以使用 /ldap/importuser
IAM API 端点导入一组 LDAP 用户。
前提条件:
- 必须设置
group-search
配置密钥,如配置 LDAP 组导入 中所述。 - 现有组条目必须通过使用
member
、uniquemember
或memberuid
属性列出其成员。 - 在本部分中发出 curl 命令之前,必须遵循获取 DC/OS CA 根证书 中的步骤。
在此示例中,导入了名为 johngroup
的组。
登录 CLI 以确保您可以引用以下代码样本中所示的群集 URL。
使用以下命令启动导入。
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
确认
johngroup
已添加。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
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