PAM 시스템 구성 파일
IBM® Verify Gateway for Linux® PAM and AIX® PAM (Pluggable Authentication Modules)을(를) 구성할 때 다음 매개변수를 사용할 수 있습니다.
#%PAM-1.0
auth required pam_sepermit.so
auth substack password-auth
auth include postlogin
...
#
# Authentication
#
authexec auth required pam_aix
dtaction auth required pam_aix
dtsession auth required pam_aix
...module_interface control_flag module_name [module_arguments]모듈 인터페이스
module_interface 유형의 auth만 이 pam_ibm_auth.so 모듈에서 지원됩니다.
모듈 이름
모듈 이름은 pam_ibm_auth.so입니다.
모듈 인수
auth sufficient pam_ibm_auth.so auth_method=choice-then-otp [otp-prompt=Enter OTP %C- ]- 사용자 환경 ={name}
- 다운스트림 PAM 모듈에 대해 " {name} = {user-json} "를 포함하는 PAM 환경 변수를 추가합니다. {user-json} 값은 IBM Verify 사용자 정보가 포함된 JSON 형식의 문자열입니다. 주로 PAM 모듈 개발자가 IBM PAM 모듈과 통합하는 것을 지원하는 데 사용됩니다.
- 프롬프트_선택_시작= {prompt}
- {prompt} 문자열은 2FA 선택사항 목록 바로 앞에 출력됩니다. 예를 들어, {prompt} 에 "다음 중 하나를 선택하십시오. \n" 가 포함된 경우 다음이 표시될 수 있습니다.
Choose one of: 1) user@us.ibm.com 2) 15551234567 3) TOTP Your choice (1->3): - 프롬프트_선택_끝= {prompt}
- {prompt} 문자열은 2FA 선택사항 목록 바로 앞에 출력됩니다. 이 {prompt} 내의 모든 %T 값은 총 선택사항 수를 나타내는 숫자로 바뀝니다. 예를 들어, {prompt} 에 "사용자 선택사항 (1 - > %T):" 이 포함된 경우 다음이 표시될 수 있습니다.
Choose one of: 1) user@us.ibm.com 2) 15551234567 3) TOTP Your choice (1->3): - 프롬프트_트랜스_이메일= {prompt}
- prompt_trans_sms= {prompt}
- prompt_totp= {prompt}
- prompt_email= {prompt}
- prompt_sms= {prompt}
- 프롬프트_음성= {prompt}
- 프롬프트_장치_존재= {prompt}
- 프롬프트_장치_바이오메틱= {prompt}
- 이러한 인수는 각 2FA 유형에 대한 프롬프트 옵션을 사용자 정의합니다. 다음 대체를 적용할 수 있습니다.
- %I 2FA 옵션 색인
- %N 2FA 옵션 이름과 연관된 값 (예: 이메일 주소)
- %T 총 선택사항 수
Choose one of: 1) user@us.ibm.com 2) Unvalidated SMS 15551234567 3) TOTP Your choice (1->3):참고: 이러한 옵션으로 인해 PAM 모듈 인수가 매우 길어지고 관리하기 어려울 수 있습니다. 이러한 많은 모듈 인수를 /etc/pam_ibm_auth.json 파일로 이동하려면 이 파일의 "pam" 오브젝트 아래에 있는 "additional-args" 기능을 참조하십시오. - 장치_프롬프트= {prompt}
- 설정된 경우 2FA 디바이스에서 승인해야 할 때 사용자에 대해 지정된 메시지가 표시됩니다. SSH에서 이를 사용합니다. 몇 가지 제한사항이 있습니다. 일부 SSH 서버는 메시지를 전달하지만 (입력에 대한 프롬프트도 표시하지 않음) 일부는 전달하지 않습니다. 기본적으로 프롬프트가 전송되지 않으며 경보에 대해 사용자의 디바이스에 의존합니다.
- 사용자 이름 속성 ={attr_name}
Verify 사용자에 포함된 속성과 일치하는 것을 기준으로 PAM에 제공된 사용자 이름을 IBM Verify 사용자에 매핑합니다. 예를 들어, 다른 사용자 이름이라는 Verify 사용자 사용자 지정 속성에 PAM 사용자 이름을 추가할 수 있습니다. 해당 사용자 정의 속성은
user_name_attr=urn:ietf:params:scim:schemas:extension:ibm:2.0:User:customAttributes.otherUserName기본적으로 사용자 속성 "userName" 은 PAM 사용자 이름과 일치하는 Verify 사용자를 찾는 데 사용됩니다.
- gecos_match= {regex}
- gecos_replace= {replace_format}
- 이러한 인수는
gecos_field/gecos_separator메소드의 대안으로 사용됩니다. {regex} 는 사용자의 GECOS값을 일치시키는 데 사용되며gecos_replace형식에 제공하기 위한 값을 추출합니다. regex에 대한 세부사항은 regex (7) man page를 참조하십시오.{replace_format}값은 Verify 사용자 이름을 생성하는 데 사용됩니다.{replace_format}에서 N이 1 -> 9인 $N은 {regex} 일치에서 해당 정규식 원자 (pat)로 대체됩니다.예를 들면 다음과 같습니다.[gecos_match=^([^/\]+)/([^/\]+)/([^/\]+)] [gecos_replace=$3/$1@MyRealm]주: PAM [arg] 메소드를 사용할 때 인수에 있는 모든 임베드된] 문자는\를 사용하여 따옴표로 묶어야 합니다.GECOS 필드가
"Test User/+15551234567/ibm.com"인 경우 생성되는 사용자는"ibm.com/Test User@MyRealm"입니다. - debug
- 이 인수는 표준 PAM 모듈 옵션입니다. 시스템 로그 파일에 대한 디버깅 정보를 로깅하려면
syslog()호출을 사용하십시오. - nowarn
- 이 인수는 표준 PAM 모듈 옵션입니다.
nowarn옵션은 비밀번호 만료 경고 등의 경고 생성을 사용 안함으로 설정합니다. - ibm_auth_config={config-file}
- 지정되지 않은 경우, 기본값은 입니다 Linux/etc/pam_ibm_auth.json . 이 파일에는 Verify 서버 연결 세부사항이 있는 IBM Auth API 구성이 포함되어 있습니다. 모듈 구성 파일을 참조하십시오.
- auth_method={auth_method}
- 이 인수는 선택사항이며 기본적으로 TOTP 유효성 검증으로 설정됩니다. 이 인수는 사용자를 인증하는 데 필요한 인증 메소드입니다. 다음 인증 메소드 목록에는 먼저 비밀번호를 승인하는 일부 메소드가 있습니다. 이러한 방법의 비밀번호는 UNIX 비밀번호가 아니라 Verify 사용자 비밀번호를 참조합니다.참고: 이전에 시작된 PAM 모듈 (예: pam_unix.so) 에 비밀번호가 제공된 경우, 해당 비밀번호는 비밀번호와 관련된 Verify
auth methods에서 사용됩니다. 이전에 제공한 비밀번호와 Verify 비밀번호가 일치하지 않으면 인증에 실패합니다. 이 문제는 알려진 제한사항입니다.표 1. 허용 가능한 값 값 설명 비밀번호 올바른 Verify 비밀번호가 필요합니다. password-and-totp Verify 비밀번호와 TOTP값을 하나의 값으로 제공해야 합니다. 이 값에서 비밀번호가 먼저인지 또는 TOTP 값이 먼저인지를 구성할 수 있고 두 값을 분리하는 데 사용되는 문자를 구성할 수 있습니다. 기본적으로 형식은 TOTP:password입니다.password-then-totp Verify 비밀번호를 제공해야 하며, 성공적으로 제공되면 TOTP값을 요청하고 유효성을 검증합니다. totp TOTP 값이 요청되고 유효성 검증됩니다. password-then-smsotp Verify 비밀번호를 제공해야 하며, 성공적으로 제공된 경우 사용자의 등록된 모바일 디바이스에 OTP값과 함께 SMS 메시지가 전송됩니다. 그런 다음 PAM 모듈은 사용자에게 SMSOTP 값을 요청하고 이를 유효성 검증합니다. smsotp SMS OTP 유효성 검증이 시작되고, SMS OTP 값이 요청되고 유효성 검증됩니다. password-then-emailotp Verify 비밀번호를 제공해야 하며, 성공적으로 제공된 경우 OTP값이 있는 이메일 메시지가 사용자에게 전송됩니다. PAM 모듈이 EmailOTP 값을 요청하고 이를 유효성 검증합니다. emailotp 이메일 OTP 유효성 검증이 시작되고, PAM 모듈이 이메일 OTP 값을 요청하고 이를 유효성 검증합니다. password-then-choice-then-otp Verify 비밀번호를 제공해야 하며, 성공적으로 제공된 경우 사용자에게 OTP 등록 중 하나를 선택하도록 요청합니다. 이를 선택하면 OTP 유효성 검증이 시작되고 사용자에게 OTP 값을 지정하라는 프롬프트가 표시됩니다. 참고:- 사용자가 하나의 OTP 메소드만 등록하는 경우 선택 단계를 건너뛰고 사용자에게 직접 OTP 값을 요청합니다.
- 사용자에게 OTP 등록 항목이 없는 경우에는
"reject-on-missing-auth-method"가 적용됩니다. "add_devices_to_choice"옵션을 사용하면 디바이스 옵션이 목록에 추가됩니다. 추가된 항목에 대한 세부사항은 디바이스 인증 메소드를 참조하십시오."transients_in_choice"옵션을 사용하면 임시 이메일과 sms 소스가 옵션으로 나열됩니다."voice_in_choice"옵션이 사용 가능하면 음성 OTP가 옵션으로 나열됩니다.
choice-then-otp 사용자에게 OTP 등록 중 하나를 선택하도록 요청합니다. 이를 선택하면 OTP 유효성 검증이 시작되고 사용자에게 OTP 값을 지정하라는 프롬프트가 표시됩니다. 참고:- 사용자가 하나의 OTP 메소드만 등록하는 경우 선택 단계를 건너뛰고 사용자에게 직접 OTP 값 또는 디바이스 검증을 요청합니다.
- 사용자에게 OTP 등록 항목이 없는 경우에는
reject-on-missing-auth-method가 적용됩니다. "add_devices_to_choice"옵션을 사용하면 디바이스 옵션이 목록에 추가됩니다. 추가된 항목에 대한 세부사항은 디바이스 인증 메소드를 참조하십시오."transients_in_choice"옵션을 사용하면 임시 이메일과 sms 소스가 옵션으로 나열됩니다."voice_in_choice"옵션이 사용 가능하면 음성 OTP가 옵션으로 나열됩니다.
password-then-device Verify 비밀번호를 제공해야 하며, 성공적으로 제공된 경우 사용자는 전화에서 IBM Verify 앱을 사용하여 자신의 유효성을 검증해야 합니다. 디바이스 사용자에게 휴대전화에서 IBM Verify App을 사용하여 자체적으로 유효성 검증하도록 요청합니다. 사용 가능한 디바이스가 여러 개인 경우 사용자에게 선택하라는 프롬프트가 표시됩니다. 참고:"add_devices_to_choice="옵션은fingerprint또는userPresence를 사용할지 여부를 판별합니다. 특정한 디바이스에는 두 속성 중 하나만 사용할 수 있습니다.password-then-transsmsotp Verify 비밀번호를 제공해야 하며, 성공적으로 제공된 경우 사용자에게 SMS로 전송된 OTP를 휴대전화에 제공하도록 요청합니다. 전화번호는 해당 사용자 레코드에 설정된 전화번호 중 하나입니다. transsmsotp 사용자에게 SMS로 보낸 OTP를 휴대전화에 제공하도록 요청합니다. 전화번호는 해당 사용자 레코드에 설정된 전화번호 중 하나입니다. password-then-transemailotp Verify 비밀번호를 제공해야 하며, 성공적으로 제공된 경우 사용자에게 이메일로 발송된 OTP를 제공하도록 요청합니다. 이메일 주소는 해당 사용자 레코드에 설정된 이메일 주소입니다. transemailotp 사용자에게 이메일로 보낸 OTP를 제공하도록 요청합니다. 이메일 주소는 해당 사용자 레코드에 설정된 이메일 주소입니다. voiceotp 사용자의 전화기로 전화가 걸려오고 음성 메시지가 로그인의 유효성을 검증하기 위해 사용해야 하는 OTP 값을 사용자에게 알려줍니다. 비밀번호-다음-음성오티프 IBM Verify 비밀번호를 입력해야 합니다. 성공적으로 제공되면 사용자의 전화에 대한 호출이 작성되고 사용자에게 로그인을 유효성 검증하는 데 사용되는 OTP값을 알리는 음성 메시지가 표시됩니다. 비밀번호-및-TOTP-또는 장치 사용자가 제공한 비밀번호에서 TOTP 값이 감지되면 ' password-and-totp' 방식과 동일한 방식이 사용됩니다. 자세한 내용은 password-and-totp를 참조하세요.사용자가 제공한 비밀번호에서 TOTP 값이 감지되지 않으면 '
password-and-device' 방식과 동일한 방식이 사용됩니다. 자세한 내용은 비밀번호-다음 디바이스를 참조하세요.참고: 사용자의 실제 비밀번호가 6자리 숫자와 구분 기호로 시작하거나 끝나는 경우, RADIUS 서버에서 내장된 TOTP 값으로 오인할 수 있습니다. 예를 들어 'password-first' 옵션이 false로 설정되어 있고 비밀번호가 6자리 숫자와 구분 기호로 시작되는 경우입니다. 마찬가지로 true로 설정하고 비밀번호가 구분 기호 및 6자리로 끝나는 경우에도 동일한 조건이 발생합니다. 두 경우 모두 디바이스 푸시는 RADIUS 인증의 두 번째 요소로 사용할 수 없습니다. RADIUS 서버는 이를 TOTP 값으로 해석하고 유효성 검사를 시도합니다. 유효성 검사에 실패하고 인증이 거부됩니다."password"가 auth-method 값의 일부가 아닌 경우(예:"device") 표준 UNIX/Linux PAM 모듈 앞에 libpam_ibm_auth.so 모듈을 접두어로 붙여 두 가지 요인을 형성하기 위해 로컬 비밀번호를 인증할 수 있습니다. 비밀번호가 없는 인증의 경우 이를 제외할 수도 있습니다. - accept_on_missing_auth_method
- 이 인수는 선택사항입니다. 이를 설정하고 사용자가 2단계 인증(FA)에 등록되지 않은 경우에는 사용자가 인증됩니다. 이 옵션을 설정하지 않고 사용자가 2단계 인증(FA)에 등록되지 않은 경우에는 사용자가 인증되지 않습니다.
- otp_prompt={promt_str}
- 이 인수는 선택사항이 기본적으로 영어 문자열
"Enter OTP %C- "로 설정됩니다. 사용자에게 OTP 입력을 요청할 때 이 문자가 표시됩니다. 프롬프트의%C는 OTP 상관, 또는 TOTP를 위한 빈 문자열로 대체됩니다. 프롬프트의%%는 하나의%로 대체됩니다. - password_first
- 이 인수는 선택사항입니다. 이는
"password-and-totp"auth-method에만 영향을 주며, 사용자가 제공해야 하는 문자열의 비밀번호 및 TOTP 값의 순서를 판별합니다. 일반적으로 비밀번호는 구분 기호 문자totp:password뒤에 있는 문자열의 맨 끝에서 제공됩니다. 이 인수를 설정하면 비밀번호를 구분 기호 문자password:totp앞에 있는 문자열의 맨 앞에 제공해야 합니다. - password_separator={sep_char}
- 이 인수는 선택사항이며 기본적으로 비밀번호 구분 기호 :(콜론)으로 설정됩니다. 이는
"password-and-totp"auth-method에만 영향을 주며, TOTP 및 비밀번호 값의 분리를 위해 사용자가 사용해야 하는 문자를 지정합니다. - verify_method_order={order}
- 이 인수는 선택사항이며 기본적으로
"fingerprint,userPresence"로 설정됩니다. 이 옵션은 두 개 중 우선순위가 높은 항목을 선택합니다. 기본 순서는 fingerprint를 우선합니다(있는 경우).주: "add_devices_to_choice" 가 사용 가능한 경우,"device"auth_method 옵션은fingerprint또는userPresence메소드 중 하나만 사용합니다. - verify_message={message}
- 이 인수는 선택적이며 기본값은 다음과 같습니다."Do you approve the request from
{hostname}?"여기서,
{hostname}은 PAM 모듈이 실행되고 있는 호스트 이름으로 대체됩니다."device"auth_method가 사용되면 액세스 확인을 위해 사용자에게 프롬프트가 제시될 때 사용자의 디바이스에 이 메시지가 표시됩니다. - append={string}
- 이 인수는 선택사항이며 기본적으로
""로 설정됩니다. UNIX 사용자 이름을 Verify 사용자 이름에 맵핑하는 프로세스 끝에 이 문자열이 결과 Verify 사용자 이름에 추가됩니다. 일반적인 유스 케이스는 Verify 사용자 도메인을 사용자에게 추가하는 것입니다 (예: w3id 사용자 도메인의 경우 "@www.ibm.com"). - add_devices_to_choice
- 이 인수는 선택사항이며 기본적으로
"choice-then-otp"및"password-then-choice-then-otp"인증 메소드에 사용자의 디바이스 등록을 추가하지 않는 것으로 설정됩니다. 이 인수를 설정하면 디바이스 등록이 2FA의 선택사항 목록에 추가됩니다. - exempt_group={unix_group_name}
- 이 값은 선택사항이며 기본적으로
exempt_group없음으로 설정됩니다. 이 인수가 설정되면 지정된 UNIX 그룹을 사용하여 UNIX 사용자 로그인이 2FA 인증에서 면제되는지 여부를 판별합니다. UNIX 사용자가 그룹에 있는 경우 인증이 면제되고 2FA에 대한 요청을 받지 않습니다. - 2fa_group={unix_group_name}
- 이 값은 선택사항입니다. 이 옵션을 설정하면 지정된 UNIX 그룹을 사용하여 UNIX 사용자 로그인에 2FA 필요한지 여부를 결정합니다. 이 옵션이 설정되어 있고 UNIX 사용자가 그룹에 속하지 않은 경우 사용자에게 2FA 입력하라는 메시지가 표시되지 않습니다.
- retry={num_retries}
- 이 인수는 선택사항이며 기본값은 3입니다. 올바르지 않은 2FA 값(예: 잘못된 TOTP 값)을 제공하는 경우 사용자의 재시도 횟수를 정의합니다. 또한 선택 단계 중에 사용할 OTP 유형을 선택하는 재시도 횟수도 정의합니다.
- failmode_insecure
- 이 값은 선택사항이며 기본적으로 안전한
failmode로 설정됩니다. 이 인수는 Verify PAM 모듈이 Verify 서버에 연결할 수 없을 때의 동작에 영향을 줍니다. 이 인수가 설정되면 Verify 서버에 연결할 수 없을 때 2FA 인증이 성공합니다. 옵션이 제공되지 않으면 Verify 서버에 연결할 수 없는 경우 2FA 가 필요한 모든 인증이 실패합니다. - gecos_field={field_number}
- 이 인수는 선택사항이며 기본적으로 사용자의 GECOS 필드를 사용하지 않도록 설정됩니다. 1-32범위의 값으로 설정하면 UNIX 사용자가 지정한 GECOS 필드가 Verify 사용자 이름으로 사용됩니다. append 옵션은 여전히 이 값에 영향을 줍니다. 첫 번째 GECOS 필드는 필드 번호 1로 정의됩니다.
- gecos_separator={char}
- 이 인수는 선택사항이며 기본적으로 ,(쉼표)로 설정됩니다. 이 값은 GECOS 필드 구분 문자를 정의합니다.
- id={pam_module_id}
- 이 인수는 선택사항이며 기본적으로
"pam_ibm_auth"로 설정됩니다. 사용자를 인증하도록 구성된 PAM 모듈 세트에서 Verify PAM 모듈이 두 번 이상 발생하는 경우 각 인스턴스에 고유 ID를 지정해야 합니다. 그렇지 않으면, 모듈이 서로 방해할 수 있습니다. - identity_source={id}
- 이 인수는 선택사항이며 기본적으로 클라우드 디렉토리 ID 소스를 사용하도록 설정됩니다. 이 인수를 설정하면 사용자를 인증하는 데 사용하는 ID 소스를 지정합니다. 사용자가 구성된 LDAP 패스스루 ID 소스에 대해 인증됩니다. 구성된 ID 소스 및 해당 ID의 콜렉션을 https://<tenant>/verify/v1.0/authnmethods/password에 대한
GET요청에서 검색할 수 있습니다. - ignore_isvalidated
- 이 값은 선택사항이며 기본적으로
false로 설정됩니다.true로 설정되면 유효성 검증되지 않는 경우에도 PAM 모듈이 관련 2FA 메소드의 사용을 시도합니다. - transients_in_choice
- 이 인수는 OTP 인증에 사용된 메소드의 목록에 임시 이메일과 전화번호를 추가합니다.
- voice_in_choice
- 이 인수는 OTP로 인증하는 데 사용되는 메소드 목록에 음성 OTP를 추가합니다.
- transient_choices={choices}
- 이 인수는 사용 가능한 임시 메소드와 선택사항을 나열합니다. 인수의 값은
하나 이상의
"emails"및"phoneNumbers"여야 합니다. 각 선택사항은 ,(쉼표)로 분리되어야 합니다. - poll_timeout={seconds}
- 이 인수는 사용자가 해당 디바이스로부터 로그인을 유효성 검증하기 위해 기다리는 시간을 지정합니다. 이 시간이 초과되면 로그인에 대한 제한시간 초과와 실패가 발생합니다.
- no_enrollments_in_choice
이 인수는 선택사항에 SMS, 이메일 또는 TOTP 등록을 추가하지 않음을 지정합니다. 선택사항을 사용할 수 있도록 하려면
transients_in_choice또는add_devices_to_choice나 둘 다를 구성해야 합니다.- ID 링크 속성 ={attr_name}
- 테넌트에 여러 ID 소스가 정의되어 있고 ID 링크를 사용 중인 경우, 이 구성 항목은 비밀번호의 유효성을 검증할 사용자 이름을 식별하는 "user_name_attr" 로 찾은 사용자의 속성 이름을 정의합니다. 예제 {attr_name} 값:
auth_methods 선택사항에 제공된 2FA 메소드 정의
선택사항 auth_methods에 표시된 2단계인증 유형을 사용 또는 사용 안함으로 설정하는 방법입니다.
| 2FA 유형 | 기본값 | 사용 가능/사용 불가능 옵션 | 설명 |
|---|---|---|---|
| 토프 SMSOTP 이메일OTP | 사용 | no_enrollments_in_choice | 시간, SMS및 일회성 비밀번호를 기반으로 하는 이메일이 기본적으로 포함되며 이를 표시하지 않으려면 명시적으로 사용 안함으로 설정해야 합니다. |
| 디바이스 | 사용 안함 | add_devices_to_choice | 디바이스 푸시 (생체 인식 (지문) 및 존재 (디바이스 앱에 대한 액세스)) 는 기본적으로 선택사항으로 사용 안함으로 설정되며 필요한 경우 명시적으로 사용으로 설정되어야 합니다. verify_method_order 옵션은 우선순위와 사용되는 우선순위를 결정합니다. |
| transsmsotp 트랜잭션 세마포어 | 사용 안함 | transients_in_choice | 임시 (휴대전화 및 이메일에 대해 확인되지 않은 사용자 계정 값) 는 기본적으로 사용 안함으로 설정되며 필요한 경우 명시적으로 사용으로 설정해야 합니다. transient_choices= 옵션은 사용되는 smsotp 및/또는 emailotp를 판별합니다. |
| voiceotp | 사용 안함 | voice_in_choice | 음성 콜백 기반 일회성 비밀번호는 기본적으로 사용 안함으로 설정되며 필요한 경우 명시적으로 사용으로 설정해야 합니다. 이 메소드를 사용하려면 사용자가 명시적으로 이 메소드에 등록해야 합니다. |