ヘッダーをスキップ
Oracle® Fusion Middleware Oracle Access Manager with Oracle Security Token Service管理者ガイド
11g リリース1 (11.1.1)
B62265-02
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

H デプロイメント固有ページの作成

Oracle Application Serverシングル・サインオンでは、デプロイメントに固有のログイン、パスワード変更、およびシングル・サインオン・サーバーによるシングル・サインオフ・ページを統合するためのフレームワークが提供されます。つまり、UIのルック・アンド・フィールおよびグローバリゼーション要件に合わせてこれらのページを調整できます。

JavaServer (JSP)ページを使用することをお薦めします。他のWebテクノロジでは、結果に矛盾が生じる可能性があります。PLSQLページはサポートされていません。製品にサンプル・ページが付属しています。Oracle Application Server Single Sign-On製品には、Oracle Application Serverでのテスト用のサンプル・ページが付属しています。

この章には次のトピックが含まれます。

シングル・サインオン・サーバーでのデプロイメント固有ページの使用方法

シングル・サインオン・ページを使用可能にするプロセスは、次のようにまとめることができます。

  1. ユーザーはパートナ・アプリケーションをリクエストし、シングル・サインオン・サーバーへリダイレクトされます。

  2. ユーザーが認証されない場合、シングル・サインオン・サーバーはユーザーをサンプル・ログイン・ページかデプロイメント固有ページへリダイレクトします。このリダイレクトの一環として、表H-1に示すパラメータがサーバーからページに渡されます。

  3. ユーザーはログイン・ページを実行します。これにより、表H-2に示すパラメータが次の認証URLに渡されます。

    http://sso_host:sso_port/sso/auth
    

    または

    https://sso_host:sso_ssl_port/sso/auth
    

    これらのパラメータのうち少なくとも2つ(ssousernamepassword)が変更可能なフィールドとしてページに表示されます。

  4. ユーザーのパスワードの有効期限がすぐに切れるように設定されておらず、シングル・サインオン・サーバーがユーザー名とパスワードを正常に検証すると、このユーザーをアプリケーションの成功URLへリダイレクトします。認証が失敗すると、サーバーはユーザーを再びログイン・ページへリダイレクトして、エラー・メッセージを表示します。

  5. ユーザー・パスワードの有効期限が近い場合は、ログイン・ページではなく、パスワード変更ページが表示されます。また、デプロイメント固有のパスワード変更ページを使用するようにサーバーが構成されている場合、ユーザーはこのページのURLにリダイレクトされ、表H-3に示すパラメータがページに渡されます。


    注意:

    ステップ5で、ディレクトリ管理者がユーザーにパスワードを変更するよう強制している場合、パスワード有効期限にかかわらず、同じ条件が適用されます。

    ユーザーはパスワード変更ページを実行し、古いパスワード、新しいパスワード、確認用の新しいパスワードを入力します。このページは、表H-4に記載されているパラメータをパスワード変更URLへ渡します。

    http://sso_host:sso_port/sso/ChangePwdServlet
    

    または

    https://sso_host:sso_ssl_port/sso/ChangePwdServlet
    

    エラーが発生すると、シングル・サインオン・サーバーはユーザーをパスワード変更ページへリダイレクトして、エラー・メッセージを表示します。エラーが発生する可能性がある状況の詳細な説明は、「パスワード変更ページの動作」を参照してください。

    パスワード変更に成功すると、ユーザーは認証リクエストのトリガーとなったパートナ・アプリケーションURLへリダイレクトされます。

  6. ユーザーがシングル・サインオン・セッションを終了するには、作業中のパートナ・アプリケーションで「ログアウト」をクリックします。これにより、アプリケーションのログアウトURLが同時にコールされ、ユーザーはアクセスしたすべてのアプリケーションからログアウトされ、シングル・サインオン・セッションが終了します。

  7. ユーザーはシングル・サインオン・サーバーへリダイレクトされ、そこでシングル・サインオフ・ページが表示されます。サーバーがデプロイメント固有ページを使用するように構成されている場合は、ユーザーをこのページのURLにリダイレクトし、表H-5に記載されているパラメータをこのページに渡します。

  8. ユーザーはシングル・サインオフ・ページで「戻る」をクリックすると、ログアウトを開始したアプリケーションに戻ることができます。


注意:

パスワード変更ページを使用してパスワードを変更できるのは、パスワードの有効期限が近い場合のみです。Oracle Delegated Administration ServicesのUIを使用すると、いつでもパスワードを変更できます。このトピックの詳細は、「パスワード変更ページの動作」を参照してください。

パスワード変更ページの動作

パスワードの有効期限が切れている場合や期限切れが近いときにユーザーがログインしようとすると、サーバーは次のように動作します。

パスワードが失効している場合

パスワードの失効を表す画面が表示されます。ユーザーは、ディレクトリ管理者に連絡してパスワードのリセットを依頼する必要があります

