12.3. IdM에서 SSSD를 사용하여 사용자로 인증할 때 데이터 흐름
IdM 서버 또는 클라이언트에서 사용자로 인증하려면 다음 구성 요소가 포함됩니다.
-
sshd서비스와 같은 인증 요청을 시작하는 서비스입니다. - PAM(Pluggable Authentication Module) 라이브러리 및 해당 모듈.
- SSSD 서비스, 응답자 및 백엔드.
- 스마트 카드 인증이 구성된 경우 스마트 카드 리더입니다.
인증 서버:
- IdM 사용자는 IdM Kerberos KMS(Key Distribution Center)에 대해 인증됩니다.
- AD(Active Directory) 사용자는 AD DC(Domain Controller)에 대해 인증됩니다.
다음 다이어그램은 명령줄에서 SSH 서비스를 통해 호스트에 로컬로 로그인하려고 시도하는 동안 사용자가 인증해야 하는 경우 정보 흐름을 단순화한 것입니다.
인증 시도 중에 IdM 클라이언트와 IdM 서버 또는 AD 도메인 컨트롤러 간의 정보 흐름
-
ssh명령을 사용한 인증 시도는libpam라이브러리를 트리거합니다. libpam라이브러리는 인증 시도를 요청하는 서비스에 해당하는/etc/pam.d/디렉터리의 PAM 파일을 참조합니다. 로컬 호스트의 SSH 서비스를 통해 인증하는 이 예제에서libpam라이브러리는/etc/pam.d/system-auth구성 파일을 확인하고 SSSD PAM의pam_sss.so항목을 검색합니다.auth sufficient pam_sss.so-
사용 가능한 인증 방법을 확인하기 위해
libpam라이브러리는pam_sss모듈을 열고SSS_PAM_PREAUTH요청을 SSSD 서비스의sssd_pamPAM 응답자에게 보냅니다. -
스마트 카드 인증이 구성된 경우 SSSD 서비스는 임시
p11_child프로세스를 생성하여 스마트 카드를 확인하고 인증서를 검색합니다. -
사용자에 대해 스마트 카드 인증이 구성된 경우
sssd_pam응답자는 사용자와 스마트 카드의 인증서와 일치하려고 합니다. 또한sssd_pam응답자는 사용자가 속한 그룹에 대한 검색을 수행합니다. 그룹 멤버십이 액세스 제어에 영향을 줄 수 있기 때문입니다. -
sssd_pam응답자는SSS_PAM_PREAUTH요청을sssd_be백엔드 응답자에게 전송하여 서버가 암호 또는 2 단계 인증과 같이 지원하는 인증 방법을 확인합니다. SSSD 서비스에서 IPA 응답자를 사용하는 IdM 환경에서 기본 인증 방법은 Kerberos입니다. 이 예에서는 사용자가 간단한 Kerberos 암호로 인증합니다. -
sssd_be응답자는 임시krb5_child프로세스를 생성합니다. -
krb5_child프로세스는 IdM 서버의 KDC에 연결하고 사용 가능한 인증 방법을 확인합니다. KDC는 요청에 응답합니다.
-
krb5_child프로세스는 응답을 평가하고 결과를sssd_be백엔드 프로세스로 다시 보냅니다. -
sssd_be백엔드 프로세스는 결과를 수신합니다. -
sssd_pam응답자는 결과를 수신합니다. -
pam_sss모듈은 결과를 수신합니다.
-
-
사용자에 대해 암호 인증이 구성된 경우
pam_sss모듈에서 사용자에게 암호를 입력하라는 메시지를 표시합니다. 스마트 카드 인증이 구성된 경우pam_sss모듈에서 사용자에게 스마트 카드 PIN을 입력하라는 메시지를 표시합니다. 이 모듈은 다음 작업을 수행하는 사용자 이름과 암호를 사용하여
SSS_PAM_AUTHENTICATE요청을 보냅니다.-
sssd_pam응답기. -
sssd_be백엔드 프로세스.
-
-
sssd_be프로세스는 임시krb5_child프로세스를 생성하여 KDC에 연결합니다. -
krb5_child프로세스는 사용자가 제공한 암호와 사용자 이름으로 KDC에서 Kerberos 티켓 부여 티켓(TGT)을 검색하려고 합니다. -
krb5_child프로세스는 인증 시도의 결과를 수신합니다. krb5_child프로세스:- 인증 정보 캐시에 TGT를 저장합니다.
-
인증 결과를
sssd_be백엔드 프로세스로 반환합니다.
인증 결과는
sssd_be프로세스에서 다음으로 이동합니다.-
sssd_pam응답기. -
pam_sss모듈.
-
-
pam_sss모듈은 다른 애플리케이션에서 참조할 수 있도록 사용자 TGT의 위치로 환경 변수를 설정합니다.