在LDAP/Active Directory上启用TLS#
要在LDAP/Active Directory上启用安全的传输层安全性(TLS)连接,请将以下内容添加到文件$PREFIX/etc/anaconda-server/config.yaml
的LDAP配置部分,将/path/to/certfile
替换为实际的证书文件路径:
LDAP:
... # Rest of the LDAP config
START_TLS: true,
OPTIONS:
OPT_PROTOCOL_VERSION: 3
OPT_X_TLS_DEMAND: true
OPT_X_TLS_REQUIRE_CERT: 'OPT_X_TLS_NEVER'
OPT_X_TLS_CACERTFILE: '/path/to/certfile'
注意: START_TLS
与 LDAPS
不兼容。当使用 START_TLS
时,
LDAP 配置部分中的 URI
值必须以 ldap://
开头。
当使用 START_TLS
时,连接开始时是普通连接,
在连接建立后升级为使用 TLS。
如果您使用的是自签名证书,您需要将OPT_X_TLS_NEWCTX
作为OPTIONS
字段的最后一项添加到LDAP
选项中:
LDAP:
... # Rest of the LDAP config
START_TLS: true,
OPTIONS:
OPT_PROTOCOL_VERSION: 3
OPT_X_TLS_DEMAND: true
OPT_X_TLS_REQUIRE_CERT: 'OPT_X_TLS_NEVER'
OPT_X_TLS_CACERTFILE: '/path/to/certfile'
OPT_X_TLS_NEWCTX: 0
使用LDAP和TLS配置选项#
URI#
首先设置URI指向您的服务器。此设置的值可以是您的LDAP库支持的任何内容。例如,openldap
可能允许您提供一个逗号或空格分隔的URI值列表,按顺序尝试。
BIND_DN#
使用BIND_AUTH绑定到LDAP服务器时使用的专有名称。使用空字符串(默认值)进行匿名绑定。
BIND_AUTH#
与BIND_DN一起使用的密码。
用户搜索#
一个用于在目录中定位用户的字典。该字典对象必须包含必需的条目base
和filter
,并且可能包含可选的条目scope
。
base: 搜索的基础DN。
过滤器:应包含用于用户名的占位符
%(username)s
。范围:
LDAP_SCOPE_BASE
、LDAP_SCOPE_ONELEVEL
或LDAP_SCOPE_SUBTREE
之一。
示例:
{'base': 'dc=example,dc=com', 'filter': 'uid=%(username)s'}
超级用户搜索#
一个字典,用于确定有效用户是否为超级用户。字典对象必须包含必需的条目base
和filter
,并且可能包含可选的条目scope
。如果搜索成功,LDAP服务器将返回某些内容,并且用户将被授予超级用户权限。
base: 搜索的基础DN。
过滤器:应包含用于用户名的占位符
%(username)s
。范围:
LDAP_SCOPE_BASE
、LDAP_SCOPE_ONELEVEL
或LDAP_SCOPE_SUBTREE
之一。
例如:
{'base': 'cn=admin,ou=Groups,dc=example,dc=com', 'filter': 'memberUid=%(username)s'}
请注意,此检查是在登录过程中进行的,因此即使权限可能已从(或添加到)LDAP服务器中移除,用户也需要重新认证才能看到更改。
启用群组#
此属性启用LDAP组同步,允许用户将组成员资格与LDAP目录同步。默认为
false
。
示例:
ENABLE_GROUPS: true
GROUP_SEARCH#
一个用于在目录中定位组的字典。使用base
专有名称和filter
执行LDAP搜索。
注意: 与 USER_SEARCH
不同,你必须在 GROUP_SEARCH 过滤器周围加上括号。如果不加括号,它可能看起来可以工作,但实际上可能会失败或行为不可预测。
示例:
GROUP_SEARCH:
base: dc=example,dc=com
filter: (objectClass=group)
注意: Anaconda Enterprise 4 仓库假设组的 objectClass
是 groupOfNames
(或兼容的模式)。以下
LDIF
片段展示了一个示例组实例:
dn: cn=Analysts,ou=Anaconda Groups,dc=example,dc=com
cn: Analysts
member: cn=John Doe,ou=Users,dc=example,dc=com
member: cn=Jane Doe,ou=Users,dc=example,dc=com
member: cn=John Q. Public,ou=Users,dc=example,dc=com
member: cn=Guy Incognito,ou=Users,dc=example,dc=com
objectclass: groupOfNames
objectclass: top
组成员属性#
组对象上的LDAP属性,指示属于该组的用户。默认为member
。
示例:
GROUP_MEMBERS_ATTR: 'member'
注意:Anaconda Enterprise 4 仓库假设组的 objectClass 是 groupOfNames(或兼容的模式)。
刷新间隔#
LDAP 中的组成员信息在被再次从目录服务器获取之前使用的秒数。默认为 3600
,即 1 小时。
示例:
REFRESH_INTERVAL: 600
键映射#
这是一个将应用程序上下文映射到LDAP的字典。应用程序可能期望用户数据是一致的,但并非所有LDAP设置都使用相同的配置:
'application_key': 'ldap_key'
示例:
KEY_MAP={'name': 'cn', 'company': 'o', 'email': 'mail'}
START_TLS#
如果 true
,每次连接到 LDAP 服务器时都会调用
start_tls_s()
以在标准 LDAP 端口上启用 TLS 加密。有许多配置选项可以提供给
OPTIONS,这些选项会影响 TLS 连接。例如,
OPT_X_TLS_REQUIRE_CERT 可以设置为 OPT_X_TLS_NEVER
以
禁用证书验证,可能是为了允许自签名证书。
选项#
这存储了LDAP特定的选项。
示例:
LDAP:
OPTIONS:
OPT_PROTOCOL_VERSION: 3
OPT_X_TLS_REQUIRE_CERT: 'OPT_X_TLS_NEVER'
TLS—安全LDAP#
要启用安全的TLS连接,您必须将START_TLS设置为
true
。有许多配置选项可以影响TLS连接。
示例:将OPT_X_TLS_REQUIRE_CERT设置为OPT_X_TLS_NEVER
会禁用证书验证,可能是为了允许自签名证书:
LDAP:
START_TLS: true
OPTIONS:
OPT_PROTOCOL_VERSION: 3
OPT_X_TLS_DEMAND: true
OPT_X_TLS_REQUIRE_CERT: 'OPT_X_TLS_NEVER'
OPT_X_TLS_CACERTFILE: '/path/to/certfile'