我们有一个用于 hadop 的工作结构,其中使用 openldap 以及 ranger 和 knox 进行具有以下结构的身份验证。
openldap 根目录:-
dn: dc=abchadoop,dc=com,dc=za
openldap 内部的子树如下:-
dn: ou=people,dc=abchadoop,dc=com,dc=za
dn: ou=groups,dc=abchadoop,dc=com,dc=za
dn: ou=services,dc=abchadoop,dc=com,dc=za
dn: cn=ud_devtest,ou=people,dc=abchadoop,dc=com,dc=za
dn: cn=hcat,ou=services,dc=abchadoop,dc=com,dc=za
dn: cn=hive_dev,ou=groups,dc=abchadoop,dc=com,dc=za
现在我们将 kerberos 与 openldap 集成为后端(同一服务器),然后图片变得混乱不堪。添加 kerberos 后,openldap 中的新条目如下所示:-
openldap root:-
dn: dc=abchadoop,dc=com,dc=za
Subtree inside openldap like below:-
dn: ou=people,dc=abchadoop,dc=com,dc=za
dn: ou=groups,dc=abchadoop,dc=com,dc=za
dn: ou=services,dc=abchadoop,dc=com,dc=za
dn: cn=ud_devtest,ou=people,dc=abchadoop,dc=com,dc=za
dn: cn=hcat,ou=services,dc=abchadoop,dc=com,dc=za
dn: cn=hive_dev,ou=groups,dc=abchadoop,dc=com,dc=za
kerberos:-
dn: cn=kerberos,dc=abchadoop,dc=com,dc=za
dn: cn=ABCHDP.COM,cn=kerberos,dc=abchadoop,dc=com,dc=za
--
Hadoop kerberos principals
--
dn: [email protected],cn=ABCHDP.COM,cn=kerberos,dc=abchadoop,dc=com,dc=za
dn: [email protected],cn=ABCHDP.COM,cn=kerberos,dc=abchadoop,dc=com,dc=za
现在我又有一些困惑了:-
我的域名是 ABCHDP.COM 而不是 abchadoop.com.sa,就像大多数互联网使用示例一样(example.com 作为域名,EXAMPLE.COM 作为域名),对于 openldap 根和 kerberos 领域来说,必须具有相同的名称??
在创建 openldap 时,ud_devtest 已经存在,密码为 1,在安装 kerberos 之后,我们创建了一个具有相同名称的另一个主体,但在这里我们给出了不同的密码(密码 2),有没有办法同步密码??
下一步我应该在哪里创建用户,ldap 还是 kerberos?
有人可以帮我理解吗?
答案1
惯例是 Kerberos 领域与域相同,但大写。这不是强制要求,但它确实有助于避免一些混淆。
一个 kerberos 主体只能有一个密码。
一个 ldap dn 可以有多个 userPassword 条目,每个条目指向不同的 kerberos 主体以进行 SASL 直通身份验证。但是,我不建议这样做。
如果您的意思是 ldap dn 的 userPassword 属性当前未设置为 sasl 直通,例如,则应进行更改。首先确保您的配置正确。userPassword: {SASL}[email protected]
saslauthd
接下来,您应该创建一个同时具有 ldap 和 kerberos 的用户。您可以将它们保留在两个单独的 dns 中,也可以将它们合并。无论哪种方式对您来说最有意义。合并可能会使用kdb5_ldap_util modify -subtress ou=people,dc=abchadoop,dc=com,dc=za -r ABCHDP.COM
和objectClass: krbPrincipalAux
。