原文:2009年3月3日時点の Internationalizing the Sun OpenSSO Enterprise 8.0 Login Page
原文は、docs.sun.com に掲載されているオフィシャルガイド「Internationalizing the Sun OpenSSO Enterprise 8.0 Login Page」の wiki ページ版です。 |
OpenSSO のログインページをカスタマイズする方法
この記事では、OpenSSO Enterprise 8.0(以下、OpenSSO) のログインページのロゴを変更したり、ローカライズされたメッセージテキストを追加表示させたり、見た目をカスタマイズする方法について説明します。機能の点からログインページをカスタマイズする方法については言及しません。
この記事で用いる例では、OpenSSO がサポート対象となっている Web コンテナ(Web サーバーまたはアプリケーションサーバー)に配備済みであることを前提としています。サポート対象となっている Web コンテナの情報については、Sun OpenSSO Enterprise 8.0 リリースノートの「OpenSSO Enterprise 8.0 でサポートされる Web コンテナ」 を参照してください。
始める前に
OpenSSO のログインページをカスタマイズするには、OpenSSO が配備されている web コンテナ内に置かれたファイルを修正します。
それにより、ログインページの見た目や、ログインページに表示されるテキストをカスタマイズすることができます。
このドキュメントでは以下の前提条件のもとでログインページのカスタマイズ方法について説明します。
- OpenSSO が GlassFish v2 アプリケーションサーバーの domain2 に配備されている。
/opt/SUNWappserver/domains/domain2/applications/j2ee-modules/opensso (以下では、これを opensso_deploy_dir と記載します。) - オペレーティングシステムは Solaris である。
- データストア認証モジュールが有効になっている。
- myorg という名前のレルムが作成されている。
修正するファイル
以下の例では、2 つのファイルを修正します。
- Login.jsp
- Datastore.xml (データストア認証モジュール用のファイル)
認証モジュールとして、データストア以外のモジュールを使用する場合にそれに対応する xml ファイルを修正する必要があります。例えば、LDAP 認証モジュールを使用するのであれば、LDAP.xml ファイルを修正します。メンバーシップ認証モジュールを使用するのであれば、Membership.xml を修正します。
Login.jsp は言語間共通のファイルですが、*.xml ファイルは言語固有のファイルですので、{{*.xml} ファイルを修正する場合には、日本語用の xml ファイルを修正する必要があります。
注意すべきこと
ファイルを修正するときには、以下のことに気をつけてください。:
- ソースファイルの先頭部分にあるライセンステキストを削除したり変更しない。
- *.xml ファイルに日本語を書く場合には、UTF-8 エンコーディングで書くこと。
- *.xml ファイルには、エスケープされた Unicode 文字ではなくて、ネイティブな日本語文字列で書くこと。
(例:\u3042\u3044\u3046\u3048\u304a ではなくて、あいうえお と書く。) - *.xml ファイルの文字セットを変更しない。
- *.xml ファイルを修正する際には、XML フォーマットを壊さないようにする。
- *.xml ファイルを修正する際には、ファイル内にある JATO タグを壊さないようにする。
例) GlassFish V2 に配備した OpenSSO のログインページをカスタマイズする
以下の例では、データストア認証モジュールを使用する OpenSSO サーバーを日本語で使用する際に、「myorg」というレルム用のログインページをカスタマイズする手順について示します。
- opensso_deploy_dir/config/auth に移動します。
# cd /opt/SUNWappserver/domains/domain2/applications/j2ee-modules/opensso/config/auth/ - myorg レルム用の共通設定ディレクトリとして、以下のディレクトリを作成します。
# mkdir -p opensso/services/myorg/html - default ディレクトリの下にある全てのファイルを opensso/services/myorg/html にコピーします。
# cp -r default/* opensso/services/myorg/html - myorg レルム用の日本語設定ディレクトリとして、以下のディレクトリを作成します。
# mkdir -p opensso_ja/services/myorg/html - default_ja ディレクトリの下にある全てのファイルを opensso_ja/services/myorg/html にコピーします。
# cp -r default_ja/* opensso_ja/services/myorg/html - ここでは日本語のみをカスタマイズの対象としますが、もし他の言語についてもカスタマイズしたい場合には、手順 4 と 5 を他の言語についても同様に行います。
- opensso/services/myorg/html/Login.jsp を編集します。
# cd opensso/services/myorg/html
# vi Login.jsp
例えば、次のように、ログインページのロゴイメージを変更してみます。ここでは、OpenSSOlogo.gif はコミュニティページのロゴを使います。(_opensso_deploy_dir/images ディレクトリに OpenSSOlogo.gif という名前でコピーしておきます。)# diff -w ../../../../default/Login.jsp Login.jsp 125,126c125 < src="<%= ServiceURI %>/images/PrimaryProductName.png" alt="<auth:resBundle bundleName="amAuthUI" resourceKey="basic_realm" />" < border="0" /> --- > src="<%= ServiceURI %>/images/OpenSSOlogo.gif" alt="OpenSSO community logo" />
- opensso_ja/services/myorg/html/DataStore.xml を編集します。
# cd ../../../../opensso_ja/services/myorg/html
# vi DataStore.xml
例えば、次のように、<Callbacks> タグのテキストを変更します。# diff -w ../../../../default_ja/DataStore.xml . 35c35 < <Callbacks length="2" order="1" timeout="120" header="このサーバーはデ ータストア認証を使用します" > --- > <Callbacks length="2" order="1" timeout="120" header="このページは、myorg レルム用にカスタマイズされたページです。このサーバーはデータストア認証を使用します" >
動作確認
動作確認する前に、OpenSSO コンソールに amAdmin でログインして、myorg という名前のレルムがすでに作成されてることを確認してください。まだであれば、ここで作成してください。
- OpenSSO を配備している GlassFish のドメイン(例では domain2 )を再起動します。
# /opt/SUNWappserver/bin/asadmin stop-domain domain2
# /opt/SUNWappserver/bin/asadmin start-domain domain2 - ブラウザで言語設定が日本語(ja または ja-jp)に設定されていることを確認します。
- レルム名「myorg」を指定して、OpenSSO ログインページにアクセスします。例えば、次のように URL を指定します。
http://my.test.domain.com:2840/opensso/UI/Login?realm=myorg
以下に示すように、さきほどカスタマイズした内容が反映されたログインページが表示されるはずです。
この例では、ロゴとその下のテキストが変更されてることを確認してください。


