PEAR::Authでは、 種々のいわゆる「ストレージコンテナ」を使用できます。 以下では、各ストレージコンテナの詳細について述べます。 それらコンテナのいずれもがあなたのニーズに合致しない場合は、 独自のものを作成することも可能です。
PEAR::Authは、 PEAR::DB 抽象化レイヤーを使用します。 つまり、ログインデータの保持には、 DB 抽象化レイヤーがサポートするデータベースの内、 どれでも使用できます。
本ストレージを使用する場合、 Auth constructor() の引数は配列となります。
表 28-1配列のキーと値
| キー | 説明 | デフォルト値 |
|---|---|---|
| "dsn" | 有効で整形式の DSN | "" |
| "table" | 認証データが保持されるデータベースのテーブル名 | "auth" |
| "usernamecol" | ユーザ名が保持されるカラム名 | "username" |
| "passwordcol" | MD5 暗号化されたパスワードが保持されるカラム名。 32 文字以上を保持可能か確認してください。 | "password" |
このストレージコンテナは、SAMBA の smbpasswd ファイルを使って認証を 行います。 本ストレージを使用する場合、 Auth constructor() の引数は、 SAMBA passwd 形式の ファイル名です。
このストレージコンテナは、指定された IMAP サーバに接続し、 指定されたユーザ名・パスワードでログインしようと試みます。
本ストレージを使用する場合、 Auth constructor() の引数は、配列となります。
このストレージコンテナは、指定された POP3 サーバに接続し、 指定されたユーザ名・パスワードでログインを試みます。
本ストレージを使用する場合、 Auth constructor() の引数は、server:port 形式、または単に server 形式とします。
このストレージコンテナを動作させるためには、PECL radius が必要です。
本ストレージを使用する場合、 Auth constructor() の引数は、配列となります。
表 28-4配列のキーと値
| キー | 説明 | デフォルト値 |
|---|---|---|
| "servers" |
RADIUS サーバの配列。 各サーバは、ホスト、ポート、共有秘密鍵(shared secret)、 タイムアウト、最大試行数から成る。 ホスト引数には、完全修飾ドメイン名 またはドット区切りの IP アドレスをテキスト形式で指定します。 ポート引数には、サーバに接続するための UDP ポートを指定します。 ポート引数に 0 が与えられた場合は、 ネットワークサービスのデータベース中の radius/udp のエントリを 調べます。 エントリが見つから無ければ、RADIUS 標準の認証用ポート (1812) を使用します。 共有秘密鍵引数には、サーバホストに対する共有秘密鍵を指定します。 RADIUS プロトコルは、共有秘密鍵の 128 バイト目以降を無視します。 タイムアウト引数には、サーバからの応答に対するタイムアウトを 秒単位で指定します。 最大試行数には、認証を断念するまでに 最大何回認証リクエストを繰り返すかを指定します。 最大 10 のサーバを指定できます。 複数のサーバが指定された場合は、 有効なレスポンスが得られるか、 各サーバで最大試行数に達するかするまで ラウンドロビン形式で試行していきます。 | array("localhost", 0, "testing123", 3, 3) |
| "authtype" |
リクエストの認証方法。 PAP, CHAP_MD5, MSCHAPv1, MSCHAPv2 が指定可能。 各メソッドごとに異なる依存性が存在します。 PAP 以外のメソッドは、Crypt_CHAP パッケージを必要とします。 MS-CHAP を使用する場合は、mhash 拡張が必要です。 | "PAP" |
独自ストレージコンテナ使用の例
以下は、独自の Auth ストレージコンテナのスケルトンです。
そして、以下はその使用方法です。