4.4. SSSD 및 FreeIPA ID 관리 통합
Red Hat Single Sign-On에는 SSSD(System Security Services Daemon) 플러그인이 포함되어 있습니다. SSSD는 Fedora 및 RHEL(Red Hat Enterprise Linux)의 일부이며 여러 ID 및 인증 공급자에 대한 액세스를 제공합니다. SSSD는 장애 조치(failover) 및 오프라인 지원과 같은 이점도 제공합니다. 자세한 내용은 Red Hat Enterprise Linux Identity Management 설명서를 참조하십시오.
SSSD는 FreeIPA IdM(Identity Management) 서버와 통합되어 인증 및 액세스 제어를 제공합니다. 이러한 통합을 통해 Red Hat Single Sign-On은 권한 있는 액세스 관리(PAM) 서비스에 대해 인증하고 SSSD에서 사용자 데이터를 검색할 수 있습니다. Linux 환경에서 Red Hat Identity Management 사용에 대한 자세한 내용은 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
server.freeipa.local
을 사용하는 매개변수-h
는 FreeIPA/IdM 서버 호스트 이름을 나타냅니다. 자신의 암호로_PASSWORD
를 변경합니다.컨테이너가 시작된 후 다음을 포함하도록
/etc/hosts
파일을 변경합니다.x.x.x.x server.freeipa.local
이 변경을 수행하지 않으면 DNS 서버를 설정해야 합니다.
다음 명령을 사용하여 Linux 서버를 IPA 도메인에 등록하여 Red Hat Single Sign-On에서 SSSD 페더레이션 공급자를 시작하고 실행합니다.
ipa-client-install --mkhomedir -p admin -w password
클라이언트에서 다음 명령을 실행하여 설치가 작동하는지 확인합니다.
kinit admin
- 암호를 입력합니다.
다음 명령을 사용하여 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
kinit를 사용하여 사용자 암호를 강제로 설정합니다.
kinit <username>
다음을 입력하여 일반 IPA 작업을 복원합니다.
kdestroy -A kinit admin
4.4.2. SSSD 및 D-Bus
페더레이션 공급자는 D-BUS를 사용하여 SSSD에서 데이터를 가져옵니다. PAM을 사용하여 데이터를 인증합니다.
절차
sssd-dbus RPM을 설치합니다.
$ sudo yum install sssd-dbus
다음 프로비저닝 스크립트를 실행합니다.
$ 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
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 페더레이션 공급자 활성화
Red Hat Single Sign-On은 DBus-Java를 사용하여 D-Bus와 낮은 수준으로 통신합니다. D-Bus는 Unix 소켓 라이브러리에 따라 다릅니다.
SSSD 페더레이션 공급자를 활성화하기 전에 이 라이브러리의 RPM을 설치합니다.
$ sudo yum install rh-sso7-libunix-dbus-java
Red Hat Single Sign-On은 JNA를 사용하여 PAM에 인증합니다. JAN 패키지가 설치되어 있는지 확인합니다.
$ sudo yum install jna
sssctl user-checks
명령을 사용하여 설정을 검증합니다.
$ sudo sssctl user-checks admin -s keycloak