Oracle® Solaris 11.2의 Kerberos 및 기타 인증 서비스 관리

인쇄 보기 종료

업데이트 날짜: 2014년 8월
 
 

PAM 스택

구성 파일에 모듈이 하나만 포함된 경우 해당 모듈의 결과가 작업의 결과를 결정합니다. 예를 들어, passwd 응용 프로그램에 대한 기본 인증 작업에는 /etc/pam.d/passwd 파일에 하나의 모듈(pam_passwd_auth.so.1)이 포함됩니다.

auth required           pam_passwd_auth.so.1

반면 서비스를 구현하는 모듈이 여러 개인 경우 해당 모듈을 스택이라 합니다. 즉, PAM 스택이 해당 서비스 이름에 대해 존재합니다. 예를 들어, /etc/pam.d/login 샘플 서비스에 있는 항목을 생각해 보십시오.

auth definitive         pam_user_policy.so.1
auth requisite          pam_authtok_get.so.1
auth required           pam_unix_auth.so.1
auth required           pam_dhkeys.so.1
auth required           pam_unix_cred.so.1
auth required           pam_dial_auth.so.1

이러한 항목은 login 서비스 이름에 대한 auth 스택을 만듭니다. 이 스택의 결과를 결정하려면 개별 모듈의 결과 코드에 통합 프로세스가 필요합니다.

통합 프로세스에서 모듈은 파일에 나오는 순서대로 실행됩니다. 각 성공 또는 실패 코드는 모듈의 제어 플래그에 따라 전체 결과에 통합됩니다. 제어 플래그는 스택의 조기 종료를 유발할 수 있습니다. 예를 들어, requisite 또는 definitive 모듈이 실패하면 스택이 종료됩니다. 이전 실패한 없는 경우 sufficient, definitive 또는 binding 모듈이 성공하면 스택이 종료됩니다. 스택이 처리된 후 개별 결과는 하나의 전체 결과로 합쳐서 응용 프로그램에 전달됩니다. 플로우를 그림으로 보려면 Figure 1–2Figure 1–3을 참조하십시오.

    제어 플래그는 PAM 모듈이 성공 또는 실패를 결정하는 데 수행하는 역할을 나타냅니다. 제어 플래그 및 효과는 다음과 같습니다.

  • Binding – 기록된 이전 실패가 없는 경우 binding 모듈의 요구 사항 충족에 성공하면 응용 프로그램에 즉시 성공을 반환합니다. 이러한 조건이 충족되지 않는다면 모듈은 더 이상 실행되지 않습니다.

    실패의 경우 required 실패가 기록되고 모듈 처리가 계속됩니다.

  • Definitive – 기록된 이전 실패가 없는 경우 definitive 모듈의 요구 사항 충족에 성공하면 응용 프로그램에 즉시 성공을 반환합니다.

    이전 실패가 기록된 경우 모듈이 추가로 실행되지 않고 해당 실패가 응용 프로그램에 즉시 반환됩니다. 실패의 경우 모듈의 추가 실행 없이 즉시 오류가 반환됩니다.

  • Include – PAM 스택의 이 시점에서 사용될 별도의 PAM 구성 파일에서 행을 추가합니다. 이 플래그는 성공이나 실패 동작을 제어하지 않습니다. 새 파일이 읽혀지면 PAM include 스택이 증가됩니다. 새 파일에서 스택 확인이 완료되면 include 스택 값이 감소합니다. 파일의 끝에 도달하고 PAM include 스택이 0이면 스택 처리가 종료됩니다. PAM include 스택에 대한 최대 수는 32입니다.

  • Optional – optional 모듈의 요구 사항을 충족하는 성공은 서비스를 사용하는 데 필요하지 않습니다.

    실패의 경우 optional 실패가 기록됩니다.

  • Required – reauired 모듈의 요구 사항을 충족하는 성공은 스택이 성공하는 데 필요합니다. 스택에 대한 최종 성공은 실패를 보고한 binding 또는 required 모듈이 없을 경우에만 반환됩니다.

    실패의 경우 이 서비스에 대한 나머지 모듈이 실행된 후 오류가 반환됩니다.

  • Requisite – requisite 모듈의 요구 사항을 충족하는 성공은 스택이 성공하는 데 필요합니다. 스택이 응용 프로그램에 성공을 반환할 수 있으려면 스택의 모든 requisite 모듈이 성공을 반환해야 합니다.

    실패의 경우 모듈의 추가 실행 없이 즉시 오류가 반환됩니다.

  • Sufficient – 기록된 이전 required 실패가 없는 경우 sufficient 모듈의 성공은 모듈의 추가 실행 없이 응용 프로그램에 즉시 성공을 반환합니다.

    실패의 경우 optional 실패가 기록됩니다.

    다음 두 연결된 다이어그램은 통합 프로세스에서 결과가 어떻게 결정되는지 보여 줍니다.

  • 첫번째 다이어그램은 제어 플래그의 각 유형에 대해 성공 또는 실패가 어떻게 기록되는지 보여 줍니다. 두번째 다이어그램은 결과를 보여 줍니다.

  • 두번째 다이어그램은 통합된 값이 어떻게 결정되는지 보여줍니다. Optional 실패 및 required 실패는 실패를 반환하고 성공은 성공을 반환합니다. 이러한 반환 코드를 처리하는 방법은 응용 프로그램이 결정합니다.

그림 1-2  PAM 스택: 제어 플래그의 효과

image:플로우 다이어그램은 제어 플래그가 PAM 스택에 어떤 영향을 미치는지 보여줍니다.

그림 1-3  PAM 스택: 통합된 값이 결정되는 방식

image:플로우 다이어그램은 통합된 값이 PAM 스택에서 어떻게 결정되는지 보여줍니다.