例 : Administration Console を使用した URL (Web) リソースの保護
この例では、すべてのデプロイ済み Web アプリケーションへのアクセスを、デフォルト グローバル セキュリティ ロールが付与されているユーザに制限します。次に、basicauth Web アプリケーションへのアクセスを別のユーザに制限します。最後に、スコープ ロールを使用して、Web アプリケーション内の特定の JSP (welcome.jsp) に対するセキュリティをさらに強化します。
注意: この例に進む前に、URL リソースおよび EJB リソースを保護する方法、URL リソースおよび EJB リソースを保護するための前提条件、およびセキュリティ ロールのタイプ : グローバル ロールとスコープ ロールに目を通しておいてください。
WebLogic Server Administration Console を使用して URL (Web) リソースを保護するには、次の手順に従います。
手順 1 : サーバと前提設定を指定する
- fullyDelegateAuthorization フラグの変更方法の指示に従って、fullyDelegateAuthorization フラグを true に設定します。
注意: この設定の意味 : すべての URL (Web) および EJB リソースに対して WebLogic Security サービスによるセキュリティ チェックを実行するように WebLogic Server に指示します。 詳細については、fullyDelegateAuthorization フラグについてを参照してください。
- Windows の [スタート] メニューから、[プログラム|BEA WebLogic Platform 7.0|WebLogic Server 7.0|Server Tour and Examples|Launch Examples Server] を選択して examplesServer というサーバを起動します。
examplesServer が起動するとコンソールにfullyDelegateAuthorization フラグが表示され、ブラウザに [BEA WebLogic Server Out-of-the-Box Examples Index Page] が表示されます。
- [BEA WebLogic Server Out-of-the-Box Examples Index Page] の上部にある [ Administration Console] リンクをクリックします。
- [サインイン] ボタンをクリックして examplesServer の Administration Console にサインインします。
- Administration Console の左側のナビゲーション ツリーを使用して、[セキュリティ|レルム] を展開します。
- myrealm セキュリティ レルムをクリックします。
- [一般] タブで、[デプロイメント記述子内のセキュリティ データを無視] チェック ボックスをクリックします(つまり、ボックスにチェック マークを入れます)。
注意: この設定の意味 : Administration Console を使用して、Web アプリケーションおよび EJB リソースのセキュリティを設定するように WebLogic Server に指示します。 詳細については、[デプロイメント記述子内のセキュリティ データを無視] チェック ボックスについてを参照してください。
- [適用] をクリックして変更を保存します。
手順 2 : ユーザを作成する
- Administration Console の左側のナビゲーション ツリーを使用して、[セキュリティ|レルム] を展開します。
- myrealm セキュリティ レルムを展開します。
- [ユーザ] をクリックします。
[ユーザを選択] には、WebLogic 認証プロバイダのデータベースで現在定義されているすべてのユーザが表示されます。
- [新しいユーザのコンフィグレーション] リンクをクリックして、[ユーザの作成] ページを表示します。
- [一般] タブの [名前] フィールドに Tom と入力します。
- 必要な場合は、[記述] フィールドにユーザの説明を入力します。
- [パスワード] および [パスワードの確認] フィールドに webexample と入力します。
- [適用] をクリックして変更を保存します。
- 手順 4 から 8 を繰り返して Neil というユーザを作成します。
- ナビゲーション ツリーを使用して [ユーザ] をクリックし、ユーザ Tom および Neil が追加されていることを確認します。
[ユーザを選択] ページを表示すると、Tom と Neil が WebLogic 認証プロバイダのデータベースに追加されていることがわかります。
手順 3 : ユーザをグループに追加する
注意: 新しいグループを作成する代わりに、ここでは WebLogic Server のデフォルト グループの 1 つを使用します。
- [ユーザを選択] ページで、ユーザ名 Tom のリンクをクリックします。
- [グループ] タブをクリックします。
- [指定できるグループ] リスト ボックスで、Administrators グループをクリックして強調表示します。
- 強調表示された右矢印をクリックして、[指定できるグループ] リスト ボックスから [現在のグループ] リスト ボックスに Administrators グループを移動します。
- [適用] をクリックして変更を保存します。
注意: Neil は Administrators グループに追加しないでください。
手順 4 : グループにグローバル ロールを付与する
注意: Administrators というデフォルト グループには Admin というデフォルト グローバル ロールが自動的に付与されるため、グローバル ロールを作成したり、そのグローバル ロールを Administrators グループに付与したりする必要はありません。
ただし、グループにグローバル ロールが付与されていることを確認する場合は、次の手順に従います。
- ナビゲーション ツリーを使用して [ロール] をクリックします。
[ロールの選択] ページには、WebLogic ロール マッピング プロバイダのデータベースで現在定義されているすべてのグローバル ロールが表示されます。
- グローバル ロール名 Admin のリンクをクリックします。
- [条件] タブをクリックします。
[ロール文] リスト ボックスに次のように表示されます。
呼び出し側をメンバとするグループは
Administrators
手順 5 : グローバル ロールを使用してすべての URL (Web) リソースのセキュリティ ポリシーを作成する
- ナビゲーション ツリーを使用して、[デプロイメント] を展開してから、[Web アプリケーション] を右クリックします。
- メニューから [ポリシーを定義] オプションを選択して、ポリシー エディタ ページを表示します。
注意: このオプションの意味 : すべてのデプロイ済み Web アプリケーションとそのコンポーネントを対象とするセキュリティ ポリシーを作成します。
- [ポリシー条件] リスト ボックスで、[呼び出し側に許可するロールは] を強調表示します。
- [追加] をクリックして [ロール] ウィンドウを表示します。
- [ロール名の入力] フィールドに Admin と入力します。
- [追加] をクリックしてから [OK] をクリックします。
[ロール] ウィンドウが閉じます。[ポリシー文] リスト ボックスに次のように表示されます。
呼び出し側をメンバとするグループは
Everyone
and 呼び出し側に許可するロールは
Admin
注意: 表示される [呼び出し側をメンバとするグループは] ポリシー条件は、URL リソースのデフォルト セキュリティ ポリシーの一部です。 詳細については、デフォルト セキュリティ ポリシーを参照してください。
- [呼び出し側をメンバとするグループは] ポリシー条件を強調表示し、[削除] をクリックします。
[ポリシー文] リスト ボックスに次のように表示されます。
呼び出し側に許可するロールは
Admin
- [適用] をクリックして変更を保存します。
手順 6 : Web アプリケーションへのアクセスを試行する
注意: この節で説明する手順はすべて、Windows 環境での作業を想定しています。
- 「Basic Authentication Sample Web Application」を入手します (dev2dev Web サイトの「Code Samples: Weblogic Server 」からダウンロード可)。
- basicauth.zip ファイルを一時ディレクトリ (C:¥basicauth など) に展開します。
- basicauth Web アプリケーションをデプロイして、examplesServer に割り当てます。
注意: Web アプリケーションをデプロイする手順については、『WebLogic Server アプリケーションの開発』の「Administration Console を使用した J2EE アプリケーションのデプロイ」を参照してください。
- Web ブラウザを開いて http://localhost:7001/basicauth と入力します。
ユーザ名とパスワードを要求されます。
- ユーザ名フィールドに Neil、パスワード フィールドに webexample と入力して、[OK] をクリックします。
ユーザ名とパスワードを再び要求されます。
- ユーザ名フィールドに Tom、パスワード フィールドに webexample と入力して、[OK] をクリックします。
ブラウザに図 6-1 のようなページが表示されます。
図6-1 ブラウザベースの認証サンプルの Web ページ
グローバル セキュリティ ロール Admin (ユーザ Tom は付与されているが、ユーザ Neil は付与されていない) に基づいたセキュリティ ポリシーによって、(basicauth Web アプリケーションを含む) すべての URL (Web) リソースを保護したため、このような結果になります。
注意: この手順の後に誤って Web ブラウザを閉じてしまった場合は、http://localhost:7001/console と入力し、[サインイン] ボタンをクリックすると Administration Console に戻ります。WebLogic Server を実行しているコンソール ウィンドウを誤って閉じてしまい、手順 1 : サーバと前提設定を指定するの手順 1 から 3 を実行しようとする場合、まず Tom/webexample を使用してログインする必要があります。この手順ですべての Web アプリケーションを保護すると、examplesWebapp も保護されるからです。
手順 7: basicauth Web アプリケーションへのアクセスを制限する
- Administration Console の左側のナビゲーション ツリーを使用して、[Web アプリケーション] を展開してから、basicauth を右クリックします。
- メニューから [ポリシーを定義] オプションを選択します。
注意: このオプションの意味 : 特定の Web アプリケーションまたは Web アプリケーション内の特定のコンポーネントに対してセキュリティ ポリシーを作成できます。
- [一般] タブの [URL パターン] フィールドに /* を入力します。
注意: /* という URL パターンを使用すると、basicauth Web アプリケーション内のすべてのコンポーネント (JSP とサーブレットを含む) が保護されます。
- [ポリシーを定義] ボタンをクリックして続行します。
- [ポリシー条件] リスト ボックスで、[呼び出し側のユーザ名は] を強調表示します。
注意: [Methods] ドロップダウン メニューに表示される値は変更しないでください (ALL と表示されています)。
- [追加] をクリックして [ユーザ] ウィンドウを表示します。
- [ユーザ名の入力] フィールドに Neil と入力します。
- [追加] をクリックしてから [OK] をクリックします。
[ユーザ] ウィンドウが閉じます。[ポリシー文] リスト ボックスに次のように表示されます。
呼び出し側のユーザ名は
Neil
注意: basicauth Web アプリケーションのセキュリティ ポリシーを定義すると、手順 5 : グローバル ロールを使用してすべての URL (Web) リソースのセキュリティ ポリシーを作成する.ですべての URL (Web) リソースに対して定義したセキュリティ ポリシーがオーバライドされることに注意してください。
呼び出し側に許可するロールは
Admin
上記は [継承されたポリシー文] リスト ボックスに表示されます。
- [適用] をクリックして変更を保存します。
- 手順 6 : Web アプリケーションへのアクセスを試行するの 4 から 6 を繰り返します。
basicauth Web アプリケーションの動作は反対になります。 つまり、ユーザ Tom として basicauth Web アプリケーションにアクセスしようとすると、ユーザ名とパスワードを再び要求されます。 ユーザ Neil としてアクセスすると、ブラウザには図 6-1 で示したページが表示されますが、「Welcome Neil」と表示されます。
特定のユーザ (このケースではユーザ Neil) に基づくセキュリティ ポリシーによって basicauth Web アプリケーション内のすべてのコンポーネントを保護したため、このような結果になります。
手順 8 : スコープ ロールを作成する
- Administration Console の左側のナビゲーション ツリーを使用して、basicauth を右クリックします。
- メニューから [ロールを定義] オプションを選択します。
注意: このオプションの意味 : 特定の Web アプリケーションを対象とするセキュリティ ロールを作成できます。それ以降、そのスコープ ロールはこの Web アプリケーションのセキュリティ ポリシーでのみ使用されます。
- [一般] タブの [URL パターン] フィールドに /* を入力します。
注意: /* という URL パターンを使用すると、セキュリティ ロールの対象は basicauth Web アプリケーション内のすべてのコンポーネント (JSP とサーブレットを含む) になります。
- [ロールを定義] ボタンをクリックして続行します。
- [新しい Role のコンフィグレーション] リンクをクリックして、[ロールを作成] ページを表示します。
- [一般] タブの [名前] フィールドに AppAdmin と入力します。
- [適用] をクリックして変更を保存します。
手順 9 : グループにスコープ ロールを付与する
- [条件] タブをクリックします。
- [ロール条件] リスト ボックスで、[呼び出し側をメンバとするグループは] を強調表示します。
- [追加] をクリックして [グループ] ウィンドウを表示します。
- [グループ名の入力] フィールドに Administrators と入力します。
- [追加] をクリックしてから [OK] をクリックします。
[グループ] ウィンドウが閉じます。[ロール文] リスト ボックスに次のように表示されます。
呼び出し側をメンバとするグループは
Administrators
- [適用] をクリックして変更を保存します。
手順 10 :スコープ ロールを使用してウエルカム JSP へのアクセスを制限する
- Administration Console の左側のナビゲーション ツリーを使用して、basicauth を右クリックします。
- メニューから [ポリシーを定義] オプションを選択します。
注意: このオプションの意味 : 特定の Web アプリケーションまたは Web アプリケーション内の特定のコンポーネントに対してセキュリティ ポリシーを作成できます。
- [一般] タブの [URL パターン] フィールドに /welcome.jsp と入力します。
- [ポリシーを定義] ボタンをクリックして続行します。
- [ポリシー条件] リスト ボックスで、[呼び出し側に許可するロールは] を強調表示します。
注意: [Methods] ドロップダウン メニューに表示される値は変更しないでください (ALL と表示されています)。
- [追加] をクリックして [ロール] ウィンドウを表示します。
- [ロール名の入力] フィールドに AppAdmin と入力します。
- [追加] をクリックしてから [OK] をクリックします。
[ロール] ウィンドウが閉じます。[ポリシー文] リスト ボックスに次のように表示されます。
呼び出し側に許可するロールは
AppAdmin
注意: welcome.jsp に対するこのセキュリティ ポリシーを定義すると、手順 7: basicauth Web アプリケーションへのアクセスを制限する.で basicauth Web アプリケーションに対して定義したセキュリティ ポリシーがオーバライドされることに注意してください。具体的には、以下の継承されたポリシー文がオーバライドされます。
呼び出し側のユーザ名は
Neil
上記の文は、[継承されたポリシー文] リスト ボックスに表示されます。
- [適用] をクリックして変更を保存します。
- 手順 6 : Web アプリケーションへのアクセスを試行するの 4 から 6 を繰り返します。
basicauth Web アプリケーションの動作は反対になります。 つまり、ユーザ Neil として basicauth Web アプリケーションの welcome.jsp にアクセスしようとすると、ユーザ名とパスワードを再び要求されます。 ユーザ Tom としてアクセスすると、ブラウザには図 6-1で示したページが表示されます。
スコープ セキュリティ ロール AppAdmin (ユーザ Tom は付与されているが、ユーザ Neil は付与されていない) に基づいたセキュリティ ポリシーによって、welcome.jsp ページを保護したため、このような結果になります。