Oracle® Solaris 11 セキュリティー開発者ガイド

印刷ビューの終了

更新: 2014 年 7 月
 
 

PAM コンシューマの要件

PAM コンシューマは PAM ライブラリ libpam とリンクする必要があります。各モジュールが提供するサービスをアプリケーションから利用するには、pam_start(3PAM) を呼び出して PAM ライブラリのインスタンスを初期化する必要があります。pam_start() を呼び出すと、ハンドルが初期化されます。このハンドルは、後続の PAM 呼び出し時に毎回指定する必要があります。アプリケーション内での PAM サービスの利用を終了する際には、pam_end() を呼び出し、PAM ライブラリが使用したすべてのデータをクリーンアップします。

    PAM アプリケーションと PAM モジュール間の通信は、アイテム経由で実現されます。たとえば、初期化時に使うと便利なアイテムを、次に示します。

  • PAM_USER – 現在の認証ユーザー

  • PAM_AUTHTOK – パスワード

  • PAM_USER_PROMPT – ユーザー名プロンプト

  • PAM_TTY – ユーザーが通信に使用している端末

  • PAM_RHOST – ユーザーがシステムにアクセスする際に経由するリモートホスト

  • PAM_REPOSITORY - ユーザーのアカウントリポジトリに対するすべての制限

  • PAM_RESOURCE – リソースに対するすべての制御

利用可能なすべてのアイテムの一覧については、pam_set_item(3PAM) のマニュアルページを参照してください。アプリケーションからアイテムを設定するには、pam_set_item(3PAM) を使用します。モジュールによって設定された値をアプリケーション内で取り出すには、pam_get_item(3PAM) を使用します。ただし、PAM_AUTHTOK と PAM_OLDAUTHTOK はアプリケーションから取得できません。また、PAM_SERVICE アイテムは設定できません。


注 - PAM コンシューマは一意の PAM サービス名を持っている必要があります。pam_start(3PAM) にこの名前が渡されます。