Menu Close

Red Hat Training

A Red Hat training course is available for RHEL 8

8장. IdM의 SSSD를 사용한 인증 문제 해결

IdM(Identity Management) 환경의 인증에는 많은 구성 요소가 포함됩니다.

IdM 클라이언트에서 다음을 수행합니다.

  • SSSD 서비스.
  • NSS(Name Services Switch).
  • PAM(Pluggable Authentication Module).

IdM 서버에서 다음을 수행합니다.

  • SSSD 서비스.
  • IdM 디렉터리 서버.
  • IdM Kerberos KDC(키 배포 센터).

AD(Active Directory) 사용자로 인증하는 경우:

  • AD 도메인 컨트롤러의 디렉터리 서버.
  • AD 도메인 컨트롤러의 Kerberos 서버.

사용자를 인증하려면 SSSD 서비스를 사용하여 다음 기능을 수행할 수 있어야 합니다.

  • 인증 서버에서 사용자 정보를 검색합니다.
  • 사용자에게 자격 증명을 요청하고 해당 자격 증명을 인증 서버에 전달한 다음 결과를 처리합니다.

다음 섹션에서는 사용자 정보를 저장하는 SSSD 서비스와 서버 간에 정보가 이동하는 방법에 대해 설명하여 환경에서 인증 시도 실패 문제를 해결할 수 있습니다.

8.1. SSSD를 사용하여 IdM 사용자 정보를 검색할 때 데이터 흐름

다음 다이어그램은 getent passwd <idm_user_name> 명령을 사용하여 IdM 사용자 정보를 요청하는 동안 IdM 클라이언트와 IdM 서버 간의 정보 흐름을 간소화한 것입니다.

A diagram with numbered arrows representing the flow of information between an IdM client and an IdM server. The following numbered list describes each step in the process.

  1. getent 명령은 libc 라이브러리의 getpwnam 호출을 트리거합니다.
  2. libc 라이브러리는 /etc/nsswitch.conf 구성 파일을 참조하여 사용자 정보를 제공하는 서비스를 확인하고 SSSD 서비스에 대한 항목 sss 를 검색합니다.
  3. libc 라이브러리는 nss_sss 모듈을 엽니다.
  4. nss_sss 모듈은 메모리 매핑된 캐시에서 사용자 정보를 확인합니다. 데이터가 캐시에 있으면 nss_sss 모듈에서 해당 데이터가 반환됩니다.
  5. 사용자 정보가 메모리 매핑 캐시에 없는 경우 요청이 SSSD sssd_nss 응답자 프로세스에 전달됩니다.
  6. SSSD 서비스는 캐시를 확인합니다. 데이터가 캐시에 있고 유효한 경우 sssd_nss 응답자가 캐시에서 데이터를 읽고 애플리케이션에 반환합니다.
  7. 데이터가 캐시에 없거나 만료된 경우 sssd_nss 응답자는 적절한 백엔드 프로세스를 쿼리하고 응답을 기다립니다. SSSD 서비스는 sssd.conf 구성 파일의 id_provider=ipa 설정을 통해 활성화되는 IdM 환경에서 IPA 백엔드를 사용합니다.
  8. sssd_be 백엔드 프로세스는 IdM 서버에 연결하고 IdM LDAP 디렉터리 서버에서 정보를 요청합니다.
  9. IdM 서버의 SSSD 백엔드는 IdM 클라이언트의 SSSD 백엔드 프로세스에 응답합니다.
  10. 클라이언트의 SSSD 백엔드는 결과 데이터를 SSSD 캐시에 저장하고 응답자 프로세스에 캐시가 업데이트되었음을 경고합니다.
  11. sssd_nss 프런트 엔드 응답자 프로세스는 SSSD 캐시에서 정보를 검색합니다.
  12. sssd_nss 응답자는 사용자 정보를 nss_sss 응답자에게 전송하여 요청을 완료합니다.
  13. libc 라이브러리는 사용자 정보를 요청한 애플리케이션에 반환합니다.