使用单一管理员 Kerberos 主体访问两个不同的 RootDN

问题描述 投票:0回答:1

作为管理员,我最近一直在尝试使用一个 kerberos 帐户登录 2 个不同的 RootDN 帐户。

我有两个不同的rootDNpassword

-D "cn=admin,cn=config" 
-D "cn=admin,dc=example,dc=com"

当我像这样通过 Kerberos 登录时;

kinit ldap/admin

我想同时使用“ldap/admin”主体;

-D "cn=admin,cn=config" -W -Y GSSAPI
-D "cn=admin,dc=example,dc=com" -W -Y GSSAPI

我已经应用了相关命令来实现,但是我只能访问一个ROOTDN,但是我想对两个都进行操作。如果没有 olcAccess,我怎么能做到这一点?

olcAuthzRegexp: {0}"uid=ldap/admin,cn=example.com,cn=gssapi,cn=auth" "cn=admin,dc=example,dc=com'
olcAuthzRegexp: {1}"uid=ldap/admin,cn=example.com,cn=gssapi,cn=auth" "cn=admin,cn=config'

我尝试使用单一主体访问两个不同的 RootDN

kerberos openldap sasl
1个回答
0
投票

-D
-W
选项仅适用于简单绑定。对于SASL绑定,需要使用
-X
指定SASL“授权身份”:

$ ldapwhoami -Y GSSAPI -X "dn:cn=admin,cn=config"

但是,

olcAuthzRegexp
只定义了default authzid(即正则表达式用于 authnid 到 authzid 的转换)而不是你想要的
-X
.

为了允许指定自定义身份,我相信您需要在您自己的 authnid 条目上结合使用

olcAuthzPolicy
authzTo
,在您打算模拟的条目上结合使用 or
authzFrom
。 (是的,rootDN 可以有一个实际条目。)

例如,对于

olcAuthzPolicy: any
,条目需要有:

dn: cn=admin,dc=example,dc=com
authzFrom: {0}dn.exact="uid=ldap/admin,cn=example.com,cn=gssapi,cn=auth"

如果您无法在

cn=admin,cn=config
创建一个真实的条目(配置后端很可能不支持这个),您将需要使用与
authzTo
相反的方法:

  1. 定义

    olcAuthzRegexp
    将您的“cn=gssapi,cn=auth”DN映射到one存在于主数据库后端的真实DN:

    olcAuthzRegexp: {0}"uid=ldap/admin,cn=example.com,cn=gssapi,cn=auth" "cn=admin,dc=example,dc=com"
    

    验证默认情况下您的连接是否被授权为此 DN:

    $ ldapwhoami -Y GSSAPI
    dn:cn=admin,dc=example,dc=com
    
  2. 实际创建 DN,其

    authzTo
    属性列出允许它模拟的 DN(授权为):

    dn: cn=admin,dc=example,dc=com
    authzTo: {0}dn.exact="cn=admin,cn=config"
    
  3. olcAuthzPolicy
    设置为
    both
    from
    ,然后使用
    -X
    选项指定您想要假定的DN:

    $ ldapwhoami -Y GSSAPI -X "dn:cn=admin,cn=config"
    dn:cn=admin,cn=config
    
© www.soinside.com 2019 - 2024. All rights reserved.