20.13. 使用 Pass-Through Authentication


直通身份验证(PTA)是一种允许一个红帽目录服务器实例查询绑定请求的机制。直通身份验证通过 PTA 插件实现;启用后,插件可让目录服务器实例接受未存储在其本地数据库中的条目的简单绑定操作(基于密码)。
目录服务器使用 PTA 在单独的目录服务器实例上管理用户和配置目录。
第一个实例充当 PTA 目录服务器,即通过绑定请求到其他目录服务器的服务器。第二个实例充当身份验证目录,这是包含条目的服务器,并验证请求客户端的绑定凭据。
直通子树 是 PTA 目录上 不存在 的子树。当用户的绑定 DN 包含这个子树时,用户的凭证会被传递给身份验证目录。

图 20.2. 通过身份验证过程的简单传递

以下是直通身份验证的工作方式:
  1. 配置目录服务器(身份验证目录)安装在计算机 A 上。配置目录始终包含带有身份验证用户条目的后缀,如 o=RedHat。在本例中,服务器名称是 authdir.example.com
  2. 然后,用户目录服务器(PTA 目录)安装在计算机 B 上。user 目录存储 root 后缀,如 dc=example,dc=com。在本例中,服务器名称是 userdir.example.com
  3. 使用以下命令在 userdir.example.com 上设置插件:
    # dsconf -D "cn=Directory Manager" ldap://userdir.example.com plugin pass-through-auth enable
    # dsconf -D "cn=Directory Manager" ldap://userdir.example.com plugin pass-through-auth url add "ldap://authdir.example.com/o=RedHat"
    Copy to Clipboard Toggle word wrap
  4. userdir.example.com 上重启 Directory 服务器。
  5. 用户主目录现在被配置为,向配置目录 authdir.example.com 发送带有包括 o=RedHat 的 DN 的所有绑定请求。
  6. 用户主目录允许来自 o=RedHat 的任何用户绑定。

20.13.1. PTA 插件语法

PTA 插件配置信息使用所需的 PTA 语法在 cn=Pass Through Authentication,cn=plugins,cn=config 条目中指定。
使用以下命令来管理直通身份验证 URL:
  • 添加直通身份验证 URL:
    # dsconf -D "cn=Directory Manager" ldap://server.example.com plugin pass-through-auth url add URL
    Copy to Clipboard Toggle word wrap
  • 修改直通身份验证 URL:
    # dsconf -D "cn=Directory Manager" ldap://server.example.com plugin pass-through-auth url modify old_URL new_URL
    Copy to Clipboard Toggle word wrap
  • 删除直通身份验证 URL:
    # dsconf -D "cn=Directory Manager" ldap://server.example.com plugin pass-through-auth url delete URL
    Copy to Clipboard Toggle word wrap
