搜索

4.4. SSSD 和 FreeIPA 身份管理集成

download PDF

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 文档

keycloak sssd freeipa integration overview

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 文档

流程

  1. 使用以下命令运行 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

    带有 server.freeipa.local 的参数 -h 代表 FreeIPA/IdM 服务器主机名。将 your R_PASSWORD 更改为您自己的密码。

  2. 容器启动后,将 /etc/hosts 文件更改为包括:

    x.x.x.x     server.freeipa.local

    如果没有进行此更改,您必须设置 DNS 服务器。

  3. 使用以下命令在 IPA 域中注册 Linux 服务器,以便 SSSD 联合供应商在红帽单点登录上启动并运行:

     ipa-client-install --mkhomedir -p admin -w password
  4. 在客户端上运行以下命令验证安装是否正常工作:

     kinit admin
  5. 输入您的密码。
  6. 使用以下命令将用户添加到 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
  7. 使用 kinit 强制设置用户的密码。

     kinit <username>
  8. 输入以下内容恢复常规 IPA 操作:

    kdestroy -A
    kinit admin

4.4.2. SSSD 和 D-Bus

联合供应商使用 D-BUS 从 SSSD 获取数据。它使用 PAM 验证数据。

流程

  1. 安装 sssd-dbus RPM。

    $ sudo yum install sssd-dbus
  2. 运行以下置备脚本:

    $ bin/federation-sssd-setup.sh

    此脚本对 /etc/sssd/sssd.conf 进行以下更改:

      [domain/your-hostname.local]
      ...
      ldap_user_extra_attrs = mail:mail, sn:sn, givenname:givenname, telephoneNumber:telephoneNumber
      ...
      [sssd]
      services = nss, sudo, pam, ssh, ifp
      ...
      [ifp]
      allowed_uids = root, yourOSUsername
      user_attributes = +mail, +telephoneNumber, +givenname, +sn
  3. 运行 dbus-send 以确保设置成功。

    sudo dbus-send --print-reply --system --dest=org.freedesktop.sssd.infopipe /org/freedesktop/sssd/infopipe org.freedesktop.sssd.infopipe.GetUserGroups string:john

    如果设置成功,您会看到用户的组。如果此命令返回超时或错误,则 Red Hat Single Sign-On 上运行的联合供应商无法检索任何数据。通常会出现这个错误,因为服务器没有在 FreeIPA IdM 服务器中注册,或者没有访问 SSSD 服务的权限。

    如果您没有访问 SSSD 服务的权限,请确保运行 Red Hat Single Sign-On 服务器的用户位于以下部分的 /etc/sssd/sssd.conf 文件中:

    [ifp]
    allowed_uids = root, your_username

4.4.3. 启用 SSSD 联合供应商

红帽单点登录使用 DBus-Java 与 D-Bus 的低级别通信。D-Bus 依赖于 Unix 套接字库

在启用 SSSD Federation 供应商前,为这个库安装 RPM:

$ sudo yum install rh-sso7-libunix-dbus-java

红帽单点登录使用 JNA 通过 PAM 进行身份验证。确保已安装 JAN 软件包。

$ sudo yum install jna

使用 sssctl user-checks 命令验证您的设置:

  $ sudo sssctl user-checks admin -s keycloak
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.