在 LDAP/Active Directory 上启用 TLS ¶
要在 LDAP/Active Directory 上启用安全传输层安全性 (TLS) 连接,请将以下内容添加到文件的 LDAP 配置部分$PREFIX/etc/anaconda-server/config.yaml
,替换/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
,URI
LDAP 配置部分中的值必须以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 一起使用的密码。
用户搜索¶
在目录中定位用户的字典。dict 对象必须包含必需的条目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'}
超级用户_搜索¶
将确定有效用户是否为超级用户的字典。dict 对象必须包含必需的条目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 服务器中删除(或添加到),用户也必须再次进行身份验证才能查看更改。
GROUP_SEARCH ¶
在目录中定位组的字典。使用可base
分辨名称和
执行 LDAP 搜索filter
。
注意:与 不同USER_SEARCH
,您必须在 GROUP_SEARCH 过滤器周围放置括号。当它实际上失败或行为不可预测时,它可能看起来没有括号就可以工作。
例子:
GROUP_SEARCH:
base: dc=example,dc=com
filter: (objectClass=group)
注意: Anaconda Repository 假设组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
GROUP_MEMBERS_ATTR ¶
组对象上的 LDAP 属性,指示属于组成员的用户。默认为member
.
例子:
GROUP_MEMBERS_ATTR: 'member'
注意:Anaconda Repository 假设组的objectClass 是groupOfNames(或兼容的模式)。
KEY_MAP ¶
这是一个将应用程序上下文映射到 LDAP 的字典。应用程序可能希望用户数据保持一致,并且并非所有 LDAP 设置都使用相同的配置:
'application_key': 'ldap_key'
例子:
KEY_MAP={'name': 'cn', 'company': 'o', 'email': 'mail'}
START_TLS ¶
如果true
,则与 LDAP 服务器的每个连接都调用
start_tls_s()
以通过标准 LDAP 端口启用 TLS 加密。可以为影响 TLS 连接的 OPTIONS 提供许多配置选项。例如,可以将 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 连接的 OPTIONS 配置选项。
示例: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'