WebLogic Portal では、利用可能な任意の認証プロバイダに対して様々な方法でユーザのログインと認証を実装できます。次の各節では、9 つの認証サンプルを紹介します。認証を実装する際に参考にしてください。これらの節は、「チュートリアル ポータル」のサンプルの説明になります。
注意 : このトピックでは、WebLogic Server で使用できるように認証プロバイダをコンフィグレーションした後に認証を実装する方法について説明します。認証プロバイダの設定の詳細については、「WebLogic Portal で複数の認証プロバイダを使用する」を参照してください。
これらのサンプルではポータル Web プロジェクトのルートは、<WEBLOGIC_HOME>/samples/portal/portalApp/tutorial です。サンプル内のパスはこのルートへの相対パスです。これらのサンプルのすべてのリソースとコンフィグレーションは、チュートリアルのポータル Web プロジェクトに含まれています。このプロジェクトでは <WEBLOGIC_HOME>/samples/domains/portal/config.xml サーバ (portalServer) が使用されます。ユーザのドメインとポータル Web プロジェクトでこれらのサンプルを使用するには、サンプルで使用するファイルとコンフィグレーションをインポートするか、同様のファイルとコンフィグレーションを作成します。
このトピックでは、以下のサンプルを取り上げます。
ソースの場所 : /portlets/login/formLogin/
サンプル /WEB-INF/web.xml では、CONFIDENTIAL transport-guarantee が指定されるので、/portlets/login/formLogin/login_link.jsp で redirect.jsp にアクセスする HTTPS URL が作成されるようになります。redirect.jsp は単にポータルにリダイレクトします。このサンプルでは HTTPS のプロトコルが作成されますが、ログイン時に HTTPS のみでユーザ名とパスワードを保護する場合は、redirect.jsp 内で HTTP に変更することもできます。
注意 : web.xml で指定される <form-login-page> URL は、WebLogic Administration Portal でデスクトップを作成する際に、WebLogic Workshop の .portal ファイルからポータルを実行しているか、データベースから組み立てたポータルを実行しているかによって異なります。たとえば、開発環境でファイル ベースのポータル (sample.portal など) を実行している場合、<form-login-page> 要素は
/samplel.portal?_nfpb=true&_pageLabel=login で指定されます。プロダクション環境で組み立てたポータルを実行している場合、<form-login-page> 要素は /appmanager/samplePortal/sampleDesktop?_nfpb=true&_pageLabel=login で指定されます。
ソースの場所 : /portlets/login/clientCert/
クライアント証明書の認可を使用するには
注意 : democlient-cert.p12 はデモンストレーション用に作成されたもので、プロダクション環境には使用できません。openssl を使用して独自の証明書を生成する場合、Web サイト www.openssl.org の手順を参照してください。
次の手順では、WebLogic Server をコンフィグレーションして SSL と democlient-cert を正しく使用できるようにします。
フォームベースのログイン サンプルで SSL を使用するため、一方向 SSL はすでにサーバにコンフィグレーションされています。任意のサーバでクライアント証明書認証を有効にするには、一方向 SSL をコンフィグレーションする必要があります (http://edocs.beasys.co.jp/e-docs/wls/docs81/secmanage/ssl.html にある『WebLogic Security の管理』の「SSL のコンフィグレーション」を参照)。
上記手順を実行したら、ポータルおよび /portlets/login/formLogin/login_link.jsp にアクセスし、クライアント証明書を使用してポータル Web アプリケーションにログインできます。保護されたリソースにアクセスするログイン リンクの使用については、「フォームベースのログイン サンプル」を参照してください。
ソースの場所 : /portlets/login/backingFileLogin/
このサンプルでは、ポータルのパーソナライゼーション コードとバッキング ファイルを使用してログインします (/WEB-INF/src/portlet/login/LoginBacking.java)。データベース状態がコントロール状態によって破壊されないよう、バッキング ファイルはポータルにもリダイレクトします。
ソースの場所 : /portlets/login/pageflowLogin/
このサンプルでは、Java ページ フローを使用して、複数ページのユーザ登録ポートレットがどのように実現されるかを示します。このサンプルには 4 ページあります。
ソースの場所 : /portlets/login/ssoLogin/
これは、2 つの Web アプリケーション間でのシングル サインオンのサンプルです。シングル サインオンが機能するには、web.xml で両方の Web アプリケーションのクッキー名エントリが一致する必要があります。Web アプリケーションのクッキー名が指定されていない場合、デフォルトで同じクッキー名が設定されるため、デフォルトではこの動作が機能します。
ソースの場所 : /portlets/login/autologin/
注意 : このサンプルではクッキーを使用するので、安全な認証方式ではありません。
このサンプルでは、クッキーの使用方法および自動ログインのコード化を説明します。ユーザがログインして [自動ログイン] チェックボックスを選択すると、ユーザ名とパスワードがコード化されます。ユーザ名とパスワードはクッキーとして応答に 1 日の間追加されます。この時点以降、ポータルを閉じ、再度開いても、ユーザは自動的にログインできるようになります。これはブラウザを終了しても同様です。ログアウトした場合、クッキーは削除されるので、ポータルを再度開いても自動的にログインできません。
このサンプルでは、バッキング ファイルを使用します (/WEB-INF/src/portlet/login/AutoLoginBacking.java)。
ソースの場所 : /portlets/login/basicLogin/
このサンプルでは、フォームベースのログインと同じ原理を使用します。基本認証を使用するには、web.xml で FORM ベースの認証方式または CLIENT-CERT ベースの認証方式をコメント解除して、認証の基本方式を使用します。レルム内のデフォルト ユーザの 1 つ (visitor1/password など) を使用してログインできます。
ソースの場所 : /portlets/login/loginRequiredPortal/
このサンプルでは、ユーザの認証後にのみアクセス可能なポータルを示します。これを有効にするには、web.xml ですべての URL リソースに対するセキュリティ制約エントリを追加します。次に例を示します。
<security-constraint> <web-resource-collection> <web-resource-name>login</web-resource-name> <description>ポータル全体のセキュリティ制約</description> <url-pattern>/*</url-pattern> </web-resource-collection> <auth-constraint> <description>すべてのユーザ</description> <role-name>AnonymousRole</role-name> </auth-constraint> </security-constraint>
ソースの場所 : /portlets/login/perimeterLogin/
WebLogic Server の次のドキュメント トピックを参照してください。