ナビゲーションをスキップ

セキュリティ

  前 次 前/次ボタンと目次ボタンとの区切り線 目次  

WebLogic Portal のセキュリティ

 


概要

このガイドでは、ポータル アプリケーションとアプリケーション リソースを保護するためのガイドラインを示します。

BEA WebLogic Portal® のセキュリティには、BEA WebLogic Server のセキュリティ機能を利用します。WebLogic Server は、J2EE セキュリティ サービスをサポートおよび拡張しています。J2EE セキュリティ サービスは、他の J2EE コンポーネントと同様に、標準化されたモジュール コンポーネントに基づいています。WebLogic Server は、標準に従ってこれらの Java セキュリティ サービス メソッドを実装しており、アプリケーションの多くの細かい動作を自動的に処理する拡張機能を追加しています。さらにプログラミングをする必要はありません。WebLogic Server のセキュリティの詳細については、WebLogic Server のセキュリティのドキュメントを参照してください。

この章の内容は以下のとおりです。

 


認証

認証とは、身元の確認であり、「ユーザが、名乗っている本人かどうか」という質問に答えることです。

認証は通常、ログイン プロセスを使用して行われます。ログイン時にユーザが、ユーザ名とパスワードの組み合わせなどの資格情報を提示します。ユーザが認証されると、ID のセット (ユーザ名とユーザのグループ メンバシップなど) がユーザに関連付けられます。これらの ID は「プリンシパル」ともいいます。

認証プロバイダ

認証プロバイダは、ユーザの身元を確認します。また、必要に応じて、その身元情報を記憶し、「サブジェクト」 (認証情報を格納するコンテナ) を通じてシステムのさまざまなコンポーネントに転送して使用できるようにします。認証プロセスでは、プリンシパル検証プロバイダが、サブジェクトに格納されたプリンシパルに署名し、その信頼性を検証することで、追加のセキュリティ保護を提供します。

WebLogic Server には、組み込み LDAP サーバ、外部 LDAP ストア、および外部リレーショナル データベース管理システム (RDBMS) 内のユーザおよびグループ データにアクセスできる独自の認証プロバイダが用意されています。WebLogic Portal と WebLogic Server は、組み込み LDAP サーバをデフォルト認証プロバイダとして使用しますが、WebLogic Portal には独自の RDBMS 認証プロバイダも用意されています。

WebLogic Portal は認証に WebLogic Server を使用します。1 つまたは複数の WebLogic 認証プロバイダを使用しているか、1 つまたは複数のカスタム認証プロバイダが WebLogic Server にコンフィグレーションされているか、または WebLogic プロバイダとカスタム プロバイダを組み合わせて使用しているかは関係ありません。

ID アサーション プロバイダとシングル サインオン

ID アサーション プロバイダは、ユーザまたはシステム プロセスが「トークン」 (セキュリティ関連情報を表す) を使用して身元を明示できるようにするための認証プロバイダです。ID アサーション プロバイダは、境界認証を可能にし、シングル サインオン (SSO) をサポートします。たとえば、ID アサーション プロバイダは、デジタル証明書からトークンを生成できます。そのトークンをシステム内で順に回すことで、ユーザが何度もサインオンを求められないようにすることができます。

ID アサーション プロバイダの LoginModule を作成すると、認証プロバイダの代わりに ID アサーション プロバイダを使用できます。認証プロバイダの LoginModule を使用する場合は、認証プロバイダに加えて ID アサーション プロバイダを使用できます。

Web アプリケーションは多くの場合、多数のコンポーネントで構成されており、コンポーネントごとに固有の認証スキームまたはユーザ レジストリを持っている場合があります。SSO では、これらのアプリケーションのユーザが 1 回認証されれば、アプリケーションのすべてのコンポーネントにアクセスできるようになります。SSO コンフィグレーションに組み込まれている 1 つのサイトでユーザが一度認証されると、その SSO コンフィグレーション内のその他のサイトに自動的にログインした状態になります。

WSRP ID アサータはこの機能を提供します。

 


認可

認可とは、リソースへのアクセスの制御であり、「ユーザはこの保護されたリソースへのアクセス権を持っているか」という質問に答えることです。ユーザとリソース間の対話を、ユーザ ID などの情報に基づいて制御します。

WebLogic Portal では (WebLogic Server と同様に)、ポータル リソース、J2EE リソース、および管理ツールへのアクセスをロールで制御します。そのため、ユーザは、割り当てられたロールに許可されているリソースやツールにのみアクセスできます。WebLogic Portal では WebLogic Server のロールを使用し、ログイン時にユーザをロールに動的に結び付けることができます。

認可プロバイダ

