以下の各種リソースにアクセスする場合に使用される認証情報(ユーザー名/パスワード)について説明します。
JDBCリソース
JMS接続ファクトリ
コネクタリソース
リソースの認証方法としてdeployment descriptorファイル(web.xmlやejb-jar.xml)の<res-auth>タグの指定によりアプリケーション管理による認証(Application)と、コンテナ管理による認証(Container)を選択できます。
アプリケーション管理による認証(Application)
アプリケーション管理による認証(Application)を指定すると、アプリケーションで認証メソッドを呼び出す時に認証情報を指定します。
認証メソッドの引数 | 認証 |
---|---|
なし | 認証失敗の例外(JDBCリソースの場合、java.sql.SQLException)を返却 |
ユーザー名/パスワードを指定 | 指定されたユーザー名/パスワードで認証 |
各種リソースの認証メソッドは以下です。
リソース | 認証メソッド |
---|---|
JDBCリソース | javax.sql.DataSourceクラスのgetConnectionメソッド |
JMS接続ファクトリ |
|
コネクタリソース | javax.resource.spi.ConnectionManagerクラスのallocateConnectionメソッドに渡されるjavax.resource.spi.ConnectionRequestInfoクラスの情報(注) |
注)
この認証メソッドはリソースアダプタ内で実行されるため、リソースアダプタの実装に依存します。認証の使用についてはリソースアダプタ提供者に問い合わせてください。
コンテナ管理による認証(Container)
コンテナ管理による認証(Container)を指定すると、アプリケーションで認証メソッドを呼び出す時に指定した認証情報は無視されて以下の優先順位で認証情報(Principal)をコンテナが決定します。
【コネクタリソースの場合のみ】セキュリティーマップ
呼び出し側の認証情報が存在する場合には、呼び出し側の認証情報にマッピングされたBackend Principal(バックエンド主体と呼ぶ場合もあります)をEISとの認証情報として使用できます。このBackend Principalにマッピングする機能をセキュリティーマップと呼びます。
呼び出し側の認証情報が存在しない場合、または、呼び出し側の認証情報にマッピングするBackend Principalが定義されていない場合には、2.以降の認証情報が使用されます。セキュリティーマップの詳細は「セキュリティーマップ」を参照してください。
Interstage deployment descriptorのデフォルト認証情報
Interstage deployment descriptorファイルの<resource-ref><default-resource-principal>タグが定義されている場合、定義された認証情報を使用します。
【コネクタリソースの場合のみ】リソースアダプタの接続定義のプロパティ
ra.xmlの<connector><resourceadapter><outbound-resourceadapter><connection-definition><config-property>タグに以下のプロパティ名が定義されている場合には、定義された認証情報を使用します。
ユーザー名: プロパティ名「USERNAMEまたはUSER」のプロパティ値
パスワード: プロパティ名「PASSWORD」のプロパティ値
リソースクラスのプロパティ
リソースクラスにgetter/setterメソッドが実装されている場合には、以下のメソッドの返却値を認証情報として使用します。このメソッドの返却値はJDBC接続プール、JMS接続ファクトリ、コネクタ接続プールの追加プロパティ(UserName、User、Password)に値を指定することで、対応するsetterメソッドを運用時に呼び出して値を変更できます。
ユーザー名: getUserName()またはgetUser()の返却値
パスワード: getPassword()の返却値
上記のいずれも該当しない
上記のいずれも該当しない場合、長さ0の文字列を認証情報として使用します。
コネクタリソースを使用してコンテナ管理の認証を選択する場合、セキュリティーマップ機能を使用できます。
ここでは、ユーザーをPrincipal(主体と呼ぶ場合もあります)、グループをユーザーグループと呼びます。
セキュリティーマップ機能とは、リソースアダプタを利用してEISへアクセスするJava EEコンポーネントのPrincipalを、EISとの認証で使用するBackend Principal(バックエンド主体と呼ぶ場合もあります)へマッピングする機能です。
1つのセキュリティーマップは、以下の形式で定義します。
マップ元: Principal/ユーザーグループ |
マップ元はカンマ(,)区切りで複数指定可能です。1つのセキュリティーマップにはPrincipalまたはユーザーグループを複数定義することができます。ただし、マップ元にPrincipalとユーザーグループが同時に登録されている場合、マッピング機能の動作時にはPrincipalが優先されます。
また、Principal/ユーザーグループにはワイルドカードを意味するアスタリスク(*)を指定できます。
マップ先のBackend Principalには(ユーザー名、パスワードの組)を指定します。
セキュリティーマップはコネクタ接続プールへ設定します。1つのコネクタ接続プールに対し複数のセキュリティーマップを指定可能です。
リソースアダプタはBackend Principalを用いてEISへ認証します。
セキュリティーマップの管理は、以下の方法が選択できます。
Interstage Java EE管理コンソールでコネクタ接続プールを選択し、「セキュリティーマップ」タブをクリックしてください。セキュリティーマップの一覧画面が表示されます。この画面から新規作成・更新・削除の各操作を実行してください。
asadminコマンドの以下のサブコマンドから新規作成・更新・削除・一覧表示の各操作を実行してください。サブコマンドの詳細は、「11.1.18 セキュリティ」を参照してください。
create-connector-security-map
delete-connector-security-map
update-connector-security-map
list-connector-security-maps
注意
コネクタ接続プールを削除すると、そのプールに設定されたセキュリティーマップも削除されます。
Interstage Java EE管理コンソールからセキュリティマップを操作する場合、マップ元にPrincipalとユーザーグループが同時に登録されている場合には、マッピング機能の動作時に優先されるPrincipalのみが表示されます。
asadminコマンドからセキュリティマップを操作する場合、list-connector-security-mapsサブコマンドの--verboseオプションの指定により、登録されている全てのPrincipalまたはユーザーグループが表示されます。