パスワードが間もなく失効する場合

ログイン・ページにエラー・メッセージが表示されます。ユーザーはページを取り消すか、あるいはパスワードを変更できます。いずれの場合でも、パスワードの変更ページが表示されないときと同じように認証が行われます。

猶予ログインが有効

猶予ログイン期間がディレクトリで構成されている場合、ユーザーのパスワードが期限切れになるとパスワード変更ページがユーザーに表示されます。このページを取り消すか、パスワードを変更するオプションがあります。どちらの場合も、認証の手順はユーザーのパスワードが有効であるときと同じです。

パスワード変更の強制

この機能は、管理者によるパスワードのリセット後にパスワードの変更をユーザーに要求します。パスワード変更強制を有効にするには、ディレクトリ・エントリcn=pwdpolicyentry,cn=common,cn=products,cn=OracleContext,dc=default_identity_management_realmpwdMustChange属性を設定します。このためには、コマンドライン・ツールldapmodifyを使用します。TRUEに設定すると、パスワード変更の強制機能が有効になります。FALSEに設定すると、無効になります。ツールの実行方法については、『Oracle Internet Directory管理者ガイド』の章「パスワード・ポリシー」を参照してください。

デプロイメント固有ページの記述方法

ログイン・ページ、パスワード変更ページおよびシングル・サインオフ・ページのURLでは、これらのページが正常に機能するために、以降の表に示すパラメータを受け入れる必要があります。

この項には次のトピックが含まれます。

ログイン・ページのパラメータ

ログイン・ページのURLでは、表H-1に示すパラメータを受け入れる必要があります。

表H-1 シングル・サインオン・サーバーによりログイン・ページに送信されるログイン・ページ・パラメータ

パラメータ 説明
site2pstoretoken

ログイン処理用の認証リクエスト・トークンが含まれています。

ssousername

ユーザー名が含まれています。

p_error_code

エラー・コードが文字列の形式で含まれています。認証中にエラーが発生したときに渡されます。

p_cancel_url

「取消」(このボタンがログイン・ページに存在する場合)をユーザーがクリックしたときのリダイレクト先URLが含まれています。このURLは、ログインが開始されたパートナ・アプリケーションのホームURLを指しています。

locale

ユーザーの言語設定です(オプション)。ISO形式にする必要があります。たとえば、フランス語の場合はfr-frです。このパラメータの詳細は、「グローバリゼーション・サポートの追加」を参照してください。


ログイン・ページでは、表H-2に示すパラメータを次の認証URLに渡す必要があります。

http://sso_host:sso_port/sso/auth

表H-2 ページからシングル・サインオン・サーバーに送信されるログイン・ページのパラメータ

パラメータ 説明
site2pstoretoken

ログイン処理用のリダイレクトURL情報が含まれています。

ssousername

ユーザー名が含まれています。UTF-8 encodedであることが必要です。

password

ユーザーによって入力されたパスワードが含まれています。UTF-8 encodedであることが必要です。

subscribername

レルムが有効な場合のサブスクライバ・ニックネームです。UTF-8 encodedであることが必要です。

注意: このフィールドがログイン・ページで必要なのは、シングル・サインオン・サーバーで複数のレルムが有効な場合のみです。

locale

ユーザーの言語設定です(オプション)。ISO形式にする必要があります。たとえば、フランス語の場合はfr-frです。このパラメータの詳細は、「グローバリゼーション・サポートの追加」を参照してください。

v

ページ・バージョンが含まれています。これは推奨ですが、オプションです。パラメータが渡される場合、その値はv1.4であることが必要です。


ログイン・ページには、パラメータ名ssousernameのテキスト・フィールドとパラメータ名passwordのパスワード・フィールドの少なくとも2つが必要です。値は、認証URLに渡されます。ログイン・ページには、site2pstoretokenも非表示パラメータとして含まれている必要があります。このパラメータはログインURLに送信される必要があります。

これらのパラメータを送信する他に、ログイン・ページはp_error_codeの指定に従って適切なエラー・メッセージを表示し、ユーザーが「取消」をクリックするとp_cancel_urlへリダイレクトする必要があります。

パスワードを忘れた場合

ログイン・ページを作成するときは、ユーザーがパスワードをリセットできるようにするリンクを構成できます。このURLでOracle Delegated Administration Servicesのホーム・ページに進むことも、あるいはOracle Delegated Administration Services内の「パスワードを忘れた場合」リンクに進むこともできます。「パスワードを忘れた場合」リンクをクリックしたユーザーには、質問が与えられます。ユーザーはこの質問に正しく答えないと、パスワードをリセットできません。

Oracle Delegated Administration Servicesは、通常はOracleAS Single Sign-Onと同じコンピュータで、次の形式のURLによってアクセスできます。

http://sso_host:sso_port/oiddas/