認可プロバイダは、ユーザとリソース間の対話を制御し、機密性を確保します。Access Decision は、認証プロバイダの LoginModule と同様に、認可プロバイダのコンポーネントであり、リソースへのアクセスが許可されるかどうかを決定します。具体的には、サブジェクトが指定のアクションを WebLogic リソースに対して実行するパーミッションを持っているかどうかを判断します。isAccessAllowed メソッドの実行時呼び出しによって、サブジェクトのセキュリティ ロールに基づいてこの判断が行われます。

このメソッドは以下のいずれかの値を返します。

PERMIT — 要求されたアクセスが許可されていることを示します。

DENY — 要求されたアクセスが明示的に拒否されていることを示します。

ABSTAIN — 明示的な判断が行われなかったことを示します。

ロール マッピング プロバイダ

ロール マッピングは、実行時にプリンシパル (ユーザまたはグループ) がセキュリティ ロールに動的にマッピングされるプロセスです。ロール マッピング プロバイダは、サブジェクトがリソースに対して操作を行おうとしたときにサブジェクトに適用されるセキュリティ ロールを決定します。この操作には通常リソースへのアクセスが伴うため、ロール マッピング プロバイダは一般に認可プロバイダと共に使用されます。

デフォルトのロール マッピング プロバイダは WebLogic ロール マッパーです。組み込み LDAP サーバにロール ポリシーを格納します。

ロールとロール ポリシー

セキュリティ ロールは、特定の条件に基づいてユーザまたはグループに付与される権限です。ロールを使用すると、リソースへのアクセスを付与するか拒否するかを決定したり、そのリソースの機能のうち、どれをユーザが使用できるようにするかを決定できます。ロールをユーザまたはグループに付与すると、ロールが付与されている限り、定義されたアクセス権限がそのユーザまたはグループに与えられます。1 つのロールを付与できるユーザまたはグループの数に制限はありません。

ロールの計算とユーザまたはグループへの付与は、ロール名とロール定義で構成されるロール ポリシーに基づいて動的に行われます。ロール ポリシーは動的なものであり、ユーザ名、グループ メンバシップ、ユーザ プロファイル プロパティ値、セッション属性とリクエスト属性、および日付と時刻の機能に基づきます。

常に WebLogic Server ドメイン全体にスコープ指定されるグループとは異なり、ロールは WebLogic Server ドメインの 1 つのアプリケーション内の特定の WebLogic リソースにスコープ指定できます。

詳細については、WebLogic Server のセキュリティのドキュメントの『WebLogic リソースのセキュリティ』を参照してください。

セキュリティ ポリシー

セキュリティ ポリシーとは、「ある WebLogic リソースにアクセスできるのは誰か」という質問に対する答えです。WebLogic リソースと 1 つまたは複数のユーザ、グループ、またはロールとの間に関連付けを定義すると、セキュリティ ポリシーが作成されます。したがって、ロール ポリシーがロールを定義し、そのロールに関連付けられる認可制約をセキュリティ ポリシーが定義します。

セキュリティ ポリシーは、ユーザまたはグループではなく、ロール ベースにすることをお勧めします。セキュリティ ポリシーをロール ベースにすると、ユーザまたはグループに付与されたロールに基づいてアクセスを管理することができます。この方法で、より柔軟な管理が可能です。セキュリティ ポリシーは、認可プロバイダのストア (デフォルトでは組み込み LDAP サーバ) に保持されます。

セキュリティ ポリシーをユーザまたはグループ ベースにする場合、そのユーザまたはグループが、デフォルトのセキュリティ レルムにコンフィグレーションされた認証プロバイダのユーザ ストア内に定義されている必要があります。セキュリティ ポリシーをロール ベースにする場合、そのロールが、デフォルトのセキュリティ レルムにコンフィグレーションされたロール マッピング プロバイダのストア内に定義されている必要があります。

詳細については、WebLogic Server のセキュリティのドキュメントの『WebLogic リソースのセキュリティ』を参照してください。

デプロイメント記述子

J2EE プラットフォームでは、セキュリティ コントラクトの確立方法をデプロイメント記述子というドキュメントに定義します。デプロイメント記述子により、URL を使用して直接アクセスできるリソースへのアクセスを制限します。デプロイメント記述子を使用して、JSP やページ フローなどのポートレット リソースを保護する必要があります。そうしない場合、それらの URL を知っていれば誰でも直接アクセスできます。デプロイメント記述子に定義されるロールは、ユーザおよびグループ ベースです。

デプロイメント記述子によるポータル アプリケーション リソースの保護については、「ポートレット リソースへの直接アクセスの防止」を参照してください。

ポータル アプリケーション リソースは、時間帯やユーザ プロファイル プロパティ値などの実行時制約に基づいて保護することもできます。ロール ベースのセキュリティ ポリシーによるこれらの実行時制約の設定については、WebLogic Workshop オンライン ヘルプを参照してください。

 


監査