PTA 插件语法的变量组件在 表 20.3 “PTA 插件参数” 中进行了描述。
注意
LDAP URL (ldap|ldaps://authDS/subtree)必须以单个空间与可选参数(maxconns, maxops, timeout, ldver, connlifetime, startTLS)分开。如果定义了任何可选参数,则必须定义它们,即使只使用默认值。
可通过每次递增 nsslapd-pluginarg 属性后缀来指定几个验证目录或子树,如 第 20.13.3.2 节 “指定多个验证目录服务器” 所述。例如:
nsslapd-pluginarg0: LDAP URL for the first server
nsslapd-pluginarg1: LDAP URL for the second server
nsslapd-pluginarg2: LDAP URL for the third server
...
Copy to Clipboard Toggle word wrap
下表按照语法中出现的顺序描述了可选参数。
Expand
表 20.3. PTA 插件参数
变量 定义
state 定义插件是启用或禁用的。可接受值为 onoff
ldap|ldaps 定义 TLS 是否在两个目录服务器之间进行通信。请参阅 第 20.13.2.1 节 “将服务器配置为使用安全连接” 了解更多信息。
authDS 身份验证目录主机名。目录服务器的端口号可以通过添加冒号来指定,然后是端口号。例如: ldap://dirserver.example.com:389/。如果没有指定端口号,PTA 服务器会尝试使用其中一个标准端口进行连接:
如果在 URL 中指定 ldap://,则端口 389。
如果在 URL 中指定 ldaps://,端口 636。
请参阅 第 20.13.2.2 节 “指定验证目录服务器” 了解更多信息。
subtree 直通子树.PTA 目录服务器从此子树中的所有客户端传递到身份验证目录服务器的绑定请求。请参阅 第 20.13.2.3 节 “指定 Pass-Through Subtree” 了解更多信息。此子树不能在此服务器上存在。
maxconns 可选。PTA 目录可同时打开到身份验证目录的最大连接数。默认值为 3。请参阅 第 20.13.2.4 节 “配置可选参数” 了解更多信息。
maxops 可选。PTA 目录可以发送到单个连接中的身份验证目录的最大同步操作数(通常是绑定请求)。默认值为 5。请参阅 第 20.13.2.4 节 “配置可选参数” 了解更多信息。
timeout 可选。PTA 目录等待验证目录服务器的响应的时间限制(以秒为单位)。如果超过这个超时,服务器会向客户端返回错误。默认值为 300 秒(五分钟)。指定零(0),表示不应强制执行时间限制。请参阅 第 20.13.2.4 节 “配置可选参数” 了解更多信息。
ldver 可选。用于连接到身份验证目录的 LDAP 协议版本。目录服务器支持 LDAP 版本 2 和 3。默认为版本 3,红帽强烈建议不要使用 LDAPv2,因为它是非常旧且已被弃用的技术。请参阅 第 20.13.2.4 节 “配置可选参数” 了解更多信息。
connlifetime 可选。可以使用连接的时间限制(以秒为单位)。如果在此时间过期后客户端发起绑定请求,服务器会关闭连接并打开与身份验证目录的新连接。服务器不会关闭连接,除非启动绑定请求,目录会决定超过连接生命周期。如果没有指定这个选项,或者只列出了一个主机,则不会强制实施连接生命周期。如果列出了两个或多个主机,则默认为 300 秒(五分钟)。请参阅 第 20.13.2.4 节 “配置可选参数” 了解更多信息。
startTLS
可选。是否使用 STARTTLS 连接到身份验证目录的标志。STARTTLS 在标准端口上建立安全连接,因此使用 LDAP 而不是 LDAPS 进行连接非常有用。TLS 服务器和 CA 证书需要在两个服务器上可用。
默认值为 0, 即关闭。要启用 STARTTLS,请将其设置为 1。要使用 STARTTLS,LDAP URL 必须使用 ldap:,而不是 ldaps:
请参阅 第 20.13.2.4 节 “配置可选参数” 了解更多信息。

20.13.2. 配置 PTA 插件

修改 PTA 配置:
  1. 使用 dsconf 插件 pass-through-auth 命令修改 cn=Pass Through Authentication,cn=plugins,cn=config 条目。
  2. 重启 Directory 服务器。
在配置任何 PTA 插件参数前,PTA 插件条目必须存在于 Directory 服务器中。如果这个条目不存在,请使用适当的语法创建它,如 第 20.13.1 节 “PTA 插件语法” 所述。
注意
如果在目录的不同实例上安装了用户和配置目录目录,则 PTA 插件条目会自动添加到用户条目的配置并启用。
本节提供有关在以下部分配置插件的信息:

20.13.2.1. 将服务器配置为使用安全连接

通过在 PTA 目录的 LDAP URL 中指定 LDAPS,可将 PTA 目录配置为通过 TLS 与身份验证目录进行通信。例如:
nsslapd-pluginarg0: ldaps://ldap.example.com:636/o=example
Copy to Clipboard Toggle word wrap

20.13.2.2. 指定验证目录服务器

身份验证目录包含客户端尝试绑定的条目的绑定凭证。PTA 目录将绑定请求传递给主机,定义为身份验证目录。要指定身份验证目录服务器,请将 PTA 目录的 LDAP URL 中的 authDS 替换为身份验证目录的主机名,如 表 20.3 “PTA 插件参数” 所述。
  1. 使用 dsconf 插件 pass-through-auth 命令来编辑 PTA 插件条目:
    # dsconf -D "cn=Directory Manager" ldap://server.example.com plugin pass-through-auth add ldap://server.example.com/o=example
    Copy to Clipboard Toggle word wrap
    (可选)包含端口号。如果没有提供端口号,PTA Directory Server 会尝试使用 ldap:// 的标准端口(389)进行连接,或 ldaps:// 的安全端口(636)。
    如果 PTA 目录服务器和身份验证目录服务器之间的连接中断,或者无法打开连接,PTA Directory 服务器将请求发送到指定的下一个服务器(若有)。可以根据需要指定多个身份验证目录服务器,以便在第一个目录服务器不可用时提供故障转移。所有身份验证目录服务器都在 nsslapd-pluginarg0 属性中设置。
    多个验证目录服务器以空格分隔的 host:port 对列表列出,采用以下格式:
    ldap|ldaps://host1:port1 host2:port2/subtree
    Copy to Clipboard Toggle word wrap
  2. 重新启动服务器。
    # dsctl instance_name restart
    Copy to Clipboard Toggle word wrap

20.13.2.3. 指定 Pass-Through Subtree

PTA 目录通过通过直通子树中定义的 DN 从所有客户端向身份验证目录传递绑定请求。子树通过在 PTA 目录的 LDAP URL 中替换 子树 来指定。
直通子树不能存在于 PTA 目录中。如果存在,PTA 目录会尝试使用自己的目录内容解析绑定请求,绑定会失败。
  1. 使用 dsconf 插件 pass-through-auth 命令将 LDIF 文件导入到目录中:
    # dsconf -D "cn=Directory Manager" ldap://server.example.com plugin pass-through-auth add ldap://server.example.com/o=example
    Copy to Clipboard Toggle word wrap
    有关此语法中的变量组件的详情,请参考 表 20.3 “PTA 插件参数”
  2. 重启服务器:
    # dsctl instance_name restart
    Copy to Clipboard Toggle word wrap

20.13.2.4. 配置可选参数

控制 PTA 连接的其他参数可使用 LDAP URL 设置。
ldap|ldaps://authDS/subtree maxconns, maxops, timeout, ldver, connlifetime, startTLS
Copy to Clipboard Toggle word wrap
  • PTA 目录服务器可以同时打开到身份验证目录的最大连接数,由 PTA 语法中的 maxconns 表示。默认值为 3
  • PTA 目录服务器可以在单一连接中同时向身份验证目录服务器发送的最大绑定请求数。在 PTA 语法中,此参数为 maxops。默认值为 5
  • PTA Directory 服务器的时间限制,以等待来自身份验证目录服务器的响应。在 PTA 语法中,此参数为 timeout。默认值为 300 秒(五分钟)。
  • 用于连接到身份验证目录服务器的 PTA 目录服务器的 LDAP 协议版本。在 PTA 语法中,此参数为 ldver。默认为 LDAPv3
  • 可以使用连接的时间限制(以秒为单位)。如果在此时间过期后客户端启动绑定请求,服务器会关闭连接并打开与身份验证目录服务器的新连接。服务器不会关闭连接,除非启动绑定请求,服务器会决定超过超时时间。如果没有指定这个选项,或者只在 authDS 参数中只列出了一个身份验证目录服务器,则不会强制实施时间限制。如果列出了两个或多个主机,则默认为 300 秒(五分钟)。在 PTA 语法中,此参数为 connlifetime
  • 是否将 STARTTLS 用于连接。STARTTLS 通过标准 LDAP 端口创建安全连接。对于 STARTTLS,服务器必须安装其服务器和 CA 证书,但不需要在 TLS 中运行。
    默认值为 0, 即 STARTTLS 为 off。要启用 STARTTLS,请将其设置为 1。要使用 STARTTLS,LDAP URL 必须使用 ldap:,而不是 ldaps:
  1. 使用 dsconf 插件 pass-through-auth 命令来编辑插件条目:
    # dsconf -D "cn=Directory Manager" ldap://server.example.com plugin pass-through-auth add ldap://server.example.com/o=example 3,5,300,3,300,0
    Copy to Clipboard Toggle word wrap
    (在这个示例中,每个可选参数都设置为默认值。)确保 subtree 参数和可选参数之间存在空格。
    注意
    虽然这些参数是可选的,如果定义了其中任何一个参数,则必须定义它们,即使它们使用默认值。
  2. 重启服务器:
    # dsctl instance_name restart
    Copy to Clipboard Toggle word wrap

20.13.3. PTA 插件语法示例

本节在 dse.ldif 文件中包含以下 PTA 插件语法示例:

20.13.3.1. 指定一个验证目录服务器和一个子树

这个示例将 PTA 插件配置为接受可选变量的所有默认值。此配置会导致 PTA 目录服务器连接到所有绑定请求到 o=example 子树的身份验证目录服务器。身份验证目录服务器的主机名为 configdir.example.com
dn: cn=Pass Through Authentication,cn=plugins,cn=config
...
nsslapd-pluginEnabled: on
nsslapd-pluginarg0: ldap://configdir.example.com/o=example
...
Copy to Clipboard Toggle word wrap

20.13.3.2. 指定多个验证目录服务器

如果 PTA 目录服务器和身份验证目录服务器之间的连接中断,或者无法打开连接,PTA Directory 服务器将请求发送到指定的下一个服务器(若有)。可以根据需要指定多个身份验证目录服务器,以便在第一个目录服务器不可用时提供故障转移。所有身份验证目录服务器都在 nsslapd-pluginarg0 属性中设置。在主机:端口 对列表中列出的多个验证目录服务器。例如:
dn: cn=Pass Through Authentication,cn=plugins,cn=config
...	
nsslapd-pluginEnabled: on
nsslapd-pluginarg0: ldap://configdir.example.com:389 config2dir.example.com:1389/o=example
...
Copy to Clipboard Toggle word wrap
注意
nsslapd-pluginarg0 属性设置身份验证目录服务器;额外的 nsslapd-pluginargN 属性可以为要使用的 PTA 插件设置额外的 后缀,但不能设置额外的 主机

20.13.3.3. 指定一个验证目录服务器和多个子树

以下示例将 PTA 目录服务器配置为传递多个子树的绑定请求(使用参数默认值):
dn: cn=Pass Through Authentication,cn=plugins,cn=config
...	
nsslapd-pluginEnabled: on
nsslapd-pluginarg0: ldap://configdir.example.com/o=example
nsslapd-pluginarg1: ldap://configdir.example.com/dc=example,dc=com
...
Copy to Clipboard Toggle word wrap

20.13.3.4. 使用非默认参数值

这个示例只使用非默认值(10)作为最大连接参数 maxconns 数。其他每个参数都设置为默认值。但是,由于指定了一个参数,因此所有参数都必须以 语法明确定义。
dn: cn=Pass Through Authentication,cn=plugins,cn=config
...	
nsslapd-pluginEnabled: on
nsslapd-pluginarg0: ldap://configdir.example.com/o=example 10,5,300,3,300,1
...
Copy to Clipboard Toggle word wrap
要为每个身份验证目录服务器指定不同的直通子树和可选参数值,请设置多个 LDAP URL/可选参数对。将 LDAP URL/可选参数对与一个空格分开,如下所示:
dn: cn=Pass Through Authentication,cn=plugins,cn=config
...
nsslapd-pluginEnabled: on
nsslapd-pluginarg0:ldap://configdir.example.com/o=example 10,15,30,3,600,0
nsslapd-pluginarg1:ldap://config2dir.example.com/dc=example,dc=com 7,7,300,3,300,1
...
Copy to Clipboard Toggle word wrap
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2026 Red Hat
返回顶部