「パスワードを忘れた場合」リンクを使用してパスワードをリセットする方法の詳細は、『Oracle Identity Management委任管理ガイド』の章「Oracle Internet Directoryセルフサービス・コンソール」を参照してください。

パスワード変更ページのパラメータ

パスワード変更ページのURLでは、表H-3に示すパラメータを受け入れる必要があります。


注意:

GITデプロイメントでは、パートナ・ログアウト・フローがp_done_urlで問合せパラメータを必要とするとき、このパラメータをURLエンコーディングして、Oracle Access Managerログアウト・サーブレットがこれらをOracle Access Managerパラメータであると解釈するのでなく、1つのp_done_urlの要素であると解釈するようにする必要があります。

表H-3 ページに送信されるパスワード変更パラメータ

パラメータ 説明
p_username

ページのどこかに表示されるユーザー名が含まれています。

p_subscribername

ホスティングが有効な場合のサブスクライバ・ニックネームです。

注意: このフィールドは、ログイン・ページで必須です。

p_error_code

前回のパスワード変更時にエラーが発生していた場合、文字列形式のエラー・コードが含まれます。

p_done_url

パスワードが保存された後に戻る適切なページのURLが含まれます。

site2pstoretoken

パスワードの期限が切れたか期限が切れようとしている場合に/sso/authログインURLで必要になるsite2pstoretokenが含まれています。

p_pwd_is_exp

パスワードの期限が切れたのか、それとも期限が切れようとしているのかを示すフラグ値が含まれています。値はWARNFORCEのいずれかです。関連するエラー・コードは、表H-8を参照してください。

locale

ユーザーの言語設定です(オプション)。ISO形式にする必要があります。たとえば、フランス語の場合はfr-frです。このパラメータの詳細は、「グローバリゼーション・サポートの追加」を参照してください。


パスワード変更ページは、表H-4に示すパラメータを、パスワード変更URLに渡す必要があります。

http://sso_host:sso_port/sso/ChangePwdServlet

表H-4 ページにより送信されるパスワード変更ページのパラメータ

パラメータ 説明
p_username

ページのどこかに表示されるユーザー名が含まれています。パスワード変更ページから、非表示フィールドとして送信する必要があります。UTF-8 encodedであることが必要です。

p_old_password

ユーザーの古いパスワードが含まれています。UTF-8 encodedであることが必要です。

p_new_password

ユーザーの新しいパスワードが含まれています。UTF-8 encodedであることが必要です。

p_new_password_confirm

ユーザーの新しい確認パスワードが含まれています。UTF-8 encodedであることが必要です。

p_done_url

パスワードが保存された後に戻る適切なページのURLが含まれます。

p_pwd_is_exp

パスワードの期限が切れたのか、それとも期限が切れようとしているのかを示すフラグ値が含まれています。値はWARNFORCEのいずれかです。関連するエラー・コードは、表H-8を参照してください。

site2pstoretoken

ログイン処理用のリダイレクトURL情報が含まれています。

p_action

変更をコミットします。値はOK(コミット)とCANCEL(無視)のいずれかであることが必要です。

p_subscribername

ページのどこかに表示されるユーザー名が含まれています。

p_request

ユーザーによりリクエストされた保護URLです。

locale

ユーザーの言語設定です(オプション)。ISO形式にする必要があります。たとえば、フランス語はfr-frです。

「グローバリゼーション・サポートの追加」を参照してください。


パスワード変更ページには、少なくともp_old_passwordp_new_passwordおよびp_new_password_confirmの3つのパスワード・フィールドが必要です。パスワード変更ページはこれらのフィールドをパスワード変更URLへ送信します。

パスワード変更ページは、p_done_urlも非表示パラメータとしてパスワード変更URLへ送信します。さらに、p_error_codeの値に応じてエラー・メッセージを表示する必要があります。

シングル・サインオフ・ページのパラメータ

シングル・サインオフ・ページのURLでは、表H-5に示すパラメータを受け入れる必要があります。

表H-5 シングル・サインオフ・ページに送信されるパラメータ

パラメータ 説明
p_app_name[1. . .n]

ページに表示されるアプリケーション名が含まれています。変数nは、シングル・サインオフに参加しているパートナ・アプリケーションの数です。

p_app_logout_url[1. . .n]

アプリケーション・ログアウトURLが含まれています。変数nは、シングル・サインオフに参加しているパートナ・アプリケーションの数です。

p_done_url

戻りURLが含まれています。このURLはユーザーを、ユーザーがログアウトを開始したアプリケーションに戻します。

locale

ISO形式でのユーザーの言語設定です。ログイン時にユーザーが同じ値を渡さない場合にのみ、送信されます。


外部アプリケーション・ログイン・ページのパラメータ

外部アプリケーション・ログイン・ページのURLでは、表H-6に示すパラメータを受け入れる必要があります。

表H-6 外部アプリケーション・ログイン・ページに送信されるパラメータ

パラメータ 説明

ID

