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]モジュール・インターフェース
この pam_ibm_auth.so モジュールでは、`module_interface` 型の auth データのみがサポートされています。
モジュール名
モジュール名は pam_ibm_auth.so です。
モジュール引数
auth sufficient pam_ibm_auth.so auth_method=choice-then-otp [otp-prompt=Enter OTP %C- ]- user_env= {name}
- 下流のPAMモジュール用に、「 {name} = {user-json} 」を含むPAM環境変数を追加してください。 {user-json} の値は、JSON 形式のユーザー情報を IBM Verify 含む文字列です。 主に、PAMモジュール開発者が IBM のPAMモジュールと統合するのを支援するために使用されます。
- prompt_choice_start= {prompt}
- 「 {prompt} 」という文字列は、「 2FA 」の選択肢のリストの直前に出力されます。 たとえば、 {prompt} に「次のいずれかを選択してください:\n」が含まれている場合、次のような表示になる可能性があります:
Choose one of: 1) user@us.ibm.com 2) 15551234567 3) TOTP Your choice (1->3): - prompt_choice_end= {prompt}
- 「 {prompt} 」という文字列は、「 2FA 」の選択肢のリストの直前に出力されます。 この {prompt} 内の%Tという値はすべて、選択肢の総数を表す数値に置き換えられます。 たとえば、 {prompt} に「Your choice (1->%T):」が含まれている場合、次のような表示になる可能性があります:
Choose one of: 1) user@us.ibm.com 2) 15551234567 3) TOTP Your choice (1->3): - prompt_trans_email= {prompt}
- prompt_trans_sms= {prompt}
- prompt_totp= {prompt}
- prompt_email= {prompt}
- prompt_sms= {prompt}
- prompt_voice= {prompt}
- prompt_device_presence= {prompt}
- prompt_device_biometric= {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」機能をご覧ください。 - device_prompt= {prompt}
- この設定を有効にすると、 2FA 端末でユーザーが承認を行う必要がある際に、指定されたメッセージが表示されます。 SSHとの併用について。 いくつかの制限があります。 SSHサーバーによっては、メッセージを表示するだけで(入力のプロンプトは表示せず)、そうでないものもあります。 デフォルトでは、プロンプトは送信されず、アラートはユーザーの端末に依存します。
- user_name_attr= {attr_name}
PAMに指定されたユーザー名を、その Verify ユーザーに含まれる属性との照合に基づいて、特定の IBM Verify ユーザーに紐付けます。 たとえば、PAMユーザー名を「other Username」というユーザーカスタム属性 Verify に追加することができます。 そのカスタム属性は、以下を指定します
user_name_attr=urn:ietf:params:scim:schemas:extension:ibm:2.0:User:customAttributes.otherUserNameデフォルトでは、PAMユーザー名に一致するユーザーを Verify 特定するために、ユーザー属性 "userName" が使用されます。
- gecos_match= {regex}
- gecos_replace= {replace_format}
- これらの引数は、`method
gecos_field/gecos_separator` の代替として使用されます。 {regex} は、ユーザーのGECOS値と照合するために使用され、その値を抽出してフォーマットgecos_replaceに提供します。 正規表現の詳細については、regex(7) のマニュアルページを参照してください。この
{replace_format}値は、ユーザー名を Verify 生成するために使用されます。 任意の $N(N は 1 から 9 まで)は{replace_format}、 {regex} のマッチから得られた対応する正規表現アトム(pat)に置き換えられます。例えば、以下のとおりです。[gecos_match=^([^/\]+)/([^/\]+)/([^/\]+)] [gecos_replace=$3/$1@MyRealm]注: PAM [arg] メソッドを使用する場合、arg に含まれる ] 文字は \ でエスケープする必要があります。GECOSフィールドが だった
"Test User/+15551234567/ibm.com"場合、生成されるユーザーは"ibm.com/Test User@MyRealm" - debug
- この引数は標準 PAM モジュール・オプションです。
syslog()呼び出しを使用して、デバッグ情報をシステム・ログ・ファイルに記録します。 - nowarn
- この引数は標準 PAM モジュール・オプションです。
nowarnオプションにより、パスワード有効期限の警告を含む警告の生成が無効になります。 - ibm_auth_config={config-file}
- 指定がない場合、 Linux およびUNIX™システムではデフォルト値が適用されます /etc/pam_ibm_auth.json 。 このファイルには、サーバー接続情報を Verify 含む IBM 認証APIの設定が含まれています。 「モジュール設定ファイル」を参照してください。
- auth_method={auth_method}
- この引数はオプションであり、デフォルトは TOTP 検証です。 この引数は、ユーザーを認証するために必要な認証の方式を指定します。 以下の認証方式のリストには、最初にパスワードを受け入れる方式がいくつか含まれます。 ここでいう「パスワード」とは、UNIXのパスワードではなく、ユーザーのパスワード Verify を指します。pam_unix.so注: 以前に起動されたPAMモジュール(例:)に対してパスワードが指定されていた場合、そのパスワードは、パスワードを必要とする
auth methodsあらゆる Verify 処理で使用されます。 以前に登録されたパスワードと現在のパスワードが Verify 一致しない場合、認証は失敗します。 この問題は既知の制限です。表 1. 許容値 値 説明 パスワード 有効 Verify なパスワードが必要です。 password-and-totp パスワード Verify とTOTP値を1つの値として入力する必要があります。 パスワードと TOTP 値のどちらを値の先頭に指定するかと、2 つの値の区切りとして使用する記号を構成できます。 デフォルトの形式は、 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 E メールによる OTP 検証が開始されて、PAM モジュールが E メール OTP 値を要求して、検証します。 password-then-choice-then-otp パスワードの入 Verify 力が必須であり、正しく入力されると、ユーザーは登録済みのワンタイムパスワード(OTP)の中から1つを選択するよう求められます。 選択すると、OTP 検証が開始され、ユーザーに OTP 値の入力を求めるプロンプトが出されます。 注:- ユーザーの登録済み OTP 方式が 1 つしかない場合、選択ステップはスキップされ、ユーザーはその OTP 値をすぐに要求されます。
- ユーザーが OTP 登録を行っていない場合は、
"reject-on-missing-auth-method"が有効になります。 - オプションの
"add_devices_to_choice"が有効である場合は、デバイスのオプションがリストに追加されます。 追加内容の詳細については、device 認証方式を参照してください。 - オプションの
"transients_in_choice"が有効である場合は、一時的な E メールおよび sms のソースがオプションとしてリストされます。 - オプションの
"voice_in_choice"が有効である場合は、音声 OTP がオプションとしてリストされます。
choice-then-otp ユーザーは OTP 登録の 1 つを選択するように求められます。 選択すると、OTP 検証が開始され、ユーザーに OTP 値の入力を求めるプロンプトが出されます。 注:- ユーザーの登録済み OTP 方式が 1 つしかない場合、選択ステップはスキップされ、ユーザーはその OTP 値またはデバイス検証をすぐに要求されます。
- ユーザーが OTP 登録を行っていない場合は、
reject-on-missing-auth-methodが有効になります。 - オプションの
"add_devices_to_choice"が有効である場合は、デバイスのオプションがリストに追加されます。 追加内容の詳細については、device 認証方式を参照してください。 - オプションの
"transients_in_choice"が有効である場合は、一時的な E メールおよび sms のソースがオプションとしてリストされます。 - オプションの
"voice_in_choice"が有効である場合は、音声 OTP がオプションとしてリストされます。
password-then-device パスワードの入力が Verify 必須であり、正しく入力されると、ユーザーはスマートフォン上の「 IBM Verify 」アプリを使用して本人確認を行うよう求められます。 装置 ユーザーは電話で IBM Verify アプリを使用して自身を検証することを求められます。 複数のデバイスが使用可能な場合は、ユーザーに選択を求めるプロンプトが出されます。 userPresence"add_devices_to_choice="注: このオプションは、 を使用fingerprintするか、 を使用するかを決定します。 特定のデバイスに使用できるのは、この 2 つの属性のいずれかのみです。password-then-transsmsotp パスワードの入力が Verify 必須であり、正しく入力されると、ユーザーは携帯電話にSMSで送信されたOTPの入力を求められます。 電話番号は、ユーザー・レコードに設定されている番号です。 transsmsotp ユーザーは SMS によって携帯電話に送信された OTP を指定するように求められます。 電話番号は、ユーザー・レコードに設定されている番号です。 password-then-transemailotp パスワードの入 Verify 力が必須であり、正しく入力されると、ユーザーにはメールで送信されたOTPの入力が求められます。 E メール・アドレスは、ユーザー・レコードに設定されているアドレスです。 transemailotp ユーザーは E メールで自分に送信された OTP を指定するように求められます。 E メール・アドレスは、ユーザー・レコードに設定されているアドレスです。 voiceotp ユーザーの電話に対して呼び出しが行われ、音声メッセージによって、ログインの検証に使用する必要がある OTP 値がユーザーに通知されます。 パスワード入力後、音声OTP IBM Verify パスワードを入力してください。 正常に提供されると、ユーザーの携帯電話に電話がかかり、音声メッセージでログインの認証に使用するワンタイムパスワード(OTP)が通知されます。 パスワードとTOTPまたはデバイス ユーザーが指定したパスワードにTOTP値が含まれていることが検出された場合、`method password-and-totp` と同等の処理が実行されます。 詳細については、 password-and-totp を参照してください。ユーザーが指定したパスワードにTOTP値が含まれていない場合、`method
password-and-device` と同等の処理が実行されます。 詳細については、 「password-then-device」 を参照してください。注: ユーザーの実際のパスワードが6桁の数字と区切り文字で始まったり終わったりする場合、RADIUSサーバーによって埋め込まれたTOTP値と誤認される可能性があります。 たとえば、オプションがpassword-firstfalse に設定されており、パスワードは 6 桁の数字と区切り文字で始まります。 同様に、この設定を true に設定し、パスワードが区切り文字と6桁の数字で終わっている場合も、同様の条件が適用されます。 いずれの場合も、デバイスのプッシュ通知をRADIUS認証の第二要素として使用することはできません。 RADIUSサーバーはこれをTOTP値として解釈し、その有効性を確認しようとします。 検証に失敗し、認証が拒否されました。"password"が認証方式値の一部でない場合 (例えば、"device")、ローカル・パスワードを認証して 2 要素を行うために libpam_ibm_auth.so モジュールは標準 UNIX/Linux PAM モジュールを前に付けることができます。 また、これはパスワードなしの認証の場合は除外することもできます。 - accept_on_missing_auth_method
- この引数はオプションです。 設定すると、ユーザーが第 2 要素認証に登録されていない場合、そのユーザーは認証されます。 このオプションを設定せず、ユーザーが第 2 要素認証に登録されていない場合、そのユーザーは認証されません。
- otp_prompt={promt_str}
- この引数はオプションであり、デフォルトは英語のストリング
"Enter OTP %C- "です。 このストリングは、ユーザーが OTP の入力を要求されるときに表示されます。 プロンプトの%Cは OTP 相関 (TOTP の場合は空ストリング) に置換されます。 プロンプトの%%は 1 個の%に置換されます。 - password_first
- この引数はオプションです。
"password-and-totp"認証方式にのみ影響し、ユーザーが指定する必要があるストリング内のパスワードと TOTP 値の順序がこの引数で決まります。 通常、パスワードは、ストリングの末尾の区切り記号の後に指定されます (totp:password)。 引数が設定される場合は、パスワードはストリングの先頭の区切り記号の前に指定する必要があります (password:totp)。 - password_separator={sep_char}
- この引数はオプションであり、デフォルトはパスワード区切り記号の : (コロン) です。
"password-and-totp"認証方式にのみ影響し、TOTP とパスワードの値を区切るために必ず使用する文字を指定します。 - verify_method_order={order}
- この引数はオプションであり、デフォルトは
"fingerprint,userPresence"です。 このオプションで、2 つのどちらが優先されるかを選択します。 デフォルトの順序は、指紋を優先します (存在する場合)。userPresence注: 「add_devices_to_choice」が有効になっている場合、auth_method オプションでは"device"、またはのいずれfingerprintか一方のみが使用されます。 - verify_message={message}
- この引数はオプションであり、デフォルト値は"Do you approve the request from
{hostname}?"ここで、
{hostname}は、PAM モジュールが動作しているホスト名に置き換えられます。"device"auth_method が使用されている場合、ユーザーにアクセスを検証するようにプロンプトが出される際、ユーザーのデバイスにこのメッセージが表示されます。 - append={string}
- この引数はオプションであり、デフォルトは
""です。 UNIXユーザー名をユーザー Verify 名に変換する処理の最後に、この文字列が結果 Verify のユーザー名に追加されます。 典型的な使用例として、ユーザーにユーザ Verify ードメインを追加することが挙げられます。例えば、@www.ibm.com"w3id というユーザードメインの場合です。 - 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です。 この引数は、PAMモジュール Verify がサーバー Verify に接続できない場合の動作に影響します。 この引数が設定されている場合、サーバーに Verify 接続できないときでも、 2FA による認証は成功します。 このオプションが設定されていない場合、 2FA を必要とするすべての認証は、サーバーに Verify 接続できないと失敗します。 - gecos_field={field_number}
- この引数はオプションであり、デフォルトではユーザーの GECOS フィールドを使用しません。 1 から 32 の範囲の値に設定すると、UNIX ユーザーから指定された GECOS フィールドがユーザー名 Verify として使用されます。 付加オプションは、この値に依然として影響を及ぼします。 最初の GECOS フィールドが、フィールド番号 1 として定義されます。
- gecos_separator={char}
- この引数はオプションであり、デフォルトは , (コンマ) です。 この値は GECOS フィールド分離文字を定義します。
- id={pam_module_id}
- この引数はオプションであり、デフォルトは
"pam_ibm_auth"です。 ユーザーの認証を行うように設定されたPAMモジュールのセット内に、同じPAMモジュール Verify が複数存在する場合、それぞれのインスタンスに一意のIDを割り当てる必要があります。 付与しないと、それらのモジュールが相互干渉する可能性があります。 - identity_source={id}
- この引数はオプションであり、デフォルトではクラウド・ディレクトリー ID ソースを使用します。 この引数を設定することで、ユーザーの認証に使用する ID ソースを指定します。 ユーザーは、構成されている LDAP パススルー ID ソースに照らして認証されます。 https://<tenant>/verify/v1.0/authnmethods/password設定済みのIDソースとそのIDのリストは、以下の
GETURLへのリクエストから取得できます:。 - ignore_isvalidated
- この値はオプションであり、デフォルトは
falseです。trueに設定すると、PAM モジュールは、関連する 2FA 方式が検証されていない場合でもそれらを使用しようとします。 - transients_in_choice
- この引数で、OTP を使用した認証に使用される方式のリストに一時的な E メールおよび電話番号が追加されます。
- voice_in_choice
- この引数で、OTP を使用した認証に使用される方式のリストに音声 OTP が追加されます。
- transient_choices={choices}
- この引数は、利用できる一時的な方式および選択項目をリストします。 引数の値は、1 つ以上の
"emails"および"phoneNumbers"でなければなりません。 選択項目はそれぞれ , (コンマ) で区切られている必要があります。 - poll_timeout={seconds}
- この引数は、ユーザーが自分のデバイスからログインを検証するための待機時間を指定します。 この時間を超過すると、タイムアウトになってログインは失敗となります。
- no_enrollments_in_choice
この引数は、SMS、E メール、TOTP のいずれの登録も選択項目に追加しないことを指定します。 項目を選択可能にするには、
transients_in_choiceまたはadd_devices_to_choice(あるいはその両方) を構成する必要があります。- id_link_attr= {attr_name}
- テナントに複数のIDソースが定義されており、IDリンクが使用されている場合、この設定項目は、「user_name_attr」で特定されるユーザー属性の名前を定義します。この属性は、パスワードの検証に使用するユーザー名を識別するために使用されます。 {attr_name} の値の例:
`choice auth_methods` で提供される ` 2FA ` メソッドの定義
auth_methods オプションで指定された二要素認証の種類を有効または無効にする方法。
| 2FA 種類 | デフォルト | 有効化/無効化オプション | 説明 |
|---|---|---|---|
| totp SMS OTP メール OTP | enabled | no_enrollments_in_choice | 時間、SMS、およびメールによるワンタイムパスワードはデフォルトで有効になっており、これらを無効にするには明示的に設定を変更する必要があります。 |
| 装置 | 使用不可 | add_devices_to_choice | デバイスのプッシュ通知については、生体認証(指紋)および在席状況(デバイスアプリへのアクセス)の両方が、デフォルトでは選択不可となっており、必要な場合は明示的に有効にする必要があります。 verify_method_order オプションは、優先順位と、どのメソッドが使用されるかを決定します。 |
| transsmsotp transemailotp | 使用不可 | transients_in_choice | 「一時的」(携帯電話番号およびメールアドレスの未確認ユーザーアカウント値)は、デフォルトでは選択不可となっており、必要な場合は明示的に有効にする必要があります。 オプション `transient_choices=` は、`smsotp` および/または `emailotp` のどちらを使用するかを指定します。 |
| voiceotp | 使用不可 | voice_in_choice | 音声によるコールバック方式の一時パスワードは、デフォルトでは無効になっており、必要な場合は明示的に有効にする必要があります。 この機能を利用するには、ユーザーがこの方法に明示的に登録する必要があります。 |