4 デフォルト・セキュリティ構成のカスタマイズ
Oracle WebLogic Serverには、セキュリティの管理を簡略化するためにデフォルトのセキュリティ設定を置き換える場合にカスタマイズできるデフォルトのセキュリティ構成が提供されています。
この章の内容は次のとおりです。
セキュリティ・プロバイダの構成の詳細は、WebLogicセキュリティ・プロバイダの構成についてとWebLogic Serverでの認証プロバイダの構成についてを参照してください。
セキュリティ・データの新しいセキュリティ・レルムへの移行については、セキュリティ・データの移行を参照してください。
デフォルト・セキュリティ構成をカスタマイズする理由
デフォルト・セキュリティ構成では、myrealm
がデフォルト(アクティブ)セキュリティ・レルムとして設定され、WebLogic裁決、認証、IDアサーション、資格証明マッピング、証明書パス、XACML認可、およびXACMLロール・マッピングの各プロバイダがセキュリティ・プロバイダとしてセキュリティ・レルムに定義されています。
以下のいずれかを行う場合、デフォルト・セキュリティ構成をカスタマイズします。
-
デフォルト・レルムのセキュリティ・プロバイダの1つを別のセキュリティ・プロバイダで置き換えます。
-
デフォルト・セキュリティ・レルムに追加のセキュリティ・プロバイダを構成します。(たとえば、2つの認証プロバイダを使用する場合。)
-
WebLogic Serverの組込みLDAPサーバー以外のLDAPサーバーにアクセスする認証プロバイダを使用します。
-
WebLogicオーセンティケータ(DefaultAuthenticatorとも呼ばれます)でユーザーおよびグループを定義するのではなく、ユーザーとグループの既存のストア(DBMSデータベースなど)を使用します。
-
認証を行う場合、ユーザー名に加えてプリンシパルのGUIDまたはDN属性を使用し、プリンシパルの一致で大文字/小文字が区別されないように指定します。
-
デフォルト・セキュリティ・レルムに監査プロバイダを追加します。
-
SAMLアサーションまたはKerberosトークンを処理するIDアサーション・プロバイダを使用します。
-
証明書レジストリを使用してセキュリティ・レルムに証明書失効を追加します。
-
セキュリティ・プロバイダのデフォルト構成設定を変更します。
-
セキュリティ・プロバイダ・データベースで並列セキュリティ・ポリシーとロール変更をそれぞれサポートしないカスタム認可プロバイダまたはロール・マッピング・プロバイダを使用します。
セキュリティ・レルムで様々なタイプのセキュリティ・プロバイダを構成する方法の詳細は、WebLogicセキュリティ・プロバイダの構成についてとWebLogic Serverでの認証プロバイダの構成についてを参照してください。
デフォルト・セキュリティ構成をカスタマイズする最も簡単な方法は、デフォルト・セキュリティ・レルム(myrealm
)にセキュリティ・プロバイダを追加することです。しかしOracleではこの方法ではなく、完全に新しいセキュリティ・レルムを作成して、デフォルト・セキュリティ構成をカスタマイズすることをお薦めします。このようにすると、デフォルト・セキュリティ構成を簡単に元に戻せる状態が保たれます。作成した新しいレルムにセキュリティ・プロバイダを構成し、既存のデフォルト・レルムからユーザーやグループなどのセキュリティ・データを移行してから、新しいセキュリティ・レルムをデフォルト・レルムとして設定します。「新しいセキュリティ・レルムの作成と構成: 主なステップ」を参照してください。
新しいセキュリティ・レルムを作成する前に
セキュリティ・レルムを作成する前に、使用するセキュリティ・プロバイダのセットと、セキュリティ・ポリシーを設定するためのモデルを決定します。
次の点に注意してください。
-
WebLogic Serverには様々なセキュリティ・プロバイダがあり、カスタム・セキュリティ・プロバイダを作成したり入手したりすることもできます。有効なセキュリティ・レルムには、認証プロバイダ、認可プロバイダ、裁決プロバイダ、資格証明マッピング・プロバイダ、ロール・マッピング・プロバイダ、および証明書パス・ビルダーが必須です。また、必要に応じてIDアサーション・プロバイダ、監査プロバイダ、および証明書レジストリ・プロバイダを含めることもできます。新しいセキュリティ・レルムに同じ種類のプロバイダを複数含める場合(複数の認証プロバイダ、複数の認可プロバイダなど)、そうしたプロバイダが相互に通信する方法を決定する必要があります。「複数の認証プロバイダの使用」を参照してください。
また、カスタムの認可プロバイダまたはロール・マッピング・プロバイダは、セキュリティ・プロバイダ・データベースで並列セキュリティ・ポリシーとロール変更をれぞれサポートする場合とサポートしない場合があります。カスタムの認可プロバイダまたはロール・マッピング・セキュリティ・プロバイダが並列変更をサポートしない場合、WebLogicセキュリティ・フレームワークは同期メカニズムを実行するため、各アプリケーションとモジュールはキューに配置され、連続してデプロイされます。これを行うには、レルムに「デプロイ可能プロバイダの同期を有効化」制御と「デプロイ可能プロバイダの同期のタイムアウト」制御を設定します。
-
WebアプリケーションおよびEJBリソースのセキュリティ・ロールおよびポリシーは、デプロイメント記述子またはWebLogicリモート・コンソールを通じて設定できます。『Oracle WebLogic Serverロールおよびポリシーによるリソースの保護』の「WebアプリケーションおよびEJBリソースの保護のオプション」を参照してください。
-
新しいセキュリティ・レルムで、URLリソースではなくWebリソースを使用するカスタム認可プロバイダを構成する場合は、新しいセキュリティ・レルムの「非推奨のWebリソースを使用」を有効にしてください。このオプションによってサーブレット・コンテナの実行時の動作が変更され、認可を実行する際にURLリソースではなくWebリソースが使用されます。このリリースのWebLogic Serverでは、Webリソースは非推奨になりました。
ノート:
新しいセキュリティ・レルムを作成する場合、少なくとも1つの認証プロバイダを構成して、アサートされたLoginModuleを返す必要があります。そうしないと、デプロイメント記述子に定義される
run-as
タグが有効になりません。
Oracle WebLogic Remote Consoleオンライン・ヘルプのセキュリティ・レルムの作成に関する項を参照してください。
新しいセキュリティ・レルムの作成と構成: 主なステップ
新しいセキュリティ・レルムを構成する主なステップでは、レルム名の選択、必要なセキュリティ・プロバイダのセットの選択および構成、レルム内のWebLogicリソースを保護するための適切なセキュリティ・ポリシーの作成、レルムに定義されているユーザー・アカウントの保護を行います。
新しいセキュリティ・レルムを作成するには:
レルムの自動再起動の使用方法
レルムの再起動に対する動的および非動的構成変更の影響
実行する構成変更の種類により、レルムの再起動がどのようにその変更に影響するかが決まります。次の3つのシナリオでは、レルム、セキュリティ・プロバイダまたは別のWebLogic構成に対して行える変更の種類と、自動レルム再起動がどのようにそれらの変更に影響するかを示します。
-
動的変更: WebLogicリモート・コンソールで行った一部の変更は、変更をコミットするとすぐに有効になります。これらの変更は動的変更と呼ばれますが、サーバーの再起動またはレルムの再起動を必要としません。
-
サーバーの再起動を必要としないレルムまたはプロバイダに対する非動的変更: レルムまたはセキュリティ・プロバイダの非動的属性を変更した場合、そのレルムに対して自動レルム再起動が有効になっていると、変更のコミット時にレルムが再起動されます。そのため、サーバーの再起動は必要ありません。自動レルム再起動がレルムに対して有効になっていない場合は、そのレルムまたはプロバイダに対する非動的変更についてサーバーの再起動が必要となります。
-
レルムまたはプロバイダおよび別のWebLogic Server構成に対する非動的変更: サーバーの再起動を必要とするセキュリティ・レルムと他の(セキュリティ関連以外の) WebLogicドメイン属性の両方に対して非動的構成変更を行うと、そのレルムに対して自動再起動が構成され有効になっていても、レルムは再起動されません。このような場合、サーバーの再起動が必要です。
レルムの再起動のための構成オプション
レルムの自動再起動を構成する場合は、Oracle WebLogic Remote Consoleオンライン・ヘルプのレルムの自動再起動の有効化に関する項を参照してください。RealmMBean
のAutoRestartOnNonDynamicChanges
属性を使用して、レルムまたはレルム内のプロバイダに対して非動的変更が行われた場合に、レルムの自動再起動を有効または無効にすることもできます。
レルムの再起動では必ず、WebLogic Serverでは、前のレルム・インスタンスに行った構成変更を使用して新しいレルム・インスタンスが初期化されます。その結果、古い(前の)レルム・インスタンスは停止されます。新しいインスタンスが初期化されると、前のインスタンスからのレルム・オブジェクト参照は新しいインスタンスに移行されます。しかし、古いレルム・インスタンスに対する操作は、新しいインスタンスの準備ができた時点で、まだ進行中の場合があります。リタイア・タイムアウトを使用すると、指定のタイムアウト期間に古いインスタンスが実行状態のままでも、中断されることなく進行中の操作は完了できます。RealmMBeanのRetireTimeoutSeconds
属性を使用して、古いレルム・インスタンスが停止またはリタイアするまでに必要な時間(秒)を指定します。この属性の最小値は1秒であるのに対し、デフォルト値は1分(60秒)です。
カスタム・セキュリティ・プロバイダではレルムの再起動がサポートできないことがあるため、セキュリティ・レルムのデフォルト設定によって前のWebLogicの動作との互換性が提供されます。したがって、デフォルト・セキュリティ・レルムでは、自動レルム再起動がデフォルトで無効になっています。ただし、新規作成するセキュリティ・レルムでは、自動レルム再起動がデフォルトで有効になります。
RealmMBean
の属性の詳細は、Oracle WebLogic Server MBeanリファレンスのRealmMBeanに関する項を参照してください。