外部アプリケーションIDです。このIDは、「外部アプリケーション管理」ページに表示されます。OracleAS Single Sign-Onで構成される外部アプリケーションごとに、固有のIDが生成されます。このIDは、外部アプリケーションに関連する表の中で主キーとなります。外部アプリケーションのログイン・ページは、このIDを外部アプリケーションに戻す必要があります。

p_app_name

ページに表示されるアプリケーション名が含まれています。これは、外部アプリケーションがOracleAS Single Sign-Onで構成されたときに指定される外部アプリケーションの名前です。

extappfieldname1..9

予備フィールド名です。各外部アプリケーションは、関連する予備フィールドを9個まで持つことができます。これらのフィールドは、可視にも不可視にもできます。可視フィールドは外部アプリケーションのログイン・ページに表示され、ユーザーはこのフィールドのデフォルト値を変更できます。不可視フィールドの値も外部アプリケーションに送信されますが、ユーザーはその値を変更できません。たとえば、ログイン・フィールド、パスワード・フィールドおよびロケール・フィールドがあるアプリケーションでは、FRの値を持つLOという名前のフィールドを追加できます。詳細は、「外部アプリケーションの追加」を参照してください。

extappfieldvalue1..9

予備フィールドの値です。

extappfielddisplay1..9

予備フィールドの可視性です(trueまたはfalse)。フィールドがユーザーに可視であり変更可能か(true)、あるいはフィールドの値が固定値か(false)を決定します。

mode

このパラメータはカスタム・ログイン・ページに渡される場合と、渡されない場合があります。ログイン・ページに渡す場合は、値をmodifyに設定して送信する必要があります。この場合、データベース内のユーザーの資格証明を更新するためにポータルから外部アプリケーション・ログイン・ページがコールされたことを、シングル・サインオン・アプリケーション・コントローラに示します。

p_error_code

前回のパスワード変更時にエラーが発生していた場合、文字列形式のエラー・コードが含まれます。

done

ユーザーの資格証明が更新された後のレスポンスのリダイレクト先URLです。これは、modifyモードで使用されます。


このページは、表H-7に示しているパラメータを、POSTメソッドを使用して外部アプリケーション・ログイン・コントローラに送信できる必要があります。

表H-7 「外部アプリケーション・ログイン」ページがアプリケーションに送信するパラメータ

パラメータ 説明

ID

外部アプリケーションIDです。

p_app_username

アプリケーションにログインしている個人のユーザー名が含まれています。

p_app_pwd

ユーザーが送信するパスワードです。

p_remember_credentials

アプリケーションのユーザー名およびパスワードをデータベースに保存する必要があるかどうかを、外部アプリケーション・ログイン・コントローラに示すフラグ。

extappfieldname1..9

予備フィールド名です。詳細は、表H–6を参照してください。

extappfieldvalue1..9

予備フィールドの値です。

extappfielddisplay1..9

予備フィールドの可視性です(true/false)。詳細は、表H–6を参照してください。

p_change_password

外部アプリケーション・ログイン・コントローラに対して、モードをchange passwordに設定するかどうかを示すtrue/falseフラグです。

mode

このパラメータはカスタム・ログイン・ページに渡される場合と、渡されない場合があります。ログイン・ページに渡す場合は、値をmodifyに設定して送信する必要があります。この場合、データベース内のユーザーの資格証明を更新するためにポータルから外部アプリケーション・ログイン・ページがコールされたことを、シングル・サインオン・アプリケーション・コントローラに示します。

done

ユーザーの資格証明が更新された後のレスポンスのリダイレクト先URLです。


ページのエラー・コード

ログインおよびパスワード変更ページのURLでは、これらのページが正しく機能するために、以降の表に示すプロセス・エラーを受け入れる必要があります。

ログイン・ページのエラー・コード

ログイン・ページは、表H-8に示すエラー・コードを処理する必要があります。

表H-8 ログイン・ページのエラー・コード

p_error_codeの値 対応するメッセージと説明
acct_lock_err

説明: ユーザーは何度もログインに失敗しました。

メッセージ: 「アカウントがロックされています。システム管理者に通知してください。」

pwd_exp_err

説明: ユーザーのパスワードはすでに期限切れです。

メッセージ: 「パスワードが期限切れです。管理者に連絡して、パスワードをリセットしてください。」

null_uname_pwd_err

説明: ユーザーはユーザー名フィールドを空白のままにしました。

メッセージ: 「有効なユーザー名を入力してください。」

auth_fail_exception

説明: 認証に失敗しました。

メッセージ: 「認証に失敗しました。再試行してください。」

null_password_err

説明: ユーザーはパスワード・フィールドを空白のままにしました。

メッセージ: 「ログイン・パスワードを入力する必要があります。」

sso_forced_auth

説明: アプリケーションは認証を必要としています。

メッセージ: 「アクセスしようとしているアプリケーションに以前サインインしている場合でも、再度サインインする必要があります。」

