PAM(Pluggable Authentication Module)

PAM(Pluggable Authentication Module) 프레임워크는 플러그 가능 모듈을 사용하여 기존 시스템으로 여러 인증 메커니즘을 통합할 수 있는 기능을 시스템 관리자에게 제공합니다.

PAM을 사용할 수 있는 애플리케이션은 기존 애플리케이션을 수정하지 않고 새로운 기술에 플러그인할 수 있습니다. 이러한 유연성은 시스템 관리자가 다음을 수행할 수 있도록 합니다.

  • 애플리케이션에 대한 시스템의 인증 서비스 선택
  • 해당 서비스에 여러 인증 메커니즘 사용
  • 기존 애플리케이션을 수정하지 않고 새로운 인증 서비스 모듈 추가
  • 여러 모듈이 있는 인증에 이전에 입력한 비밀번호 사용

PAM 프레임워크는 라이브러리, 플러그 가능 모듈 및 구성 파일로 구성됩니다. PAM 라이브러러리는 PAM API(Application Programming Interface)를 구현하고 PAM 트랜잭션 관리 및 플러그 가능 모듈에 정의되어 있는 PAM SPI(Service Programming Interface) 호출 기능을 수행합니다. 플러그 가능 모듈은 호출 서비스 및 구성 파일의 해당 항목에 따라 라이브러리에 의해 동적으로 로드됩니다. 성공은 플러그 가능 모듈 뿐만 아니라 서비스에 정의된 동작에 의해 판별됩니다. 스태킹 개념을 통해 여러 인증 메소드로 인증하도록 서비스를 구성할 수 있습니다. 지원되는 경우, 추가 입력을 프롬프트하지 않고 이전에 제출된 비밀번호를 사용하도록 모듈을 구성할 수도 있습니다.

시스템 관리자는 /etc/security/login.cfg 파일의 usw 스탠자에서 auth_type 속성을 수정하여 PAM을 사용하도록 AIX® 시스템을 구성할 수 있습니다. auth_type = PAM_AUTH를 설정하면 히스토리 AIX 인증 루틴을 사용하는 대신 인증을 위해 직접 PAM API를 호출하도록 PAM 사용 명령을 구성합니다. 이 구성은 실행시간에 결정되며 적용하기 위해 시스템을 재부트할 필요가 없습니다. auth_type 속성에 대한 자세한 정보는 /etc/security/login.cfg 파일 참조를 참조하십시오. 다음 원래의 AIX 명령과 애플리케이션은 auth_type 속성을 인식하도록 수정되었고 PAM 인증을 위해 사용으로 설정되었습니다.
  • login
  • passwd
  • su
  • ftp
  • telnet
  • rlogin
  • rexec
  • rsh
  • snappd
  • imapd
  • dtaction
  • dtlogin
  • dtsession

다음 그림은 PAM을 사용하도록 구성된 시스템에서 PAM 사용 애플리케이션, PAM 라이브러리, 구성 파일 및 PAM 모듈 간의 상호작용을 보여 줍니다. PAM 사용 애플리케이션은 PAM 라이브러리에서 PAM API를 호출합니다. 라이브러리는 구성 파일의 애플리케이션 항목에 따라 로드할 적절한 모듈을 판별하고 모듈에서 PAM SPI를 호출합니다. PAM 모듈과 애플리케이션 간의 통신은 애플리케이션에서 구현된 대화 기능을 통해 발생합니다. 그런 다음 모듈의 성공 또는 실패 및 구성 파일에 정의된 동작이 다른 모듈의 로드 필요 여부를 판별합니다. 다른 모듈을 로드해야 하는 경우 프로세스가 계속되고 그렇지 않은 경우 결과가 다시 애플리케이션으로 전달됩니다.

그림 1. PAM 프레임워크 및 엔터티. 이 그림에서는 PAM 사용 명령이 PAM 라이브러리를 사용하여 적절한 PAM 모듈을 액세스하는 방법을 보여줍니다.