Menu Close

Red Hat Training

A Red Hat training course is available for RHEL 8

8.3. IdM에서 SSSD를 사용하여 사용자로 인증할 때 데이터 흐름

IdM 서버 또는 클라이언트에 사용자로 인증에는 다음 구성 요소가 포함됩니다.

  • sshd 서비스와 같은 인증 요청을 시작하는 서비스입니다.
  • PAM(Pluggable Authentication Module) 라이브러리 및 해당 모듈.
  • SSSD 서비스, 해당 응답자 및 백엔드.
  • 스마트 카드 인증이 구성된 경우 스마트 카드 리더.
  • 인증 서버:

    • IdM 사용자는 IdM KDC(Kerberos Key Distribution Center)에 대해 인증됩니다.
    • AD(Active Directory) 사용자는 DC(AD 도메인 컨트롤러)에 대해 인증됩니다.

다음 다이어그램은 사용자가 명령줄의 SSH 서비스를 통해 호스트에 로컬로 로그인해야 하는 경우 정보 흐름을 단순화한 것입니다.

A diagram with numbered arrows representing the flow of information between an IdM client and an IdM server or AD Domain Controller during an authentication attempt. The following numbered list describes each step in the process.

  1. ssh 명령의 인증 시도는 libpam 라이브러리를 트리거합니다.
  2. libpam 라이브러리는 인증 시도를 요청하는 서비스에 해당하는 /etc/pam.d/ 디렉터리의 PAM 파일을 참조합니다. 로컬 호스트의 SSH 서비스를 통한 인증과 관련된 이 예제에서 libpam 라이브러리는 /etc/pam.d/system-auth 구성 파일을 확인하고 SSSD PAM에 대한 pam_ss.so 항목을 검색합니다.

    auth    sufficient    pam_sss.so
  3. 사용 가능한 인증 방법을 확인하기 위해 libpam 라이브러리는 pam_sss 모듈을 열고 SSSD 서비스의 sssd _pam PAM 응답자로 SSS_ PAM_PREAUTH 요청을 보냅니다.
  4. 스마트 카드 인증이 구성된 경우 SSSD 서비스는 임시 p11_child 프로세스를 생성하여 스마트 카드를 확인하고 인증서를 검색합니다.
  5. 사용자에 대해 스마트 카드 인증이 구성된 경우 sssd_pam 응답자가 스마트 카드의 인증서와 사용자와 일치하려고 시도합니다. sssd_pam 응답자는 그룹 멤버십이 액세스 제어에 영향을 줄 수 있으므로 사용자가 속한 그룹을 검색합니다.
  6. sssd_pam 응답자는 SSS_PAM_PREAUTH 요청을 sssd_be 백엔드 응답자에게 전송하여 서버가 지원하는 인증 방법(예: 암호 또는 2 단계 인증)을 확인합니다. SSSD 서비스에서 IPA 응답자를 사용하는 IdM 환경에서 기본 인증 방법은 Kerberos입니다. 이 예에서 사용자는 간단한 Kerberos 암호로 인증합니다.
  7. sssd_be 응답자는 임시 krb5_child 프로세스를 생성합니다.
  8. krb5_child 프로세스는 IdM 서버의 KDC에 연결하여 사용 가능한 인증 방법을 확인합니다.
  9. KDC는 요청에 응답합니다.

    1. krb5_child 프로세스는 응답을 평가하고 결과를 sssd_be 백엔드 프로세스로 다시 보냅니다.
    2. sssd_be backend 프로세스는 결과를 수신합니다.
    3. sssd_pam 응답자가 결과를 수신합니다.
    4. pam_sss 모듈은 결과를 수신합니다.
  10. 암호 인증이 사용자에 대해 구성된 경우 pam_sss 모듈은 사용자에게 암호를 묻는 메시지를 표시합니다. 스마트 카드 인증이 구성된 경우 pam_sss 모듈은 사용자에게 스마트 카드 PIN을 요청합니다.
  11. 이 모듈은 다음을 이동하는 사용자 이름과 암호를 사용하여 SSS_PAM_AUTHENTICATE 요청을 보냅니다.

    1. sssd_pam 응답자.
    2. sssd_be 백엔드 프로세스.
  12. sssd_be 프로세스는 KDC에 연결할 임시 krb5_child 프로세스를 생성합니다.
  13. krb5_child 프로세스는 KDC에서 사용자가 제공한 암호와 함께 Kerberos 티켓 부여 티켓(TGT)을 검색하려고 합니다.
  14. krb5_child 프로세스는 인증 시도 결과를 수신합니다.
  15. krb5_child 프로세스는 다음과 같습니다.

    1. TGT를 자격 증명 캐시에 저장합니다.
    2. 인증 결과를 sssd_be 백엔드 프로세스에 반환합니다.
  16. 인증 결과는 sssd_be 프로세스에서 다음으로 이동합니다.

    1. sssd_pam 응답자.
    2. pam_sss 모듈.
  17. pam_sss 모듈은 다른 애플리케이션에서 참조할 수 있도록 사용자 TGT 위치가 있는 환경 변수를 설정합니다.