unexpected_exception

説明: 予期しないエラーが認証中に発生しました。

メッセージ: 「予期しないエラーが発生しました。再試行してください。」

unexp_err

説明: 予期しないエラーです。

「予期しないエラーが発生しました。管理者に通知してください。」

internal_server_err

説明: 内部サーバー・エラーのレポートです。

メッセージ: 「内部サーバー・エラーです。管理者に通知してください。」

internal_server_try_again_err

説明: 再試行のプロンプト付きの内部サーバー・エラーのレポートです。

メッセージ: 「内部サーバー・エラーです。操作を再試行してください。」

internal_server_try_later_err

説明: 後での実行のプロンプト付きの内部サーバー・エラーのレポートです。

メッセージ: 「内部サーバー・エラーです。後で操作を実行してください。」

gito_err

説明: 非アクティブのタイムアウトです。ユーザーは再度ログインする必要があります。

メッセージ: 「シングル・サインオン・セッションが期限切れになっています。セキュリティのため、一定の時間操作がないとセッションは期限切れになります。再度サインインしてください。」

cert_auth_err

説明: 証明書サインオンに失敗しました。ユーザーは証明書が有効であることを確認するか、または管理者に連絡する必要があります。

メッセージ: 「証明書ベースのサインインに失敗しました。証明書が有効であるか確認してください。有効でない場合はシステム管理者に連絡してください。

session_exp_error

説明: シングル・サインオン・セッションのタイムリミットに達しました。

メッセージ: 「シングル・サインオン・セッションが期限切れになっています。セキュリティのため、指定された時間が経過するとセッションは期限切れになります。再度サインインしてください。」

userid_mismatch

説明: 強制認証中に提示されたユーザーIDは、現在のシングル・サインオン・セッションのユーザーIDと一致しません。

メッセージ: 「認証用に送信されたユーザー名は、既存のシングル・サインオン・セッションに存在するユーザー名と一致しません。」


ログイン後のメッセージ

表H-9に示すメッセージは、ユーザー認証の後に表示されます。これらのメッセージはログイン・ページによって処理されますが、パスワード変更ページによって表示される場合もあります。

表H-9 ログイン後のメッセージ

p_error_codeの値 対応するメッセージと説明
pwd_expiry_warn_err

説明: ユーザーのパスワードはまもなく期限切れになります。

メッセージ: 「パスワードがもうすぐ期限切れになります。変更してください。」

pwd_force_change_err

説明: ユーザーのパスワードが期限切れです。変更する必要があります。

メッセージ: 「続行する前にパスワードを変更する必要があります。」

pwd_grace_login_err

説明: ユーザーのパスワードは期限切れですが、猶予期間が有効であるためリセットできます。

メッセージ: 「パスワードが期限切れです。ログインの猶予期間です。パスワードを変更してください。」


パスワード変更ページのエラー・コード

パスワード変更ページは、表H-10に示すエラー・コードを処理する必要があります。

表H-10 パスワード変更ページのエラー・コード

p_error_codeの値 対応するエラー
confirm_pwd_fail_txt

古いパスワードと新しいパスワードは一致しません。

null_new_pwd_err

ユーザーは新しいパスワードを入力しませんでした。

null_old_pwd_err

ユーザーは古いパスワードを入力しませんでした。

pwd_expiry_warn_err

パスワードの有効期限が近づいています。

pwd_force_change_err

パスワードを変更しないと、ユーザーは先に進めません。

pwd_grace_login_err

パスワードは期限が切れましたが、猶予ログインが認められています。

account_deactivated_err

ユーザー・アカウントが無効です。

acct_lock_err

ユーザー・アカウントはロックされています。

pwd_illegal_value

パスワードに不正な値が含まれています。

pwd_in_history_err

パスワードはパスワード履歴の中にあります。

pwd_min_length_err

パスワードは最小長の要件を満たしていません。

pwd_numeric

パスワードは数字の要件を満たしていません。


外部アプリケーション・ログイン変更ページのエラー・コード

外部アプリケーション・ログイン・ページは、表H-11に示すエラー・コードを処理する必要があります。

表H-11 外部アプリケーション・ログイン・ページのエラー・コード

p_error_codeの値 対応するエラー
eapp_name_null

ユーザーIDがありません。

eapp_pwd_null

パスワードがありません。

ext_app_not_found

外部アプリケーションが見つかりません。


グローバリゼーション・サポートの追加

OracleAS Single Sign-Onフレームワークにより、デプロイメント固有ページを各々のデプロイメントのニーズに合わせてグローバル化できます。どの言語でページで表示するかを決めるとき、様々な方針を採ることができます。2つの方針を次の項で示します。

サポートされている言語コードの全リストは、次のURLで『Oracle Application Serverグローバリゼーション・ガイド』の付録Aを参照してください。

http://otn.oracle.co.jp/document/

