WebLogic リソースのセキュリティ
![]() |
![]() |
![]() |
![]() |
この章では、用語と概念を紹介し、処理の流れを概説して WebLogic リソースを保護するための主な手順について簡単に示します。
WebLogic リソースとは、WebLogic Security サービスで基底の WebLogic Server エンティティを表すため、またそのエンティティに誰がアクセスできるのかを決定するために作成されるものです。一連の条件下でリソースにアクセスできるユーザ、グループ、またはロールを指定するには、セキュリティ ポリシーを作成します。セキュリティ ロールでは、セキュリティ グループと同様にユーザに ID が付与されます。ただしグループとは違い、ロールのメンバシップは実行時に評価される条件群に基づいて動作できます。
たとえば、エンタープライズ アプリケーション (EAR) をデプロイする際には、WebLogic Security サービスによって ApplicationResource
オブジェクトが作成されます。クライアントが EAR と対話しようとすると、アプリケーション コンテナから WebLogic Security サービスにリクエストが転送されます。WebLogic Security サービスでは EAR の ApplicationResource
に定義したセキュリティ ポリシーが参照され、その結果クライアントに処理を続行するパーミッションが与えられるか、リクエストが拒否されます。図 2-1 を参照してください。
図 2-2 に、ロールとポリシーの作成方法と、Security サービスがそれらを使用してクライアントからリソースにアクセスできるかどうかを決定する方法を示します。図の後には簡単な説明を記載します。
ドメイン内のリソースを保護する一連のロールとポリシーは、次のような手順で設計できます。
特定のドメインに含められるリソースのタイプの一覧については、「WebLogic リソースのタイプ」を参照してください。
config.xml
) に定義されている他のコンポーネントのコンフィグレーションの変更といった作業を、誰が行うのかを決定します。これらのタスクについては階層化された詳細なセキュリティ方式があらかじめ用意されていて、それによって 4 つのセキュリティ ロール (Admin、Deployer、Operator、Monitor) に対しさまざまなタイプのアクセスが付与されます。ほとんどの環境においては、このセキュリティ方式で十分に対応できます。その場合、必要な作業は上記の 4 つのデフォルト セキュリティ ロールに適切にユーザを割り当てることだけです (手順 3 を参照)。
この階層化されたセキュリティ方式は部分的に変更することもできますが、そうした変更は通常であれば必要ありません。変更する場合には、別のレイヤとの間で一貫性を維持するために綿密な計画を立てる必要があります。「管理リソース」および「サーバ リソース」を参照してください。
J2EE プラットフォームでは、以前から Web アプリケーションと EJB を保護するための標準モデルが提供されています。この標準モデルでは、開発者がロール マッピングやポリシーを Web アプリケーションまたは EJB のデプロイメント記述子に定義します。
この標準モデルまたは Administration Console を使用してポリシーとロールを定義でき、それによって統合的で動的なセキュリティ管理が可能になります。「Web アプリケーションおよび EJB リソースの保護のオプション」を参照してください。
グローバル ポリシーは、あるリソース タイプの全インスタンスに適用されます。たとえば、アプリケーション リソース タイプにグローバル ポリシーを定義すると、そのポリシーはドメイン内のすべてのアプリケーションに適用されます。
スコープ指定ポリシーは、特定のリソース インスタンスに適用されます。リソースに子リソースが含まれる場合、スコープ指定ポリシーはすべての子リソースにも適用されます。たとえば、EAR1 というエンタープライズ アプリケーションに対してスコープ指定ポリシーを作成すると、そのポリシーは EAR1 とそれに含まれる全モジュールにのみ適用されます。
「セキュリティ ポリシー」を参照してください。
「ユーザ、グループ、セキュリティ ロール」を参照してください。
ロールとポリシーのどちらを使用しても実行時に一連の条件を評価できます。そのため、セキュリティ データのどの部分を静的とし、どの部分を動的とするかを検討する必要があります。たとえば、あるリソースへのアクセスを 1 つの特定のロールに常に許可するポリシーが複数必要な場合には、ロールの定義で条件を使用して、必要に応じてそのロールにユーザを追加したり削除したりするようにします。一方で、静的なロールを定義して、時間に応じてさまざまなロールにアクセスを許可するポリシーを作成する方式が適していることもあります。
一般的なガイドラインとしては、リソースにアクセスできるエンティティ (ロール) ではなく、リソースに基づいて認可判定を行う場合には、セキュリティ ポリシーに条件を追加します。リソースに誰がアクセスできるのかということに基づいて認可を行う場合には、セキュリティ ロールに条件を追加します。
リソースに誰がアクセスできるのかに基づく認可の例として、管理者 (manager) が休暇を取る場合を検討します。このような場合、あるユーザを一時的に Manager
セキュリティ ロールに設定できます。このセキュリティ ロールを動的に付与することで、こうした一時的な措置のためにアプリケーションを変更したり再デプロイしたりする必要がなくなり、その一時的な管理者が特別な特権を持つ時間を指定するだけで済むようになります。さらに、本来の管理者が戻ってきても、ユーザを一時的に管理者グループに追加した場合のように、特別な特権を取り消す必要もありません。
![]() ![]() |
![]() |
![]() |