4.4. SSSD 和 FreeIPA 身份管理集成
Red Hat Single Sign-On 包含 系统安全服务守护进程(SSSD) 插件。SSSD 是 Fedora 和 Red Hat Enterprise Linux (RHEL)的一部分,它提供了对多个身份和验证供应商的访问。SSSD 还提供诸多优点,如故障转移和离线支持。如需更多信息,请参阅 Red Hat Enterprise Linux Identity Management 文档。
SSSD 与 FreeIPA 身份管理(IdM)服务器集成,提供身份验证和访问控制。通过这种集成,Red Hat Single Sign-On 可以根据特权访问管理(PAM)服务进行身份验证,并从 SSSD 检索用户数据。有关在 Linux 环境中使用红帽身份管理的更多信息,请参阅 Red Hat Enterprise Linux Identity Management 文档。
Red Hat Single Sign-On 和 SSSD 通过只读 D-Bus 接口进行通信。因此,置备和更新用户的方式是使用 FreeIPA/IdM 管理界面。默认情况下,接口导入用户名、电子邮件、名字和姓氏。
Red Hat Single Sign-On 会自动注册组和角色,但不会同步它们。红帽单点登录管理员对 Red Hat Single Sign-On 管理员所做的任何更改都不会与 SSSD 同步。
4.4.1. FreeIPA/IdM 服务器 复制链接链接已复制到粘贴板!
FreeIPA Docker 镜像位于 Docker Hub 中。要设置 FreeIPA 服务器,请查看 FreeIPA 文档。
流程
使用以下命令运行 FreeIPA 服务器:
docker run --name freeipa-server-container -it \ -h server.freeipa.local -e PASSWORD=YOUR_PASSWORD \ -v /sys/fs/cgroup:/sys/fs/cgroup:ro \ -v /var/lib/ipa-data:/data:Z freeipa/freeipa-server
docker run --name freeipa-server-container -it \ -h server.freeipa.local -e PASSWORD=YOUR_PASSWORD \ -v /sys/fs/cgroup:/sys/fs/cgroup:ro \ -v /var/lib/ipa-data:/data:Z freeipa/freeipa-server
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 带有
server.freeipa.local
的参数-h
代表 FreeIPA/IdM 服务器主机名。将 yourR_PASSWORD
更改为您自己的密码。容器启动后,将
/etc/hosts
文件更改为包括:x.x.x.x server.freeipa.local
x.x.x.x server.freeipa.local
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果没有进行此更改,您必须设置 DNS 服务器。
使用以下命令在 IPA 域中注册 Linux 服务器,以便 SSSD 联合供应商在红帽单点登录上启动并运行:
ipa-client-install --mkhomedir -p admin -w password
ipa-client-install --mkhomedir -p admin -w password
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在客户端上运行以下命令验证安装是否正常工作:
kinit admin
kinit admin
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 输入您的密码。
使用以下命令将用户添加到 IPA 服务器:
ipa user-add <username> --first=<first name> --last=<surname> --email=<email address> --phone=<telephoneNumber> --street=<street> \ --city=<city> --state=<state> --postalcode=<postal code> --password
$ ipa user-add <username> --first=<first name> --last=<surname> --email=<email address> --phone=<telephoneNumber> --street=<street> \ --city=<city> --state=<state> --postalcode=<postal code> --password
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用 kinit 强制设置用户的密码。
kinit <username>
kinit <username>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输入以下内容恢复常规 IPA 操作:
kdestroy -A kinit admin
kdestroy -A kinit admin
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.4.2. SSSD 和 D-Bus 复制链接链接已复制到粘贴板!
联合供应商使用 D-BUS 从 SSSD 获取数据。它使用 PAM 验证数据。
流程
安装 sssd-dbus RPM。
sudo yum install sssd-dbus
$ sudo yum install sssd-dbus
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下置备脚本:
bin/federation-sssd-setup.sh
$ bin/federation-sssd-setup.sh
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 此脚本对
/etc/sssd/sssd.conf
进行以下更改:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行
dbus-send
以确保设置成功。sudo dbus-send --print-reply --system --dest=org.freedesktop.sssd.infopipe /org/freedesktop/sssd/infopipe org.freedesktop.sssd.infopipe.GetUserGroups string:john
sudo dbus-send --print-reply --system --dest=org.freedesktop.sssd.infopipe /org/freedesktop/sssd/infopipe org.freedesktop.sssd.infopipe.GetUserGroups string:john
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果设置成功,您会看到用户的组。如果此命令返回超时或错误,则 Red Hat Single Sign-On 上运行的联合供应商无法检索任何数据。通常会出现这个错误,因为服务器没有在 FreeIPA IdM 服务器中注册,或者没有访问 SSSD 服务的权限。
如果您没有访问 SSSD 服务的权限,请确保运行 Red Hat Single Sign-On 服务器的用户位于以下部分的
/etc/sssd/sssd.conf
文件中:[ifp] allowed_uids = root, your_username
[ifp] allowed_uids = root, your_username
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.4.3. 启用 SSSD 联合供应商 复制链接链接已复制到粘贴板!
红帽单点登录使用 DBus-Java 与 D-Bus 的低级别通信。D-Bus 依赖于 Unix 套接字库。
在启用 SSSD Federation 供应商前,为这个库安装 RPM:
sudo yum install rh-sso7-libunix-dbus-java
$ sudo yum install rh-sso7-libunix-dbus-java
红帽单点登录使用 JNA 通过 PAM 进行身份验证。确保已安装 JAN 软件包。
sudo yum install jna
$ sudo yum install jna
使用 sssctl user-checks
命令验证您的设置:
sudo sssctl user-checks admin -s keycloak
$ sudo sssctl user-checks admin -s keycloak