このURLで表示されたページから、OracleAS Single Sign-Onのマニュアルへのリンクをクリックし、適切なリリースのライブラリを表示する「ライブラリの表示」リンクをクリックします。

ページに表示する言語の決定

この項では、「HTTP Accept-Language」ヘッダーとデプロイメント・ページ・ロジックのいずれかを使用して表示言語を選択する方法を説明します。

Accept-Languageヘッダーを使用したページの決定

ブラウザでエンド・ユーザーは、Webコンテンツを表示する際の言語(ロケール)を決定できます。ブラウザはユーザーが選択した言語をサーバーへ、HTTP Accept-Languageヘッダーの形式で送信します。デプロイメント固有ページのロジックはこのヘッダーを調べ、それに応じてこのページをレンダリングする必要があります。シングル・サインオン・サーバーでは、このページを受け取ると、Accept-Languageヘッダーの値を読み取り、ユーザーのアイデンティティの伝播時にその値をパートナ・アプリケーションへ送信します。多くのパートナ・アプリケーションでは、ユーザーがこのヘッダーをオーバーライドできますが、シングル・サインオフ・ページはサインオン時に確立された言語で表示される点に注意してください。このため、すべてのパートナ・アプリケーションで同じセッション言語が使用されます。

Accept-Languageヘッダーは、言語設定を決定するための推奨メカニズムです。この方法の主な利点は、エンド・ユーザーが他のWebサイトを閲覧している間に、言語をすでに設定している可能性が高いということです。そのため、これらのページとシングル・サインオンのページ間で閲覧の一貫性が保たれます。

ページ・ロジックを使用した言語の決定

前の項で説明した方法をお薦めしますが、ブラウザで設定された言語を拡張(またはオーバーライド)するメカニズムに基づいてグローバリゼーションを実装することもできます。たとえば、次のいずれかの方法があります。

  • ログイン・ページに言語一覧を表示し、ユーザーが選択できるようにします。ユーザーの便宜を考慮して、永続Cookieを設定してこの選択を永続的なものにすることもできます。

  • 言語を1つ設定して、ページをレンダリングします。この方法は、ユーザーが単一言語で入力することがわかっている場合に適しています。

  • 集中管理されたアプリケーション・リポジトリまたはディレクトリから言語設定を取得します。ユーザー設定項目、システム設定項目、構成データの集中管理されたストアは、言語を格納するのに最適です。

ページのロジックを使用して言語を設定する場合、ページではこの情報をシングル・サインオン・サーバーに伝播する必要があります。サーバーは、この情報をパートナ・アプリケーションに伝播する必要があります。最終的には、一貫性のあるグローバリゼーションが保たれます。ページでは、ログイン・フォームのlocaleパラメータ(表H-2)を使用して、ISO-639形式で言語を渡す必要があります。多くのサイトには、ISO-639の2文字言語コードの全一覧があります。次のサイトにもこの一覧があります。

http://www.ics.uci.edu/pub/ietf/http/related/iso639.txt

次のサイトには、ISO-3166の2文字国コードの全一覧があります。

http://www.chemie.fu-berlin.de/diverse/doc/ISO_3166.html

注意:

localeパラメータがシングル・サインオン・サーバーに渡されると(表H-1)、パラメータ値はmod_ossoへ送られます。mod_ossoはこの値をHTTP Accept-Languageヘッダーの先頭に追加してから、ヘッダーをパートナ・アプリケーションに渡します。

ページのレンダリング

エンド・ユーザーのロケールが決定されると、デプロイメント固有ページでは対応する翻訳文字列を使用して、ページをレンダリングする必要があります。これらの文字列の格納方法および取得方法については、『Oracle Application Server グローバリゼーション・ガイド』のロケール認識に関する章を参照してください。Java開発に関する標準的なドキュメントも参照してください。次に2つのリンクを示します。

デプロイメント固有ページに関するガイドライン

デプロイメント固有ページを実装する場合は、次のガイドラインに従ってください。

デプロイメント固有ページのインストール

policy.propertiesファイルを使用して、デプロイメント固有のログイン・ページとパスワード変更ページをインストールします。

policy.propertiesを使用したログイン・ページ、シングル・サインオフ・ページおよびパスワード変更ページのインストール

ログイン・ページ、シングル・サインオフ・ページおよびパスワード変更ページを構成できます。

独自のログイン・ページ、シングル・サインオフ・ページおよびパスワード変更ページをインストールする手順

  1. ORACLE_HOME/sso/conf/policy.propertiesのパラメータを編集します。次の例に示す値を、ログイン・ページ、ログアウト・ページ、およびパスワード変更ページへのパスと置き換えます。

    #Deployment login page link
    loginPageUrl = /sso/pages/login.jsp
    logoutPageUrl = /sso/pages/logout.jsp
    
    #Deployment change password page link
    chgPasswordPageUrl = /sso/pages/password.jsp
    
  2. シングル・サインオン・サーバーを再起動します。

    ORACLE_HOME/opmn/bin/opmnctl restartproc process-type=HTTP_Server
    ORACLE_HOME/opmn/bin/opmnctl restartproc process-type=OC4J_SECURITY
    

