プリンシパル認証モジュールの作成

このセクションでは、JAAS ベースの PAM を作成するための ガイドラインを提供します。

TDV は、JAAS (Java Authentication and Authorization Services、引数なしのコンストラクターを含む) の認証モジュールを使用します。

注:ユーザー提供の LoginModule 実装では、クラス変数に状態を格納しないようにすることをお勧めします。

必要な JAR ファイルを作成するには

1. 次の名前と値のペアで manifest.mf ファイルを作成します。
Manifest-Version: 1.0
cisext-name: <name>
cisext-annotation: <description>
cisext-version: <integer_version_number>
cisext-introspectAll: true 
cisext-dependencies: <dependencyName>:<version_number>
name: <fullpath_and_class_file_name>  
cisext-introspect: true
2. マニフェスト ファイルの最後の行が空であることを確認します。
3. マニフェスト ファイルを保存します。
4. 以下の推奨事項に従って、JAAS ログイン モジュール クラス ファイルを作成します。

おすすめ

Initialization

初期化方法。ユーザーが TDV にサイン インするたびに、登録されている各 LoginModule クラスがインスタンス化され、その初期化メソッドが呼び出されます。

subject

LoginModule がプリンシパル、証明書、その他のセキュリティ関連の認証情報を格納するjavax.security.auth.Subject のインスタンスです。

callbackHandler

NameCallback および P を介して、ユーザーの名前とパスワードを取得するために使用できる javax.security.auth.callback.CallbackHandler のインスタンス aswordCallback クラス。その他の Callback インスタンスをハンドラーに渡すと、UnsupportedCallbackException が発生します。

sharedState

動作中のすべての LoginModule には、その接続のすべてのチャネル プロパティ (HTML ヘッダーなど) で初期化された Map<String,?> のコピーが渡されます。

認証モジュールで特定のチャネル タイプを検証する場合は、追加の Transport-Type チャネル プロパティに http、jms、または db (JDBC/ODBC/ADO.NET の場合) のいずれかの定数を入力します。

options

各 LoginModule インスタンスには、その構成パラメーターを含む Map<String,?> が渡されます。

Login

モジュールがログインステータスを決定する方法。考えられる 3 つの結果は次のとおりです。

Pass - ログイン メソッドは TRUE を返します。
Fail - メソッドは LoginException をスローします。
どちらでもない-ログイン モジュールは FALSE を返し、サイン オン プロセスから除外します。たとえば、ユーザーが Web サービスを介して認証している JDBC 接続を検証するように設計された LoginModule は、FALSE を返す場合があります。

Commit

例外が発生しない場合、サイン オンは成功したと見なされ、各モジュールは、初期化メソッドで識別されたサブジェクト インスタンスに必要なセキュリティ資格情報を追加できます。

Abort

LoginModule に障害が発生すると、そのモジュールの abort メソッドが呼び出され、モジュールが保持している可能性のあるリソースを解放できるようになります。

Logout

ユーザーがサインアウトしたときに呼び出すメソッド。

5. クラス ファイルと manifest.mf ファイルを 1 つの JAR ファイルに保存します。
6. server_util.sh を使用して、PAM 認証を含むパッケージをデプロイします。手順については、「プラグ可能な認証モジュールのデプロイ」を参照してください。