5.3. 使用 Active Directory
本节介绍如何使用直接 Active Directory (AD)作为 Satellite 服务器的外部身份验证源。
您可以将 Active Directory 附加到没有单点登录支持的外部身份验证源。更多信息请参阅 第 5.1 节 “使用 LDAP”。有关示例配置,请参阅 如何在 Satellite 上使用 TLS 配置 Active Directory 身份验证。
直接 AD 集成意味着 Satellite 服务器直接加入到存储身份的 AD 域。
5.3.1. 在 Satellite 服务器上配置活动目录身份验证源 复制链接链接已复制到粘贴板!
通过在 Satellite 服务器上配置对应的身份验证提供程序,启用 Active Directory (AD)用户访问 Satellite。
先决条件
Satellite 服务器的基本系统必须加入 Active Directory (AD)域。要启用 AD 用户使用 Kerberos 单点登录,请使用系统安全服务守护进程(SSSD)和 Samba 服务将基本系统加入到 AD 域中:
在 Satellite 服务器上安装以下软件包:
satellite-maintain packages install adcli krb5-workstation oddjob-mkhomedir oddjob realmd samba-winbind-clients samba-winbind samba-common-tools samba-winbind-krb5-locator sssd
# satellite-maintain packages install adcli krb5-workstation oddjob-mkhomedir oddjob realmd samba-winbind-clients samba-winbind samba-common-tools samba-winbind-krb5-locator sssd
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在加入 AD 域时指定所需的软件:
realm join AD.EXAMPLE.COM --membership-software=samba --client-software=sssd
# realm join AD.EXAMPLE.COM --membership-software=samba --client-software=sssd
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 有关直接 AD 集成的更多信息,请参阅使用 Samba Winbind 将 RHEL 系统直接连接到 AD。
流程
在 satellite-installer 需要的位置定义 AD 域配置:
创建名为
/etc/ipa/
的目录:mkdir /etc/ipa/
# mkdir /etc/ipa/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用以下内容创建
/etc/ipa/default.conf
文件,为 AD 域配置 Kerberos 域:[global] realm = AD.EXAMPLE.COM
[global] realm = AD.EXAMPLE.COM
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
为 Kerberos 连接配置 Apache keytab:
使用以下设置更新
/etc/samba/smb.conf
文件,以配置 Samba 与 AD 交互的方式:[global] workgroup = AD.EXAMPLE realm = AD.EXAMPLE.COM kerberos method = system keytab security = ads
[global] workgroup = AD.EXAMPLE realm = AD.EXAMPLE.COM kerberos method = system keytab security = ads
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将 Kerberos 服务主体添加到
/etc/httpd/conf/http.keytab
的 keytab 文件中:KRB5_KTNAME=FILE:/etc/httpd/conf/http.keytab net ads keytab add HTTP -U Administrator -s /etc/samba/smb.conf
# KRB5_KTNAME=FILE:/etc/httpd/conf/http.keytab net ads keytab add HTTP -U Administrator -s /etc/samba/smb.conf
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
配置系统安全服务守护进程(SSSD),以使用 AD 访问控制提供程序为
foreman
PAM 服务评估和强制实施组策略对象(GPO)访问控制规则:在
/etc
部分中,配置/sssd/sssd.conf
文件的 [domain/ad.example.com]ad_gpo_access_control
和ad_gpo_map_service
选项,如下所示:[domain/ad.example.com] ad_gpo_access_control = enforcing ad_gpo_map_service = +foreman
[domain/ad.example.com] ad_gpo_access_control = enforcing ad_gpo_map_service = +foreman
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如需有关 GPO 的更多信息,请参阅以下文档:
- SSSD 如何解释 GPO 访问控制规则,如何将 RHEL 系统直接与 Windows Active Directory (RHEL 9)集成
- SSSD 如何解释 GPO 访问控制规则,如何将 RHEL 系统直接与 Windows Active Directory (RHEL 8)集成
重启 SSSD:
systemctl restart sssd
# systemctl restart sssd
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
启用身份验证源:
satellite-installer --foreman-ipa-authentication=true
# satellite-installer --foreman-ipa-authentication=true
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
-
要验证 AD 用户可以通过输入其凭据来登录到 Satellite,请通过 https://satellite.example.com 登录到 Satellite Web UI。以用户主体名称(UPN)格式输入用户名,例如:
ad_user@AD.EXAMPLE.COM
。 使用 Kerberos 单点登录验证 AD 用户是否可以进行身份验证:
代表 AD 用户获得 Kerberos 票据授予票据(TGT):
kinit ad_user@AD.EXAMPLE.COM
$ kinit ad_user@AD.EXAMPLE.COM
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用您的 TGT 验证用户身份验证:
curl -k -u : --negotiate https://satellite.example.com/users/extlogin
$ curl -k -u : --negotiate https://satellite.example.com/users/extlogin <html><body>You are being <a href="satellite.example.com/hosts">redirected</a>.</body></html>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
故障排除
连接到 AD LDAP 有时可能会失败,并显示以下错误,如下所示:
Authentication failed with status code: { "error": { "message": "ERF77-7629 [Foreman::LdapException]: Error while connecting to 'server.com' LDAP server at 'ldap.example.com' during authentication ([Net::LDAP::Error]: Connection reset by peer - SSL_connect)" } }
Authentication failed with status code: { "error": { "message": "ERF77-7629 [Foreman::LdapException]: Error while connecting to 'server.com' LDAP server at 'ldap.example.com' during authentication ([Net::LDAP::Error]: Connection reset by peer - SSL_connect)" } }
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果您看到这个错误,请验证哪个密码用于连接:
openssl s_client -connect ldap.example.com:636
# openssl s_client -connect ldap.example.com:636
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果使用
TLS_DHE_RSA_WITH_AES_256_GCM_SHA384
密码,请在 Satellite 服务器端或 AD 端禁用它。TLS_DHE_RSA_WITH_AES_256_GCM_SHA384
密码已知会导致不兼容。如需更多信息,请参阅红帽知识库解决方案 API 调用 Red Hat Satellite 6 在 LDAP 身份验证中失败。
其他资源
-
您系统上的
sssd-ad (5)
手册页
5.3.2. Web 浏览器中的 Kerberos 配置 复制链接链接已复制到粘贴板!
有关配置 Firefox 的详情,请参考 Red Hat Enterprise Linux 在 RHEL 中配置身份验证和授权 指南中的 配置 Firefox 以为单点登录使用 Kerberos。
如果您使用 Internet Explorer 浏览器,请将 Satellite 服务器添加到本地 I intranet 或 Trusted 站点列表中,然后打开 Enable Integrated Windows Authentication 设置。详情请查看 Internet Explorer 文档。
5.3.3. 具有 Cross-Forest Trust 的活动目录 复制链接链接已复制到粘贴板!
Kerberos 可以创建 跨林信任
,以定义两个其他独立域林之间的关系。域林是域的层次结构,AD 和红帽身份管理均构成了林。AD 和 Red Hat Identity Management 之间启用了信任关系,AD 用户可以使用一组凭证访问 Linux 主机和服务。如需有关跨林信任的更多信息,请参阅在 Red Hat Enterprise Linux 规划身份管理 中的 规划 IdM 和 AD 之间的跨林信任。
从 Satellite 的角度来看,配置过程与没有配置跨林信任的情况下与红帽身份管理服务器集成相同。Satellite 服务器必须在 IdM 域中注册,并集成,如 第 5.2 节 “使用红帽身份管理” 所述。
在 Red Hat Identity Management 服务器上,将服务器配置为使用 跨林信任
。
流程
启用 HBAC :
- 创建一个外部组,并将 AD 组添加到其中。
- 将新的外部组添加到 POSIX 组。
- 在 HBAC 规则中使用 POSIX 组。
配置 sssd 以传输 AD 用户的额外属性。
将 AD 用户属性添加到
/etc/sssd/sssd.conf
中的 nss 和 domain 部分。例如:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 验证 AD 属性值。
dbus-send --print-reply --system --dest=org.freedesktop.sssd.infopipe /org/freedesktop/sssd/infopipe org.freedesktop.sssd.infopipe.GetUserAttr string:ad-user@ad-domain array:string:email,firstname,lastname
# dbus-send --print-reply --system --dest=org.freedesktop.sssd.infopipe /org/freedesktop/sssd/infopipe org.freedesktop.sssd.infopipe.GetUserAttr string:ad-user@ad-domain array:string:email,firstname,lastname
Copy to Clipboard Copied! Toggle word wrap Toggle overflow