12장. IdM에서 SSSD를 사용한 인증 문제 해결
IdM(Identity Management) 환경의 인증에는 여러 구성 요소가 포함됩니다.
IdM 클라이언트에서 다음을 수행합니다.
- SSSD 서비스
- NSS(이름 서비스 스위치)입니다.
- PAM(Pluggable Authentication Modules).
IdM 서버에서 다음을 수행합니다.
- SSSD 서비스
- IdM 디렉터리 서버입니다.
- IdM Kerberos KMS(Key Distribution Center)입니다.
AD(Active Directory) 사용자로 인증하는 경우:
- AD 도메인 컨트롤러의 디렉터리 서버입니다.
- AD 도메인 컨트롤러의 Kerberos 서버.
사용자를 인증하려면 SSSD 서비스를 사용하여 다음 기능을 수행할 수 있어야 합니다.
- 인증 서버에서 사용자 정보를 검색합니다.
- 사용자에게 자격 증명을 입력하라는 메시지를 표시하고 해당 자격 증명을 인증 서버에 전달한 후 결과를 처리합니다.
문제 해결에는 SSSD 서비스와 사용자 정보를 저장하는 서버 간에 정보가 이동하는 방식을 이해해야 합니다. 이를 통해 문제가 발생한 위치를 식별하고 잠재적인 원인을 좁힐 수 있습니다.
12.1. SSSD를 사용하여 IdM 사용자 정보를 검색할 때 데이터 흐름 링크 복사링크가 클립보드에 복사되었습니다!
링크 복사링크가 클립보드에 복사되었습니다!
다음 다이어그램은 getent passwd < idm_user_name > 명령을 사용하여 IdM 사용자 정보를 요청하는 동안 IdM 클라이언트와 IdM 서버 간의 정보 흐름을 단순화하는 것입니다.
getent passwd를 사용하여 사용자 정보를 검색하기 위한 IdM 클라이언트와 서버 간의 정보 흐름
-
getent명령은libc라이브러리에서getpwnam호출을 트리거합니다. -
libc라이브러리는/etc/nsswitch.conf구성 파일을 참조하여 사용자 정보를 제공하는 서비스를 확인하고 SSSD 서비스의 항목sss를 검색합니다. -
libc라이브러리는nss_sss모듈을 엽니다. -
nss_sss 모듈은 메모리 매핑된 캐시의 사용자 정보를 확인합니다. 데이터가 캐시에 있으면
nss_sss모듈에서 해당 데이터를 반환합니다. -
사용자 정보가 메모리 매핑 캐시에 없는 경우 요청은 SSSD
sssd_nss응답자 프로세스에 전달됩니다. -
SSSD 서비스는 캐시를 확인합니다. 데이터가 캐시에 있고 유효한 경우
sssd_nss응답기에서 캐시에서 데이터를 읽고 애플리케이션에 반환합니다. -
데이터가 캐시에 없거나 만료된 경우
sssd_nss응답자가 적절한 백엔드 프로세스를 쿼리하고 응답을 기다립니다. SSSD 서비스는sssd.conf구성 파일의id_provider=ipa설정에 의해 활성화된 IdM 환경의 IPA 백엔드를 사용합니다. -
sssd_be백엔드 프로세스는 IdM 서버에 연결하고 IdM LDAP Directory Server에서 정보를 요청합니다. - IdM 서버의 SSSD 백엔드는 IdM 클라이언트의 SSSD 백엔드 프로세스에 응답합니다.
- 클라이언트의 SSSD 백엔드는 결과 데이터를 SSSD 캐시에 저장하고 캐시가 업데이트되었음을 응답자 프로세스에 경고합니다.
-
sssd_nss프런트 엔드 응답자 프로세스는 SSSD 캐시에서 정보를 검색합니다. -
sssd_nss응답자는 사용자 정보를nss_ss응답자에게 전송하여 요청을 완료합니다. -
libc라이브러리는 사용자 정보를 요청한 애플리케이션에 반환합니다.