監査は、否認を防止するために、操作要求とその要求の結果に関する情報を収集、保存、および配布するプロセスです。つまり、監査は、コンピュータ アクティビティの電子的な記録を提供します。WebLogic Server のセキュリティ アーキテクチャでは、監査サービスを提供する監査プロバイダが使用されます。

WebLogic セキュリティ フレームワークがコンフィグレーションされている場合、セキュリティ操作 (認証や認可など) の実行前後に認可プロバイダが呼び出されます。特定のイベントを監査するかどうかの決定は、監査プロバイダ自身が、特定の監査条件や重要度に基づいて行います。

セキュリティ レルムで、WebLogic 監査プロバイダまたはカスタム監査プロバイダのどちらでも使用できます。監査プロバイダはセキュリティ レルムごとにコンフィグレーションしますが、各サーバはサーバ ディレクトリの自身のログ ファイルに監査データを書き込みます。デフォルトでは、WebLogic 監査プロバイダで記録された監査情報はすべて、以下のファイルに保存されます。

WL_HOME\yourdomain\yourserver\DefaultAuditRecorder.log

ただし、カスタム監査プロバイダを作成することで、監査情報を含むレコードの送信先として、LDAP サーバ、データベース、単なるファイルなど、さまざまな出力リポジトリから選択することができます。

監査プロバイダをコンフィグレーションして監査を有効にするには、WebLogic Server のセキュリティのドキュメントの「WebLogic 監査プロバイダのコンフィグレーション」を参照してください。

 


WebLogic Portal 固有のセキュリティ拡張機能

この節では、ロール ベースのアクセス制御に関する WebLogic Portal 固有の拡張機能の概要を示します。ユーザを次の 2 つのカテゴリに分けて、ポータル リソースへのアクセスを制御できます。

訪問者の資格

訪問者資格を使用して、ポータル アプリケーション内のリソースにどのユーザがアクセスできるか、そのリソースに対してユーザが何をできるかを決定します。アクセス権は、ポータル訪問者に割り当てられたロールに基づき、これによって柔軟なポータル リソース管理が可能になります。

たとえば、「従業員レビュー」というポートレットがあり、マネージャのみがアクセスできるようにする場合、「マネージャ」という訪問者資格ロールを作成して、そのロールを割り当てられたユーザのみがポートレットを表示できるように資格を設定できます。

ポータル訪問者は、ユーザ名、グループ メンバシップ、ユーザ プロファイル プロパティ値、セッション属性とリクエスト属性、および日付と時刻の機能に基づいてロールが割り当てられます。たとえば、マイレージ サービスの加入者で前年に 50,000 マイル以上搭乗した訪問者に「ゴールド メンバー」ロールを割り当てることなどができます。ロールは、訪問者がサイトにログインしたときに動的に割り当てられます。この例のように、訪問者資格によりパーソナライゼーションも可能になります。

訪問者資格ロールがない場合のデフォルトの動作では、すべての訪問者がポータルおよびポータル リソースにアクセスできます。

委託管理

委託管理は、WebLogic Portal Administration Console へのセキュアな管理アクセスを提供します。管理者は WebLogic Portal Administration Console を使用して、ポータル、デスクトップ、シェル、ブック、ページ、レイアウト、ルック アンド フィール、およびポートレットを作成および管理できます。委託管理ロールは、ユーザ名、グループ メンバシップ、ユーザ プロファイル プロパティ値、セッション属性とリクエスト属性、および日付と時刻の機能に基づくポータル管理者の分類です。

組織では、管理者ごとに異なる管理タスクおよびリソースへのアクセス権限を付与する場合があります。委託管理を使用して、WebLogic Portal Administration Console のアクセス権限をロールの階層内で伝播することができます。

たとえば、システム管理者には WebLogic Portal Administration Console のすべての機能にアクセスできる権限を与えます。次に、システム管理者が、ポータルの特定のデスクトップ ビューにあるポータル リソースのインスタンスを管理できる管理者用のポータル管理者ロールを作成します。また、ポータル リソース ライブラリを管理できる管理者用のライブラリ管理者ロールを作成することもできます。

委託管理ロールは、セキュリティ ポリシーを使用してポータル リソースの管理機能にマッピングされます。管理者は、適切な権限を与えることにより、指定されたリソース機能を管理する権限と、委託される側がさらに委託を行う権限の両方を委託できます。

 


ユーザ アカウントの保護

認証の重要な要素として、ログイン失敗の処理方法があります。許可するログイン試行の回数と、ユーザ認証が指定回数失敗した後のログイン プロセスの終了方法をコンフィグレーションできます。

認証プロバイダのプロパティ (User Lockout Manager など) については、「セキュリティ プロバイダのプロパティを表示する」を参照してください。