policy.propertiesを使用したワイヤレスのログイン・ページとパスワード変更ページのインストール

OracleAS Wirelessのフレームワークでは、デプロイメント固有のワイヤレスのログイン・ページとパスワード変更ページを統合できます。これらのページのインストール手順は、標準ページのインストール手順と同様です(前述の項を参照)。

ワイヤレスのログイン・ページとパスワード変更ページをインストールする手順

  1. ORACLE_HOME/sso/conf/policy.propertiesを開きます。

  2. 次のパラメータを編集または追加します。

    #Wireless login page link
    wirelessLoginPageUrl = wireless_login_page_url
    wirelessChgPasswordPageUrl = change_password_page_URL
    
  3. シングル・サインオン・サーバーを再起動します。

    ORACLE_HOME/opmn/bin/opmnctl restartproc process-type=HTTP_Server
    ORACLE_HOME/opmn/bin/opmnctl restartproc process-type=OC4J_SECURITY
    

policy.propertiesを使用した外部アプリケーション・ログイン・ページのインストール

ユーザーがサード・パーティのアプリケーションにログインするときに表示されるログイン・ページを構成できます。

サード・パーティ・アプリケーションのログイン・ページを構成する手順

  1. ログイン・ページが「ログイン・ページのパラメータ」および「ページ・エラー・コード」に示すページ・パラメータおよびページ・エラー・コードを受け入れることを確認します。

  2. ログイン・ページを構成したら、ORACLE_HOME/sso/conf/policy.propertiesのextAppLoginPageUrlパラメータを編集し、次の例に示すパスをログイン・ページのパスに置き換えます。

    extAppLoginPageUrl = /sso/pages/ealogin.jsp
    ORACLE_HOME/opmn/bin/opmnctl restartproc process-type=OC4J_SECURITY
    
  3. 必要に応じて、アプリケーション・ページを構成できます。

  4. シングル・サインオン・サーバーを再起動します。

    ORACLE_HOME/opmn/bin/opmnctl restartproc process-type=HTTP_Server
    ORACLE_HOME/opmn/bin/opmnctl restartproc process-type=OC4J_SECURITY
    

デプロイメント固有ページの例

ipassample.jarファイルには、login-ex.jsppassword-ex.jspsignoff-ex.jspの各ファイルが含まれています。これらのファイルを、デプロイメントに合わせてカスタマイズできます。これらのファイルを使用する場合は、次のようにします。次に示すコマンドを使用してファイルを取り出します。

ORACLE_HOME/jdk/bin/jar -xvf ORACLE_HOME/sso/lib/ipassample.jar

カスタム・クラスの使用

一般に、カスタマイズしたデプロイメント固有ページは、OC4J_SECURITYによって使用されている現在のバージョンのコンポーネント・クラスで動作する必要があります。カスタム・アプリケーションで、特定のクラスの別のバージョンを使用する必要がある場合は、そのクラスをOC4J_SECURITYインスタンスではなく、別のOC4Jインスタンスにデプロイすることが必要です。

たとえば、OC4J_SECURITYで使用されるバージョンと競合するカスタムlog4jクラスを使用する必要のあるデプロイメントでは、そのカスタム・クラスを含むローカルのlog4j jarファイルを使用する別のOC4J_SECURITYインスタンスを起動します。


警告:

OC4J_SECURITYで使用されるクラスをカスタム・バージョンに置き換えると、OracleAS Single Sign-Onや他のOracle Application Serverコンポーネントが使用できなくなる場合があります。


外部アプリケーションの追加

「シングル・サインオン・サーバー管理」ページで「外部アプリケーション管理」リンクをクリックし、「外部アプリケーションの追加」リンクをクリックすると、「外部アプリケーションの追加」ページが表示されます。このページには、次の見出しとフィールドが含まれています。

表H-12 外部アプリケーション・ログイン

フィールド 説明

アプリケーション名

外部アプリケーションを識別する名前を入力します。これは、外部アプリケーションのデフォルト名です。

ログインURL

外部アプリケーションのHTMLログイン・ページを認証するための送信先URLを入力します。次のログインURLの場合の例: Yahoo!Mail

http://login.yahoo.com/config/login?6p4f5s403j3h0

ユーザー名/IDフィールド名

外部アプリケーションのHTMLログイン・フォームのユーザー名またはユーザーIDフィールドを識別する用語を入力します。この用語は、ログイン・フォームのHTMLソースで確認できます。(この後の手順の例を参照してください)。このフィールドは、Basic認証を使用している場合は適用されません。

パスワード・フィールド名

