BEA ホーム | 製品 | dev2dev | support | askBEA |
![]() |
![]() |
|
![]() |
e-docs > WebLogic Server > Web アプリケーションのアセンブルとコンフィグレーション > Web アプリケーションでのセキュリティのコンフィグレーション |
Web アプリケーションのアセンブルとコンフィグレーション
|
Web アプリケーションでのセキュリティのコンフィグレーション
この章では、Web アプリケーションでセキュリティをコンフィグレーションする方法について説明します。
WebLogic Server セキュリティの概要、アップグレード、および新情報については、『WebLogic Security プログラマーズ ガイド』を参照してください。
Web アプリケーションでのセキュリティのコンフィグレーションの概要
Web アプリケーションにセキュリティを設定するには、認証を使用するか、Web アプリケーション内の特定のリソースへのアクセスを制限するか、またはサーブレット コードでセキュリティの呼び出しを使用します。複数のタイプのセキュリティ レルムを使用できます。セキュリティ レルムの詳細については、「セキュリティの基礎概念」を参照してください。セキュリティ レルムは複数の仮想ホスト間で共有されることに注意してください。
Web アプリケーションの認証をコンフィグレーションするには、web.xml デプロイメント記述子の <login-config> 要素を使用します。この要素では、ユーザの資格が収められるセキュリティ レルム、認証方式、および認証用リソースの場所を定義します。セキュリティ レルムの詳細については、「セキュリティの基礎概念」を参照してください。
アプリケーションのデプロイメント時に、WebLogic Server は weblogic.xml ファイルからロール情報を読み込みます。この情報は、セキュリティ レルムでコンフィグレーションされた認証プロバイダに格納するために使用します。ロール情報が認証プロバイダに格納された後は、WebLogic Server Administration Console を通じて行われた変更は weblogic.xml ファイルに保持されません。アプリケーションを再デプロイする前に (コンソールを使用して再デプロイするか、ディスク上で変更を行うか、WebLogic Server を再起動するときに行われる)、[セキュリティ|レルム|一般] タブで [デプロイメント記述子内のセキュリティ データを無視] 属性を有効にする必要があります。そうしないと、WebLogic Server Administration Console を通じて行われた変更が weblogic.xml ファイルの古いデータで上書きされます。
Web アプリケーション用の認証を設定するには、次の手順を実行します。
<input type=”password” name=”j_password”>
デフォルトでは、WebLogic Server はすべての Web アプリケーションに同じクッキー名 (JSESSIONID) を割り当てます。どの種類の認証を使用する場合でも、同じクッキー名を使用する Web アプリケーションでは、認証用に 1 つのサインオンを使用します。ユーザが認証されると、その認証は、同じクッキー名を使用するすべての Web アプリケーションへのリクエストに対して有効になります。ユーザは再び認証を要求されることはありません。
Web アプリケーションごとに個別の認証が必要な場合は、Web アプリケーションにユニークなクッキー名またはクッキー パスを指定できます。CookieName パラメータでクッキー名を指定し、CookiePath パラメータでクッキー パスを指定します。これらのパラメータは、<session-descriptor> 要素の WebLogic 固有のデプロイメント記述子 weblogic.xml で定義されています。詳細については、jsp-descriptorを参照してください。
クッキー名を保持しつつ Web アプリケーションごとに別々の認証が必要な場合は、Web アプリケーションごとにクッキー パラメータ (CookiePath) を変えることができます。
サービス パック 3 では、セッション データを失うことなく、HTTP を使用して開始されたセッションで HTTPS リソースにユーザが安全にアクセスできるようにする新機能が追加されました。 この新機能を有効にするには、config.xml の WebServer 要素に AuthCookieEnabled="true" を追加します。
<WebServer Name="myserver" AuthCookieEnabled="true"/>
AuthCookieEnabled を true に設定すると、HTTPS 接続を介して認証するときに、WebLogic Server インスタンスはブラウザに新しいセキュアなクッキーを送信します。 一度セキュアなクッキーを設定すると、セッションはクッキーがブラウザから送信された場合にしかセキュリティ制約のある他の HTTPS リソースにアクセスできません。
Web アプリケーションの特定のリソース (サーブレット、JSP、または HTML ページ) へのアクセスを制限するには、それらのリソースにセキュリティ制約を適用します。
セキュリティ制約をコンフィグレーションするには、次の手順に従います。
web.xml entries:
<security-constraint>
<web-resource-collection>
<web-resource-name>SecureOrdersEast</web-resource-name>
<description>
Security constraint for
resources in the orders/east directory
</description>
<url-pattern>/orders/east/*</url-pattern>
<http-method>POST</http-method>
<http-method>GET</http-method>
</web-resource-collection>
<auth-constraint>
<description>
constraint for east coast sales
</description>
<role-name>east</role-name>
<role-name>manager</role-name>
</auth-constraint>
<user-data-constraint>
<description>SSL not required</description>
<transport-guarantee>NONE</transport-guarantee>
</user-data-constraint>
</security-constraint>
...
javax.servlet.http.HttpServletRequest.isUserInRole(String role) メソッドを使用すると、サーブレット コード中のユーザとロールにプログラム的にアクセスできるようサーブレットを記述できます。文字列 role は、Web アプリケーション デプロイメント記述子の <servlet> 宣言の <security-role-ref> 要素の中にネストされた <role-name> 要素に指定された名前にマップされます。<role-link> 要素は、Web アプリケーション デプロイメント記述子の <security-role> 要素で定義された <role-name> に対応します。
コード リスト 5-2 セキュリティ ロール マッピングの例
Servlet code:
isUserInRole("manager");
web.xml entries:
<servlet>
. . .
<role-name>manager</role-name>
<role-link>mgr</role-link>
. . .
</servlet>
<security-role>
<role-name>mgr</role-name>
</security-role>
weblogic.xml entries:
<security-role-assignment>
<role-name>mgr</role-name>
<principal-name>al</principal-name>
<principal-name>george</principal-name>
<principal-name>ralph</principal-name>
</security-role-ref>
![]() |
![]() |
![]() |
![]() |
||
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |