セキュリティ・レルム: 全般
このページでは、このセキュリティ・レルムの全般的な動作を構成します。
- ノート:
- JACC (Java Authorization Contract for Containers、JSR 115に定義)を使用してセキュリティを実装する場合は、「DDのみ」セキュリティ・モデルを使用する必要があります。その他のWebLogic Serverモデルは使用できません。管理コンソールでWebアプリケーションとEJBのセキュリティ機能は無効になっています。
セキュリティ・レルムは、監査、認証、認可、資格証明マッピング、およびロール・マッピングのすべてのサービスをWebLogic Serverデプロイメントに提供します。1つのWebLogic Serverデプロイメント内に複数のセキュリティ・レルムを構成することができます。デフォルト・セキュリティ・レルムとして指定できるのは1つのみであり、これをドメイン・セキュリティの管理に使用します。
どのようなセキュリティ・レルムであれ、それが有効であるためには、次のタイプのセキュリティ・プロバイダをそれぞれ(任意の順序で)構成する必要があります。
- 認証
- 認可
- 裁決
- 資格証明マッピング
- ロール・マッピング
- CertPathBuilder
セキュリティ・レルム内の少なくとも1つの認可プロバイダおよびロール・マッピング・プロバイダが
DeployableAuthorizationProvider
およびDeployableRoleProvider
セキュリティ・サービス・プロバイダ・インタフェース(SSPI)をそれぞれ実装している必要があります。これらのSSPIにより、プロバイダはデプロイメント・ディスクリプタからの情報を格納(取得ではなく)できます。構成オプション
名前 説明 名前 このセキュリティ・レルムの名前。
セキュリティ・モデルのデフォルト このセキュリティ・レルムによって保護されるWebアプリケーションまたはEJBのデフォルトのセキュリティ・モデルを指定します。このデフォルト値は、デプロイメント時にオーバーライドできます。
ノート: ドメインの
config.xml
ファイルを変更し、サーバーを再起動することによってモジュールをデプロイし、かつconfig.xml
でモジュールのセキュリティ・モデル値を指定しない場合、モジュールはAppDeploymentMBean SecurityDDModel
属性のデフォルト値で保護されます( getSecurityDDModelを参照)。次のセキュリティ・モデルのうち1つを選択します。
デプロイメント・ディスクリプタのみ(「DDのみ」)
EJBおよびURLパターンについて、このモデルではJava EEデプロイメント・ディスクリプタ(DD)内のロールおよびポリシーのみを使用します。このデータは、管理コンソールでは読取り専用です。このモデルを使用する場合、EJBおよびURLパターンは、よりスコープの広いロールおよびポリシー(Webアプリケーション全体をスコープとするポリシーなど)によっては保護されません。EJBまたはURLパターンがDD内のロールまたはポリシーで保護されていない場合、これらはまったく保護されず、誰でもアクセスできることになります。
EARのアプリケーション・スコープのロールについては、このモデルはWebLogic ServerのDD内で定義されているロールのみを使用します。このデータは、管理コンソールでは読取り専用です。WebLogic ServerのDDでロールが定義されていない場合、アプリケーション・スコープのロールはそのEARに対して定義されていないことになります。
それ以外のタイプのリソースについては、管理コンソールを使用してロールまたはポリシーを作成できます。たとえば、このモデルでは、管理コンソールを使用してEARのためのアプリケーション・スコープのポリシーを作成できます。
デプロイメントの存続時間について適用されます。別のモデルを使用する場合は、デプロイメントを削除して再インストールする必要があります。
ロールのみをカスタマイズ(「カスタム・ロール」)
EJBおよびURLパターンについて、このモデルではJava EEデプロイメント・ディスクリプタ(DD)内のポリシーのみを使用します。EJBおよびURLパターンは、よりスコープの広いポリシー(Webアプリケーション全体をスコープとするポリシーなど)によっては保護されません。このモデルは、DD内に定義されているロールはすべて無視します。管理者は、管理コンソールを使用してロール・マッピングを行います。
それ以外のタイプのリソースについては、管理コンソールを使用してロールまたはポリシーを作成できます。たとえば、このモデルでは、管理コンソールを使用してEARのためのアプリケーション・スコープのポリシーまたはロールを作成できます。
デプロイメントの存続時間について適用されます。別のモデルを使用する場合は、デプロイメントを削除して再インストールする必要があります。
ロールおよびポリシーをカスタマイズ(「カスタム・ロールおよびポリシー」)
デプロイメント・ディスクリプタ内に定義されているロールおよびポリシーをすべて無視します。管理者は、管理コンソールを使用してリソースを保護します。
モジュール内のすべてのURLまたはEJBメソッドに対してセキュリティ・チェックを実行します。
デプロイメントの存続時間について適用されます。別のモデルを使用する場合は、デプロイメントを削除して再インストールする必要があります。
詳細(「詳細」)
次のオプションの値を設定することで、このモデルの動作を構成します。
WebアプリケーションまたはEJBのデプロイ時
ノート: WebLogic Scripting ToolまたはJMX APIを使用する場合、この設定のMBean属性は単一にはなりません。
RealmMBean
のDeployPolicyIgnored
属性およびDeployRoleIgnored
属性について値を設定する必要があります。「ロールとポリシーのチェック」(FullyDelegateAuthorization)
「ロール・マッピングの組合せを有効化」(CombinedRoleMappingEnabled)
このモデルの構成は変更可能です。いかなる変更も、詳細モデルを使用するすべてのモジュールにただちに適用されます。たとえば、このモデルを使用するすべてのモジュールが、デプロイメント時にデプロイメント・ディスクリプタから適切なプロバイダ・データベースにロールおよびポリシーをコピーするように指定するとします。すべてのモジュールをデプロイした後、この動作を、モジュールを再デプロイする際にロールおよびポリシーが再コピーされないよう、デプロイメント・ディスクリプタ内のロールおよびポリシーを無視するものに変更できます。
ノート: WebLogic Serverバージョン9.0より前までは、使用できるセキュリティ・モデルは詳細モデルのみでした。EJBおよびWebアプリケーションを、引き続き9.0より前のリリースと同様に保護する場合は、このモデルを使用します。
MBean属性:
RealmMBean.SecurityDDModel
ロール・マッピングの組合せを有効化 エンタープライズ・アプリケーション、Webアプリケーション、およびEJBコンテナ内のロール・マッピングがどのように相互作用を行うかを決定します。この設定は、詳細セキュリティ・モデルを使用し、デプロイメント・ディスクリプタからのロールを初期化するWebアプリケーションおよびEJBについてのみ有効です。
有効化された場合:
アプリケーション・ロール・マッピングがEJBおよびWebアプリケーションと組み合せられることで、すべてのプリンシパル・マッピングが含まれるようになります。セキュリティ・サービスでは、ロール・マッピングが論理
OR
演算子と組み合せられます。
web.xml
ファイル内の1つまたは複数のポリシーで、weblogic.xml
ファイル内にマッピングが存在しないロールが指定されている場合、Webアプリケーション・コンテナは未定義のロールに対して空のマップを作成します(つまり、ロールはプリンシパルを含まないものとして明示的に定義されます)。したがって、そのようなポリシーで保護されるURLパターンにはアクセスできません。
ejb-jar.xml
ファイル内の1つまたは複数のポリシーで、weblogic-ejb-jar.xml
ファイル内にマッピングが存在しないロールが指定されている場合、EJBコンテナは未定義のロールに対して空のマップを作成します(つまり、ロールはプリンシパルを含まないものとして明示的に定義されます)。したがって、そのようなポリシーで保護されるメソッドにはアクセスできません。無効化された場合:
各コンテナのロール・マッピングは、
<externally-defined>
ディスクリプタ要素で定義されていないかぎり、他のコンテナに対して排他的なものとなります。
web.xml
ファイル内の1つまたは複数のポリシーで、weblogic.xml
ファイル内にロール・マッピングが存在しないロールが指定されている場合、Webアプリケーション・コンテナは未定義のロールがプリンシパルの名前であると想定します。したがって、想定されたプリンシパルが、ロール名にマップされます。たとえば、web.xml
ファイルのいずれかのポリシーに次のスタンザが含まれているとします。
<auth-constraint>
<role-name>PrivilegedUser</role-name>
</auth-constraint>しかし、
weblogic.xml
ファイルにPrivilegedUser
のロール・マッピングがない場合は、Webアプリケーション・コンテナが次のスタンザと等価のインメモリー・マッピングを作成します。
<security-role-assignment>
<role-name>PrivilegedUser</role-name>
<principal-name>PrivilegedUser</principal-name>
</security-role-assignment>EJBメソッドのロール・マッピングは、
weblogic-ejb-jar.xml
ファイルで定義する必要があります。その他のコンテナで定義されたロール・マッピングは、<externally-defined>
ディスクリプタ要素で定義されていないかぎり、使用されません。
- ノート:
バージョン8.1およびアップグレードされたバージョン9.xでこれまでデプロイされていたすべてのアプリケーションにおいて、組み合せられたロール・マッピングは、デフォルトでは無効化されています。
認可プロバイダを使用してJMXアクセスを保護 MBean属性にアクセスする許可またはMBean操作を呼び出す許可がJMXクライアントにあるかどうかを、セキュリティ・レルムの認可プロバイダを使用して判断するようにWebLogic Server MBeanサーバーを構成します。
WebLogic Serverのデフォルトのセキュリティ設定をそのまま使用することも、必要に応じてデフォルト設定を変更することもできます。
認可プロセスをレルムの認可プロバイダに委託しない場合、WebLogic MBeanサーバーでは、4つのデフォルト・セキュリティ・ロール(Admin、Deployer、Operator、およびMonitor)に対する、WebLogic Serverのデフォルト・セキュリティ設定で指定されたアクセスのみが許可されます。
MBean属性:
RealmMBean.DelegateMBeanAuthorization
セキュアな値:
true
動的でない変更の後に自動的に再起動 レルムまたはレルム内のプロバイダに動的でない変更が行われた場合、レルムを自動的に再起動するかどうかを指定します。
リタイア・タイムアウト 再起動するレルムのリタイア・タイムアウトを指定します。古いレルムは指定されたタイムアウト期間後に停止されます。
MBean属性:
RealmMBean.RetireTimeoutSeconds
最小値:
1
詳細な構成オプション
名前 説明 管理アイデンティティ・ドメイン レルムの管理アイデンティティ・ドメインの値を設定します。
MBean属性:
RealmMBean.ManagementIdentityDomain
ロールとポリシーのチェック セキュリティ・サービスが、WebアプリケーションおよびエンタープライズJava Bean (EJB)へのアクセス認可をいつチェックするかを指定します。この設定は、詳細セキュリティ・モデルを使用するWebアプリケーションおよびEJBでのみ有効です。
次のいずれか1つを行うようにWebLogicセキュリティ・サービスを構成します。
- 「
すべてのWebアプリケーションとEJB
」。クライアントがWebアプリケーションの任意のURL、またはEJBの任意のメソッドへのアクセスを試みたときに認可がチェックされます。- 「
デプロイメント・ディスクリプタで保護されたWebアプリケーションとEJB
」。クライアントが、WebアプリケーションまたはEJBのデプロイメント・ディスクリプタのポリシーによって保護されるURLまたはEJBメソッドへのアクセスを試みたときに認可がチェックされます。これを選択すると、詳細モデルはWebアプリケーションまたはEJBのデプロイメント・ディスクリプタに定義されたロールとポリシーのみを使用し、レルムのプロバイダ・データベース内のセキュリティ・データはすべて無視されます。
WebアプリケーションまたはEJBのデプロイ時 WebアプリケーションまたはEJBがデプロイされるたびに、セキュリティ・サービスによって、セキュリティ・データがデプロイメント・ディスクリプタから適切なセキュリティ・プロバイダ・データベースにコピーされるかどうかを指定します。この設定は、「
ロールとポリシーのチェック
」が「すべてのWebアプリケーションとEJB
」に設定されている場合にかぎり、詳細セキュリティ・モデルを使用するWebアプリケーションおよびEJBでのみ有効です。次のいずれか1つを行うようにWebLogicセキュリティ・サービスを構成します。
- 「
デプロイメント・ディスクリプタのロールとポリシーを初期化
」。詳細セキュリティ・モデルを使用するWebアプリケーションおよびEJBをデプロイするときに、モジュールのデプロイメント・ディスクリプタに指定されているロールおよびポリシーが適切なセキュリティ・プロバイダ・データベースにコピーされます。競合の解決方法、およびデプロイメント・ディスクリプタから削除されたロールを削除するかどうかは、ロール・マッパー・プロバイダと認証プロバイダによって異なります。WebLogic Serverロール・マッパーでは、最後に行われた変更を受け入れることで競合が解決され、デプロイメント・ディスクリプタから削除されたロールが削除されます。
- 「
デプロイメント・ディスクリプタのロールとポリシーを無視
」。詳細セキュリティ・モデルを使用するWebアプリケーションおよびEJBをデプロイするときに、デプロイメント・ディスクリプタのすべてのロールおよびポリシーが無視されます。デプロイ可能プロバイダの同期を有効化 デプロイ可能な認可プロバイダおよびロール・マッピング・プロバイダの同期を有効化するかどうかを指定します。
認可プロバイダおよびロール・マッピング・プロバイダは、セキュリティ・プロバイダ・データベースで、パラレル・セキュリティ・ポリシーおよびロール変更をサポートする場合とサポートしない場合があります。セキュリティ・プロバイダでパラレル変更がサポートされていない場合、WebLogic Securityフレームワークで同期化メカニズムが実行され、各アプリケーションおよびモジュールがキューに順番に配置されます。
MBean属性:
RealmMBean.DeployableProviderSynchronizationEnabled
デプロイ可能プロバイダの同期のタイムアウト デプロイ可能なセキュリティ・プロバイダの同期操作のタイムアウト値(ミリ秒)を戻します。この値は
DeployableProviderSynchronizationEnabled
がtrue
に設定されている場合のみ使用されます。MBean属性:
RealmMBean.DeployableProviderSynchronizationTimeout