本文に進む 日本−日本語
日本HPホーム 製品とサービス お客様サポート/ ダウンロード ソリューション ご購入の方法
≫ お問い合わせ
詳細検索オプション
日本HPホーム
HP-UX リファレンス: セクション 3 : ライブラリ (N~Z) > p

pam_start(3)

HP-UX 11i Version 2: September 2004
≫ 

テクニカル ドキュメント

PDF版
フィードバック
ここから本文が始まります

 ≫ 目次

 ≫ 索引

名称

pam_start, pam_end ― PAM 用の認証トランザクションルーチン

構文

cc [ flag ... ] file ... -lpam [ library ... ]

#include <security/pam_appl.h>

int pam_start(const char *service, const char *user,
const struct pam_conv *pam_conv, pam_handle_t **pamh);

int pam_end(pam_handle_t *pamh, int status);

説明

pam_start() を呼び出して、認証トランザクションを開始します。 pam_start() は、引き数として、現在のサービス名 service、 認証するユーザー名 user、 対話用構造体へのアドレス pam_conv、 認証ハンドル pamh 用の変数へのアドレスを使用します。

正常終了すると、 pamh は、以降の認証ライブラリへの呼び出しで使用するために PAM ハンドルを参照します。

pam_conv 構造体 pam_conv は、アプリケーションが提供する対話形式の関数のアドレスを含みます。基底の PAM サービスモジュールは、この関数を呼び出してユーザーとの情報の入出力を行います。 pam_conv 構造体には以下のエントリーがあります。

struct pam_conv {
        int     (*conv)();           /* Conversation function */
        void    *appdata_ptr;        /* Application data */
};

conv の構文は以下のとおりです。

int conv(int num_msg,
        const struct pam_message **msg, struct pam_response **resp,
        void *appdata_ptr);

関数 conv() は、アプリケーションまたはユーザーと PAM が会話を行うためにサービスモジュールが呼び出します。ウィンドウアプリケーションの場合、アプリケーションは対話で使用する新しいポップアップウィンドウを作成します。

パラメータ num_msg は、呼び出しに関連付けられたメッセージの数です。パラメータ msg は、長さが num_msg の、 pam_message 構造体の配列へのポインターです。

構造体 pam_message は、プロンプトやエラーメッセージ、または任意のテキスト情報を、認証サービスからアプリケーションまたはユーザーへ渡すために使用されます。メッセージのローカライズは PAM サービスモジュールが行います。 pam_message が使用するメモリーは、PAM モジュールが割り当て、解放しなければなりません。 pam_message 構造体には以下のエントリーがあります。

struct pam_message{
        int     msg_style;
        char    *msg;
};

メッセージスタイル msg_style には以下の値のどれかを設定できます。

PAM_PROMPT_ECHO_OFF
  

応答のエコーを禁止して、ユーザーにプロンプトを表示します。

PAM_PROMPT_ECHO_ON
  

応答のエコーを許可して、ユーザーにプロンプトを表示します。

PAM_ERROR_MSG  

エラーメッセージを表示します。

PAM_TEXT_INFO  

一般的なテキスト情報を表示します。

メッセージ文字列と応答文字列の最大長は、 <security/pam_appl.h> の PAM_MAX_MSG_SIZE で定義されます。

構造体 pam_response は、認証サービスがアプリケーションまたはユーザーから応答を得るために使用します。 pam_response が使用する記憶領域は、アプリケーションが割り当て、PAM モジュールが解放しなければなりません。 pam_response 構造体には以下のエントリーがあります。

struct pam_response{
        char    *resp;
        int     resp_retcode;  /* currently not used, should be set to 0 */
};

PAM_PROMPT_ECHO_OFFPAM_PROMPT_ECHO_ON のメッセージスタイルのための改行文字の除去や、 PAM_ERROR_MSGPAM_TEXT_INFO のメッセージスタイルのための改行文字の追加 (該当する場合) は、会話関数が行います。

appdata_ptr は、アプリケーションデータ ポインターです。これは、アプリケーションが PAM サービスモジュールへ渡します。 PAM モジュールは会話関数を通じてこのポインターを返すので、アプリケーションはこのポインターを使ってアプリケーション特定の任意のデータをポイントできます。

pam_end() を呼び出すと、 pamh で識別される認証トランザクションは終了し、認証モジュールが割り当てたすべての記憶領域を解放します。引き数 status は pam ハンドル内に登録されている cleanup() 関数に渡され、それぞれのモジュールについて削除すべき物を判断するのに使用されます。 cleanup 関数は、基底の PAM モジュールによりこのハンドルに結び付けられ、 pam_set_item(3) の呼び出しを通じてモジュール特定のデータを解放します。

アプリケーション使用法

PAM インタフェースのスレッドへの対応状況については、 pam(3) を参照してください。

戻り値

戻り値に関連したエラー情報については、 pam(3) を参照してください。

印刷用画面へ
プライバシー 本サイト利用時の合意事項
© 1983-2004 Hewlett-Packard Development Company, L.P.