外部アプリケーションのHTMLログイン・フォームのパスワード・フィールドを識別する用語を入力します。この用語は、ログイン・フォームのHTMLソースで確認できます。(この後の手順の例を参照してください)。このフィールドは、Basic認証を使用している場合は適用されません。


表H-13 認証方式

フィールド 説明

使用する認証タイプ

プルダウン・メニューから、アプリケーションで使用するフォーム送信方法を選択します。これは、ブラウザがメッセージ・データを送信する方法を示します。この文字列は、ログイン・フォームのHTMLソースで確認できます。次の3つの方法のいずれかを選択します。

POST: シングル・サインオン・サーバーにデータを転送し、ログイン資格証明をフォームの本文内で送信します。

GET: ページ・リクエストをサーバーに送信し、ログイン資格証明をログインURLの一部として発行します。

Basic認証: アプリケーションURL内のログイン資格証明を送信します。この送信は、HTTP Basic認証で保護されます。

注意:

  • Basic認証で使用するポップアップ・ウィンドウは、Windows XPのサービス・パック2ではデフォルトでブロックされます。このサービス・パックを使用する場合、シングル・サインオン用ログイン・ページのウィンドウを表示するよう、ブラウザ設定を再構成してください。これには、Internet Explorerの「ツール」メニューにある「ポップアップ ブロック」を使用します。

    他のブラウザおよびブラウザ・プラグインでも、ポップアップのブロックが可能です。Mozillaはこれらの1つです。これらのブラウザによってシングル・サインオンのログイン・ページがブロックされないようにしてください。

  • Internet Explorer 5.0以上を使用する場合、外部アプリケーションでBasic認証が機能しないことがあります。このバージョンのInternet Explorerには、Microsoft MS04-004 Cumulative Security Update (832894)が含まれます。対処方法は、次のサイトを参照してください。

    http://support.microsoft.com
    

表H-14 追加フィールド

フィールド 説明

フィールド名

ログイン時にユーザー入力を要求するフィールドをHTMLログイン・フォームに追加した場合は、そのフィールドの名前を入力します。このフィールドは、Basic認証を使用している場合は適用されません。

フィールド値

対応するフィールド名のデフォルト値を入力します(該当する場合)。このフィールドは、Basic認証を使用している場合は適用されません。


外部アプリケーションを追加する手順

  1. 「外部アプリケーション管理」ページから、「外部アプリケーションの追加」を選択します。

    「外部アプリケーションの追加」ページが表示されます。

  2. 「外部アプリケーション・ログイン」フィールドに、外部アプリケーション名とHTMLログイン・フォームの送信先URLを入力します。Basic認証を使用する場合は、保護されたURLを入力します。

  3. アプリケーションでHTTP POST認証またはHTTP GET認証が使用されている場合は、「ユーザー名/IDフィールド名」フィールドに、HTMLログイン・フォームのユーザー名またはユーザーIDフィールドを識別する用語を入力します。

    この名前は、ログイン・フォームのHTMLソースで確認できます。

    アプリケーションでBasic認証方式が使用されている場合は、「ユーザー名/IDフィールド名」フィールドを空にします。

  4. アプリケーションでHTTP POST認証またはHTTP GET認証が使用されている場合は、「パスワード・フィールド名」フィールドに、アプリケーションのパスワード・フィールドを識別する用語を入力します。

    ログイン・フォームのHTMLソースを参照してください。

    アプリケーションでBasic認証方式が使用されている場合は、「パスワード・フィールド名」フィールドを空にします。

  5. ログイン時にユーザー入力を要求するフィールドをHTMLログイン・フォームに追加した場合は、「追加フィールド」フィールドに、そのフィールドの名前とデフォルト値を入力します。

    アプリケーションでBasic認証方式が使用されている場合は、これらのフィールドを空にします。

  6. HTMLログイン・フォームでユーザーが追加フィールドのデフォルト値を変更できるようにする場合は、「ユーザーに表示」チェック・ボックスを選択します。

  7. 「OK」をクリックします。新しい外部アプリケーションが、「外部アプリケーション管理」ページの「外部アプリケーションの編集/削除」ヘッダーの下に、他の外部アプリケーションとともに表示されます。

  8. アプリケーションのリンクをクリックして、ログインをテストします。

次の例に示す値のソースの使用対象は、Yahoo!Mailです。

<form method=post action="http://login.yahoo.com/config/login?6p4f5s403j3h0" autocomplete=off name=a> 
...
<td><input name=login size=20 maxlength=32></td> 
.... 
<td><input name=passwd type=password size=20 maxlength=32></td> 
...
<input type=checkbox name=".persistent" value="Y" >Remember my ID & password 
...
</form> 

ソースには次の値が示されています。


注意:

AS中間層のホスト名を変更する場合は、この中間層で外部アプリケーションの「ログインURL」フィールドを手動で更新する必要があります。この変更は、次の項で説明する「外部アプリケーションの編集」ページで行います。