我在 Active Directory 中有一个由根域和子域组成的环境,我们将它们称为 my.root.domain.com 和 root.domain.com
我有一个 RHEL7 服务器,它完全可以毫无问题地针对“my.root.domain.com”域进行身份验证。但是,我无法使用“root.domain.com”域中的帐户进行身份验证。我可以使用 id 在两个域中查找帐户:
id -a [email protected]
和
id -a [email protected]
都显示我的 AD 组。作为 root 用户,我甚至可以对任一域中的任何用户执行“su - ”操作(无需身份验证)。当进行身份验证时,就会出现问题。尝试对[电子邮件保护]失败。
在 smb.conf 中我有:
...
workgroup = MY
realm = MY.ROOT.DOMAIN.COM
security = ads
...
在 /etc/krb5.conf 中我有:
[libdefaults]
dns_lookup_realm = true
ticket_lifetime = 24h
renew_lifetime = 7d
forwardable = true
proxiable = true
rdns = false
default_ccache_name = KEYRING:persistent:%{uid}
default_realm = MY.ROOT.DOMAIN.COM
dns_lookup_kdc = true
[realms]
MY.ROOT.DOMAIN.COM = {
}
ROOT.DOMAIN.COM = {
}
[domain_realm]
my.root.domain.com = MY.ROOT.DOMAIN.COM
.my.root.domain.com = MY.ROOT.DOMAIN.COM
root.domain.com = ROOT.DOMAIN.COM
.root.domain.com = ROOT.DOMAIN.COM
数据包跟踪确实表明,当尝试进行身份验证时[电子邮件保护],它会发送以下 KRB 查询:
CNameString: ROOT.DOMAIN.COMuser2
realm: MY.ROOT.DOMIAN.COM
我知道在 AD 方面我是个傻瓜,但希望有人能提出好的建议。我相当确定我的 krb 配置并不完全符合要求。
是否有人建议利用域“root.domain.com”中的帐户进行身份验证?
答案1
在 /etc/krb5.conf 中的 [realms] 部分下,您必须为每个领域声明至少一个 KDC:
[realms]
MY.ROOT.DOMAIN.COM = {
kdc = <FQDN_KDC_MY.ROOT.DOMAIN.COM>
}
ROOT.DOMAIN.COM = {
kdc = <FQDN_KDC.ROOT.DOMAIN.COM>
}