ユーザ ロックアウト属性 (ロックアウトしきい値やロックアウト期間など) は、WebLogic Server Administration Console を使用して制御します。詳細については、WebLogic Server のドキュメント『WebLogic Security の管理』の「ユーザ アカウントの保護」を参照してください。

ロックされたアカウントをロック解除することもできます。詳細については、WebLogic Server のドキュメント『WebLogic Security の管理』の「ユーザ アカウントのロック解除」を参照してください。

ポータル管理入門」では、ポータル管理の概要と、デフォルト ユーザとしてポータルにログインする方法が説明されています。デフォルト ユーザは、「ポータル アプリケーションをセキュア化する」の「概要」に示されています。

デフォルト ユーザ、グループ、およびロールの詳細については、WebLogic Platform のドキュメント『WebLogic Platform 8.1 のセキュリティ』の「Platform ドメインに事前にコンフィグレーションされているユーザ、グループ、およびロール」を参照してください。これらのアカウントのパスワードを管理および保護する必要があります。

注意 : プロダクション環境では特に、すべての管理者パスワードをデフォルト値から変更することをお勧めします。ユーザおよび管理者アカウントのパスワード管理の詳細については、WebLogic Server ドキュメント『プロダクション環境のセキュリティ』の「プロダクション環境のセキュリティの確保」を参照してください。

 


プロダクション環境の保護 : 管理者向けガイダンス

この節では、WebLogic Portal プロダクション環境のセキュアな運用を実現するために考慮する必要がある重要事項を説明します。

管理者は、WebLogic Server のセキュリティのドキュメントの『プロダクション環境のセキュリティ』のガイダンスに従って、ホスト、ネットワーク接続、データベース、アプリケーションなど、WebLogic Server 環境のあらゆる要素を適切に保護する必要があります。

セキュアな WebLogic Platform 環境を確保するためのその他のガイダンスについては、「WebLogic Platform セキュリティの管理」を参照してください。

 


ポートレット リソースへの直接アクセスの防止

WebLogic Portal Administration Console の訪問者資格を使用して、ポータル リソースへの訪問者アクセスを制御できます。ただし、デプロイメント記述子を使用して、ポートレットに含まれる JSP とページ フローも保護する必要があります。そうしない場合、それらのリソースの正しい URL を知っていれば、悪意のあるユーザもリソースにアクセスできます。

J2EE セキュリティを使用して、JSP とページ フローへの直接アクセスを防止する必要があります。そうしない場合、ユーザは正しい URL を入力することでそれらのリソースに直接アクセスすることができます。

注意 : 記述子によるセキュリティの目的は、URL を使用した JSP またはページ フローへの直接アクセスを防止することだけです。ポータルでポートレットを表示する場合は使用されません。

スコープ指定ロールは、それぞれのデプロイメント記述子で定義されています。

JSP の URL の例 :

http://emp_app/employmentPortal/portlets/hr/vpSalaries.jsp

ポータル リソースへの直接アクセスを防ぐには、ポータル Web プロジェクトの /WEB-INF/web.xml ファイルにセキュリティ エントリを追加します。たとえば、次のように入力します。

<!-- 宣言型セキュリティを使用して、ポートレットへの直接アクセスを防ぎます。 -->
	<security-constraint>
		<display-name>Default Portlet Security Constraints</display-name>
		<web-resource-collection>
			<web-resource-name>Portlet Directory</web-resource-name>
			<url-pattern>/portlets/*</url-pattern>
			<http-method>GET</http-method>
			<http-method>POST</http-method>
		</web-resource-collection>
		<auth-constraint>
			<role-name>Admin</role-name>
		</auth-constraint>
		<user-data-constraint>
			<transport-guarantee>NONE</transport-guarantee>
		</user-data-constraint>
	</security-constraint>

web.xml ファイルに追加されたセキュリティ エントリが、要求 URL によるポータル Web プロジェクトの /portlet ディレクトリとそのサブディレクトリ内にあるすべてのファイルへの直接アクセスを防ぎます。

これらの保護されたリソースは、資格を付与されたポートレットでは引き続き表示されますが、それらのポートレットにアクセスできるのは、その資格を与えられたユーザのみです。

警告 : /portlets/*.jsp の <url-pattern> は、無効な構文ではあるためサブディレクトリは保護されません。

セキュリティ制限が不要な画像などのリソースは、/portlets ディレクトリの外の保護されていないディレクトリに格納する必要があります。

 


ポータル リソース定義ラベルの直接編集の防止

定義ラベルを編集する機能がありますが、WebLogic Workshop を使用してポータル リソースを作成したら定義ラベルは編集しないことを強くお勧めします。定義ラベルを変更すると、保護されているリソースが外部にさらされたり、WSRP (定義ラベルをポートレット ハンドルとして使用) が壊れるなど、予期しない影響が及ぶことがあります。

 

ページの先頭 前 次