You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu 22.04配置双向信任AD域认证:无需DOMAIN2管理员权限实现跨域用户登录

Ubuntu 22.04配置双向信任AD域认证:无需DOMAIN2管理员权限实现跨域用户登录

你遇到的这个场景太常见了——跨域双向信任但没有对方域的管理权限,完全不用麻烦DOMAIN2的团队,咱们只需要调整SSSD的配置就能实现DOMAIN2用户的登录,不需要重新执行adcli join操作。

核心原理

因为DOMAIN1和DOMAIN2已经建立了双向信任关系,你已经加入DOMAIN1的Ubuntu主机,会自动通过信任链路获得查询DOMAIN2用户信息、验证身份的权限,不需要再单独加入DOMAIN2域。

具体配置步骤

1. 编辑SSSD主配置文件

打开/etc/sssd/sssd.conf,先确认现有[sssd]段的domains参数,然后添加DOMAIN2的域配置段:

[sssd]
services = nss, pam, ssh, autofs
domains = DOMAIN1.COM, DOMAIN2.COM  # 把DOMAIN2.COM加到这里

# 保留你原来的DOMAIN1配置段,比如:
[domain/DOMAIN1.COM]
id_provider = ad
ad_domain = domain1.com
...

# 添加DOMAIN2的配置段
[domain/DOMAIN2.COM]
id_provider = ad
ad_domain = domain2.com
# 可选:指定DOMAIN2的DC地址,如果DNS能自动解析可以省略
# ad_server = dc01.domain2.com
ad_hostname = your-ubuntu-hostname.domain1.com  # 你的Ubuntu主机的完整域名(属于DOMAIN1)
cache_credentials = True
krb5_store_password_if_offline = True
default_shell = /bin/bash
fallback_homedir = /home/%u@%d
ldap_id_mapping = True
use_fully_qualified_names = True  # 建议开启,避免和DOMAIN1用户重名冲突

2. 调整Kerberos配置(可选但推荐)

打开/etc/krb5.conf,确保Kerberos能自动识别两个域的KDC:

[libdefaults]
default_realm = DOMAIN1.COM
dns_lookup_realm = true
dns_lookup_kdc = true
ticket_lifetime = 24h
renew_lifetime = 7d
forwardable = true

[domain_realm]
.domain1.com = DOMAIN1.COM
domain1.com = DOMAIN1.COM
.domain2.com = DOMAIN2.COM
domain2.com = DOMAIN2.COM

如果你的DNS服务器能正确解析DOMAIN2的KDC记录,dns_lookup_realm和dns_lookup_kdc会自动帮你完成域的识别,不需要手动添加[realms]段。

3. 重启SSSD服务并验证

执行命令重启服务:

sudo systemctl restart sssd

然后验证能否获取DOMAIN2的用户信息:

getent passwd user_from_domain2@domain2.com

如果能输出用户的UID、GID、家目录等信息,说明配置已经生效。

4. 测试跨域登录

现在你可以尝试用DOMAIN2的用户登录Ubuntu:

  • 本地登录:输入用户名user_from_domain2@domain2.com和对应密码
  • SSH登录:ssh user_from_domain2@domain2.com@your-ubuntu-ip

常见问题排查

  • 如果getent查不到用户:检查SSSD日志/var/log/sssd/sssd_domain2.com.log,看是否有DNS解析失败、权限不足的错误
  • 如果登录失败:确认DOMAIN1和DOMAIN2的双向信任是否正常(可以在Windows机器上验证跨域访问),同时检查Ubuntu主机的时间是否和AD域同步(Kerberos对时间敏感)
  • 如果想限制特定DOMAIN2用户登录:可以在DOMAIN2的配置段添加ad_access_filter = (memberOf=cn=UbuntuAllowedUsers,ou=Groups,dc=domain2,dc=com),只允许指定组的用户登录

备注:内容来源于stack exchange,提问作者Rafael Rodrigues Marquesi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.21 15:00:27