对于 Kerberos 身份验证以及客户端设备上的 SASL/GSSAPI 授权,我需要在具有 Debian/Raspbian Buster 的 Raspberry Pi 上运行的 OpenLDAP 服务器上进行代理授权。我尝试按照 OpenLDAP Software 2.4 Administrator's Guide 中有关SASL 代理授权的说明进行操作,但无法使其正常工作。身份验证失败或未找到代理用户且授权失败。使用原始用户进行身份验证没有问题:
ldap-server ~$ kinit ingo
Password for [email protected]:
ldap-server ~$ ldapwhoami
SASL/GSSAPI authentication started
SASL username: [email protected]
SASL SSF: 256
SASL data security layer installed.
dn:uid=ingo,ou=people,ou=home,dc=hoeft-online,dc=de
但是在设置代理授权时,我对源规则和目标规则以及放置属性的位置authzTo
以及authzFrom
启用proxyAuth的位置感到困惑。
有人可以举一个简短的例子,如何使用 SASL/GSSAPI 身份验证在 LDAP 服务器上定义代理授权?
我无法在网上找到关于此的示例,我花了几天时间才了解广泛的细节。这是我将它组合在一起的方法,以便其他人现在可以找到一个示例。
对于需要 Kerberos 身份验证的 SASL/GSSAPI 的正确代理授权,我们必须指定用作代理用户的 Kerberos 主体。然后对于 ldap 服务器上的 SASL 身份验证,我们需要从 SASL auth dn 到 ldap 帐户的常用用户映射。现在我们可以设置代理授权了。
创建 Kerberos 主体
我创建anyuser以将其身份验证用作任何用户的代理。我需要它在客户端设备上进行 GSSAPI 身份验证。
身份验证映射
这是 OpenLDAP Software 2.4 Administrator's Guide about Mapping Authentication Identities中描述的常用专有名称 (dn) 映射。
使用以下命令测试映射:
设置SASL 代理授权
默认情况下禁用代理授权。所以首先我们必须在 ldap 服务器上启用它。我只想使用authzTo属性。对于可能的设置,请
man slapd-config
查看olcAuthzPolicy
.现在我创建一个用作代理的anyuser posix 帐户。要设置
authzTo
属性,请查看Mapping Authentication Identities。现在您可以使用以下命令测试代理授权:
另请注意代理授权规则: