14장. IdM에서 SSSD를 사용한 인증 문제 해결
IdM(Identity Management) 환경의 인증에는 다음과 같은 많은 구성 요소가 포함됩니다.
IdM 클라이언트의 경우:
- SSSD 서비스.
- NSS(이름 서비스 스위치).
- PAM(장착형 인증 모듈).
IdM 서버에서 다음을 수행합니다.
- SSSD 서비스.
- IdM 디렉터리 서버.
- IdM Kerberos KDC(키 배포 센터).
AD(Active Directory) 사용자로 인증하는 경우:
- AD 도메인 컨트롤러의 디렉터리 서버.
- AD 도메인 컨트롤러의 Kerberos 서버.
사용자를 인증하려면 SSSD 서비스를 사용하여 다음 기능을 수행할 수 있어야 합니다.
- 인증 서버에서 사용자 정보를 검색합니다.
- 사용자에게 자격 증명을 요청하고 해당 자격 증명을 인증 서버에 전달한 다음 결과를 처리합니다.
사용자 정보를 저장하는 SSSD 서비스와 서버 간에 정보가 이동하는 방법에 대한 자세한 내용은 환경에서 인증 시도 실패 문제를 해결할 수 있도록 다음을 참조하십시오.
- SSSD로 IdM 사용자 정보를 검색할 때 데이터 흐름
- SSSD로 AD 사용자 정보를 검색할 때 데이터 흐름
- IdM에서 SSSD를 사용하여 사용자로 인증할 때 데이터 흐름
- 인증 문제 범위 좁음
- SSSD 로그 파일 및 로깅 수준
- sssd.conf 파일에서 SSSD에 대한 자세한 로깅 활성화
- sssctl 명령을 사용하여 SSSD에 대한 자세한 로깅 활성화
- IdM 서버의 인증 문제 해결을 위해 SSSD 서비스에서 디버깅 로그 수집
- IdM 클라이언트의 인증 문제 해결을 위해 SSSD 서비스에서 디버깅 로그 수집
- SSSD 백엔드에서 클라이언트 요청 추적
- 로그 분석기 툴을 사용하여 클라이언트 요청 추적
14.1. SSSD로 IdM 사용자 정보를 검색할 때 데이터 흐름
다음 다이어그램은 getent passwd <idm_user_name>
명령을 사용하여 IdM 사용자 정보를 요청하는 동안 IdM 클라이언트와 IdM 서버 간의 정보 흐름을 간소화한 것입니다.
-
getent
명령은libc
라이브러리에서getpwnam
호출을 트리거합니다. -
libc
라이브러리는/etc/nsswitch.conf
구성 파일을 참조하여 사용자 정보 제공을 담당하는 서비스를 확인하고 SSSD 서비스에대한
항목을 검색합니다. -
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 디렉터리 서버에서 정보를 요청합니다. - IdM 서버의 SSSD 백엔드는 IdM 클라이언트의 SSSD 백엔드 프로세스에 응답합니다.
- 클라이언트의 SSSD 백엔드는 결과 데이터를 SSSD 캐시에 저장하고 캐시가 업데이트되었음을 응답 프로세스를 경고합니다.
-
sssd_nss
프론트엔드 응답자 프로세스는 SSSD 캐시에서 정보를 검색합니다. -
sssd_nss
응답자가 사용자 정보를nss_sss
응답자에게 전송하여 요청을 완료합니다. -
libc
라이브러리는 사용자 정보를 요청한 애플리케이션에 반환합니다.