rancher必须用docker搭建吗(Rancher系列文章之-)
本文永久链接: http://www.xtplayer.cn/rancher/authentication/rancher2-openldap-authentication/,下面我们就来说一说关于rancher必须用docker搭建吗?我们一起去了解并探讨一下这个问题吧!
rancher必须用docker搭建吗
本文永久链接: http://www.xtplayer.cn/rancher/authentication/rancher2-openldap-authentication/
版本支持: Rancher v2.0.5
如果您的组织使用 LDAP 进行用户身份验证,则可以将 Rancher 与 OpenLDAP 服务集成,以提供统一的用户身份验证。
OpenLDAP 身份验证流程当用户尝试使用 LDAP 账号登录 Rancher 时,Rancher 使用具有 搜索目录和读取用户/组权限 的服务帐户创建对 LDAP 服务器的初始绑定(账号初始化)。
然后,Rancher 使用基于提供的用户名和配置的属性映射的搜索过滤器在目录中搜索用户。
找到用户后,使用用户的 DN 和提供的密码对另一个 LDAP 绑定请求进行身份验证。
验证成功后,Rancher 将从用户对象的成员资格属性中解析组成员资格,并根据配置的用户映射属性执行组搜索。
先决条件注意 在配置之前请先熟悉 外部身份验证配置和主要用户的概念。
必须使用 LDAP 绑定帐户(也称为服务帐户)配置 Rancher,以搜索和检索用户和组相关的 LDAP 条目。建议不要使用管理员帐户或个人帐户,而是在 OpenLDAP 中创建一个专用帐户,对配置的搜索路径下的用户和组织具有只读访问权限(见下文)。
配置步骤打开 OpenLDAP 配置页面使用系统默认的 admin 帐户登录 Rancher UI。
从 全局 视图中,导航到 安全 > 认证页面
选择 OpenLDAP,将显示 配置 OpenLDAP 服务器 表单。
OpenLDAP 服务器参数使用 TLS? 如果 OpenLDAP 服务器使用的是自签名证书,或不是来自权威的证书颁发机构,请确保有 PEM 格式的 CA 证书(与所有的中间证书连接)。您必须在配置期间设置证书,以便 Rancher 能够验证证书链。
参数 |
描述 |
Hostname |
指定 OpenLDAP 服务器的主机名或 IP 地址 |
端口 |
指定 OpenLDAP 服务器正在侦听的端口,未加密的 LDAP 通常使用标准端口 389,而 LDAPS 使用端口 636。 |
TLS |
选中此框以启用基于 SSL/TLS 的 LDAP(通常称为 LDAPS)。如果服务器使用 自签名/企业签名 的 SSL 证书,则还需要粘贴 CA 证书。 |
服务器连接超时 |
Rancher 在考虑服务器不可达之前等待的持续时间(以秒为单位)。 |
服务帐户 |
用于绑定、搜索和检索 LDAP 条目的服务帐户(DN)。 |
服务帐号密码 |
服务帐户密码。 |
用户搜索起点 |
用户搜索起点,所有用户都基于此 DN 以及子目录进行搜索。例如:ou=people,dc=acme,dc=com。 |
用户组搜索起点 |
用户组搜索起点,所有用户组都基于此 DN 以及子目录进行搜索。如果留空,将会基于 用户搜索起点 进行搜索。例如:ou=groups,dc=acme,dc=com。 |
如果您的 OpenLDAP 不是标准 OpenLDAP 架构,则必须自定义架构以匹配相应字段。
请注意,Rancher 使用本节中配置的属性映射来构造搜索过滤器并解析组成员身份。因此,始终建议您验证此处的配置是否与您的 OpenLDAP 架构中使用的字段匹配。
如果您不熟悉 OpenLDAP 服务器中使用的 用户/组 架构,请咨询 LDAP 管理员,或参阅 Active Directory 身份验证文档中的使用 ldapsearch 识别搜索库和架构部分。
用户架构配置下表详细介绍了用户架构配置的参数。
参数 |
描述 |
对象类别 |
域中用于用户对象的对象类的名称。如果已定义,则只指定对象类的名称——不要将其包含在 LDAP 包装器中,例如&(objectClass=xxxx) |
用户名属性 |
用户属性,其值适合作为显示名称。 |
登录属性 |
该属性的值与用户登录 Rancher 时输入的 用户名 匹配,通常是 uid。 |
用户成员属性 |
包含用户所属组的专有名称的用户属性,通常这是 memberOf 或 isMemberOf。 |
搜索属性 |
当用户输入文本以在 UI 中添加 用户或组 时,Rancher 会查询 LDAP 服务器并尝试通过此设置中提供的属性来匹配用户。通过使用竖线(“ |”)符号将多个属性分开,可以指定多个属性。 |
用户启用的属性 |
如果您的 OpenLDAP 服务器的架构支持用户属性,可以对其值进行评估以确定该帐户是禁用还是锁定,请输入该属性的名称。默认的 OpenLDAP 模式不支持此功能,并且该字段通常应留空。 |
禁用状态位掩码 |
这是 禁用/锁定 的用户帐户的值。如果 User Enabled Attribute 为空,则忽略该参数。 |
下表详细说明了组架构配置的参数。
参数 |
描述 |
对象类别 |
域中用于分组条目的对象类的名称。如果已定义,则只指定对象类的名称——不要将其包含在 LDAP 包装器中,例如 &(objectClass=xxxx) |
名称属性 |
组属性,其值适合于显示名称。 |
组成员用户属性 |
user attribute 的名称,其格式与 Group Member Mapping Attribute 中的组成员匹配 。 |
组成员映射属性 |
包含组成员的组属性的名称。 |
搜索属性 |
将组添加到 UI 中的集群或项目 时,用于构造搜索过滤器的属性。请参阅用户架构 Search Attribute 说明 。 |
组 DN 属性 |
组属性的名称,其格式与用户的组成员资格属性中的值匹配。请参阅 User Member Attribute。 |
嵌套组成员 |
此设置定义 Rancher 是否搜索嵌套的组成员。仅当您的组织使用这些嵌套成员时才使用(即您具有包含其他组作为成员的组)。如果使用 Shibboleth,则禁用此选项。 |
#!/bin/bash
export RANCHER_DOMAIN="rancher.yourdomain.com"
export RANCHER_TOKEN="token-xxxxx:xxxx"
export ACCESS_MODE="unrestricted"
export CONNECTION_TIMEOUT="5000"
export LDAP_HOST="ldap.yourdomain.com"
export LDAP_PORT="636"
export TLS="true"
export SA_DN="uid=x,ou=x,o=x,dc=yourdomain,dc=com"
export SA_PW="sa_password"
export USER_SEARCHBASE="ou=x,o=x,dc=yourdomain,dc=com"
export USERNAME="username"
export PASSWORD="password"
curl -u $RANCHER_TOKEN "http://${RANCHER_DOMAIN}/v3/openLdapConfigs/openldap?action=testAndApply" \
-H 'content-type: application/json' \
-H 'accept: application/json' \
--data-binary '{"ldapConfig":{"accessMode":"'"${ACCESS_MODE}"'","baseType":"authConfig","connectionTimeout":"'"${CONNECTION_TIMEOUT}"'","enabled":true,"groupDNAttribute":"entryDN","groupMemberMappingAttribute":"member","groupMemberUserAttribute":"entryDN","groupNameAttribute":"cn","groupObjectClass":"groupOfNames","groupSearchAttribute":"cn","id":"openldap","labels":{"cattle.io/creator":"norman"},"name":"openldap","nestedGroupMembershipEnabled":false,"port":"'"${LDAP_PORT}"'","servers":["'"${LDAP_HOST}"'"],"serviceAccountDistinguishedName":"'"${SA_DN}"'","tls":"'"${TLS}"'","type":"openLdapConfig","userDisabledBitMask":0,"userLoginAttribute":"uid","userMemberAttribute":"memberOf","userNameAttribute":"cn","userObjectClass":"inetOrgPerson","userSearchAttribute":"uid|sn|givenName","userSearchBase":"'"${USER_SEARCHBASE}"'","serviceAccountPassword":"'"${SA_PW}"'","groupSearchBase":null},"enabled":true,"username":"'"${USERNAME}"'","password":"'"${PASSWORD}"'"}' --compressed --insecure
免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com