Pluggable Authentication Module (PAM) フレームワークを使用すると、login、ftp、telnet などのシステムエントリサービスを変更しなくても、新しい認証技術を「プラグイン」できるようになります。また、PAM を使用すると、 UNIX ログインを DCE や Kerberos のような他のセキュリティメカニズムと統合できます。また、アカウント、セッション、およびパスワードの管理メカニズムもプラグインできます。
PAM を使用すると、ユーザー認証用のシステムエントリサービス (ftp、login、telnet、rsh など) を任意に組み合わせて選択することができます。PAM には次の利点があります。
一般ユーザーにも使いやすい
メカニズムが異なってもパスワードが同じであれば、パスワードを再入力する必要がない
パスワードマッピング機能により、複数の認証方式に単一のパスワードを使用できる。この機能は、個々の認証方式に関連するパスワードが異なっている場合でも有効である
ユーザーが複数のコマンドを入力しなくても、複数の認証方式のパスワードを求めるプロンプトを表示できる
オプションパラメータをユーザー認証サービスに渡す機能
PAM ソフトウェアは、ライブラリ、いくつかのモジュール、および構成ファイルで構成されます。いくつかのコマンドまたはデーモンの新しいバージョンは、PAM インタフェースを利用できます。
次の図は、アプリケーション、PAM ライブラリ、pam.conf ファイル、および PAM モジュール間の関係を示します。
アプリケーション (ftp、telnet、および login) は、PAM ライブラリを使用して、適切なモジュールにアクセスします。pam.conf ファイルは、使用するモジュールを定義して、各アプリケーションがモジュールを使用する順番を定義します。モジュールからの応答は、ライブラリ経由でアプリケーションに戻されます。
次の節では、PAM の構成要素とアプリケーションの関係について説明します。
PAM ライブラリ /usr/lib/libpam は、適切なモジュールをロードして、スタックプロセスを管理するためのフレームワークを提供します。また、すべてのモジュールがプラグインできる汎用構造になっています。
PAM フレームワークは、「スタッキング機能」を使用して、複数のサービスでユーザーを認証する方式を提供します。構成によって、認証方式ごとにパスワードを求めるプロンプトをユーザーに出すことも可能です。認証サービスが使用される順序は、PAM 構成ファイルで決定されます。
スタッキング機能では、ユーザーが複数のパスワードを覚えておく必要があります。「パスワードマッピング機能」を使用すると、基本パスワードから他のパスワードを復号できるので、ユーザーが複数のパスワードを覚えたり入力したりする必要はありません。各認証メカニズム間でパスワードの同期を取るためのオプションもあります。ただし、スタック内で使用される最も安全性の低いパスワード方式によってメカニズムのセキュリティが制限されてしまうため、この方法ではセキュリティの危険性が増すおそれがあります。
Solaris 9 では、PAM サービスがいくつかの点で拡張されています。ここでは、最も重要な変更点について説明します。
スタッキングを適切に行うために、pam_unix モジュールが個々の単一サービスモジュールに分割されました。これらのモジュールの機能は、既存のモジュールと同等です。これらの機能は、次の各モジュールで提供されます。
pam_authtok_get
pam_authtok_check
pam_authtok_store
pam_unix_auth
pam_dhkeys
pam_passwd_auth
新しいモジュールについては、PAM モジュールを参照してください。
新しい PAM サービスとして、 cron、dtsession、ppp、および ssh が加わりました。新しいサービスについては、PAM で有効なサービス名を参照してください。
PAM 構成ファイルが、新しいモジュールと新しいサービスを含むよう更新されました。構成ファイルについては、一般的な pam.conf ファイルを参照してください。
Update 2 には、新しいバインディング制御フラグが含まれています。このフラグの導入によって、追加の認証をスキップすることが可能になります。ただし、スキップするためには、そのサービスモジュールが正常に終わるだけでなく、その前に実行されたすべての必須モジュールが正常に終わっていなければなりません。この制御フラグについては、pam.conf(4) のマニュアルページと PAM 制御フラグを参照してください。