ヘッダーをスキップ

Oracle Containers for J2EE セキュリティ・ガイド
10g(10.1.3.1.0)

B31857-01
目次
目次
索引
索引

戻る 次へ

14 OC4J Javaシングル・サインオン

OC4J 10.1.3.1実装には、他のOracle Application Serverシングル・サインオン製品のような、必要な追加インフラストラクチャに依存しない代替Javaシングル・サインオン・ソリューションがパッケージ化されています。このJava SSOは、第13章で説明するOracleAS JAAS ProviderID管理フレームワークに基づいており、次のいずれのデプロイメント・シナリオでもWebアプリケーション間で使用できます。

この章では、OC4J Java SSOについて説明します。この章の内容は次のとおりです。

OC4J Java SSOの概要

ここでは、次に示すようなJava SSOの概要について説明します。

OC4Jコンテナ・レベルJavaシングル・サインオン・ソリューションの必要事項

Oracle Application ServerでOracle Single Sign-Onを使用するには、Oracle Identity Managementによる個別のOracle Application Serverのインストールが必要です(Oracle Internet Directory、Oracle Single Sign-OnおよびOracle Databaseを含む)。または、Oracle Access Managerのシングル・サインオン・ソリューションを使用するには、Oracle Access Managerを完全にインストールする必要があります。これらのシングル・サインオン・ソリューションは、必要なインフラストラクチャと密接に連携しています。どちらも堅牢ですが、小規模なデプロイメント・シナリオでは実行できず、それ自体ではスタンドアロンOC4Jと併用できません。

または、OC4J 10.1.3.1実装によってJava SSOを提供する方法もあります。この場合、Java SSOはOC4J自体とともにパッケージ化され、使用するIdentity Serverの種類に関係なく、OC4Jとの連携が解除されます。これにより、同じOC4Jインスタンスやクラスタにデプロイされたアプリケーションの認証を一元化し、ユーザーIDを共有することができます。

OC4J Java SSOは、OracleAS JAAS Providerによってサポートされる任意のセキュリティ・プロバイダと併用できます(概要は、「OracleAS JAAS Providerおよびセキュリティ・プロバイダの概要」を参照)。さらに、特定の要件に準拠するログイン・モジュール(カスタム・モジュールを含む)をJava SSOと併用できます。特に、OC4Jに付属するログイン・モジュールRealmLoginModuleLDAPLoginModuleDBTableOraDataSourceLoginModuleは、ID管理フレームワークのIDアサーション機能をサポートし、Java SSOおよびパートナ・アプリケーションと併用できます。(「Oracleコールバック実装」で説明するIdentityCallbackのインスタンスは、アサートするIDの確認に使用されます。)


注意

10.1.3.1 Java SSO実装には、次のような制限があります。

  • アクセス制御機能と認可機能がありません。認証とIDアサーション専用です。

  • 共通するCookieドメインを共有しているWebアプリケーションに限定されます。

  • UserManagerインタフェース(一般的な使用には非推奨)はサポートされません。

 

Java SSOの仕組み

Java SSOには、専用のJava SSOアプリケーション(OC4Jで事前にデプロイ)とOracleAS JAAS ProviderのID管理フレームワークの実装が含まれています。

この項の内容は次のとおりです。

シングル・サインオンの対話とロジック・フロー

OC4J Java SSOと特定のアプリケーションが連携する仕組みを説明するため、次の3つの基本的なシナリオを検討します。

通常のJava SSOとの対話は、次のとおりです。

  1. クライアントが、App1などのアプリケーションから、保護されたコンテンツにアクセスしようとします(保護されたURLをリクエスト)。

  2. App1はSSO認証を必要とするため、クライアントはJava SSOによって資格証明を要求されます。

  3. クライアントは資格証明を提示します。

  4. Java SSOは、認証をセキュリティ・プロバイダに委任します。

  5. 認証が正常に完了すると、セキュリティ・サブシステムがIDを設定します。

  6. SSOプロバイダ(ID管理フレームワークのJava SSO実装)は、認証済ユーザーに対応するIDトークン(Java SSO Cookie)をエンコードし、Cookieをクライアントに返します。

  7. クライアントは、Cookieを提示してApp1にアクセスします。

  8. App1は、CookieのクライアントIDを確認し、保護されたコンテンツへのクライアントのアクセスを許可します。

  9. クライアントは、もう一度このCookieを使用して、別のアプリケーション(App2など)の保護されたコンテンツにアクセスしようとします。

  10. App2は、CookieのクライアントIDを確認し、保護されたコンテンツへのクライアントのアクセスを許可します。

Java SSOの使用中は、次のいずれかが起きるまで、ユーザー・セッションはアクティブの状態になります。

Java SSOの使用を共有する一連のアプリケーションは、パートナ・アプリケーションと呼ばれています。パートナ・アプリケーションは、カスタマ・アプリケーションかOracle Application Serverコンソール・アプリケーション(Application Server Control、Oracle BPEL Process ManagerまたはOracle Web Services Managerなど)のいずれかになります。パートナ・アプリケーションはセキュリティ・ドメイン内のアプリケーションの1つであり、Java SSOを使用して認証を委任します。セキュリティ・ドメインでは、複数のアプリケーションが認証プロセスと検証プロセスに使用される共通のIDストア、アルゴリズムおよびキーを共有します。

次の図14-1は、Java SSOロジックのフロー・チャートを示しています。

図14-1    Java SSO内部ロジック・フロー


画像の説明

Java SSO実行時の操作

Java SSOのアプリケーションであるjavassoは、組込みシステム・アプリケーションとしてすべてのOC4Jインスタンスにデプロイされています。このアプリケーションは、ログイン・サーブレットSSOLoginとログアウト・サーブレットSSOLogoutから構成されます。

OC4Jを起動する場合、通常はjavassoが無効になります(Oracle Application Serverの基本インストールを除く)。管理者は、Application Server Controlを使用してjavassoを起動できます。

javassoが有効になった後でJava SSOパートナ・アプリケーションにアクセスしようとすると、プロセスは図14-2のようになります。


注意

次のApp1App2は、シングル・サインオン用にJava SSOを使用するよう構成されたパートナ・アプリケーションです。 


  1. ユーザーは、ブラウザを使用してアプリケーションApp1の保護されたURLにアクセスしようとします。

  2. ブラウザによってjavassoにリダイレクトされます(具体的にはSSOLoginサーブレット)。

  3. App1のURLがjavassoに渡されます。

  4. javasso機能により、ユーザーに対してJava SSOログイン・ページが表示されます。

  5. ユーザーは、ユーザー名とパスワードを入力します。

  6. javasso機能により、ユーザーはIDストア内の情報に基づいて認証されます。ユーザーが正常に認証されると、SSOLoginサーブレットは認証済IDをJava SSOのCookie(IDトークン)にマップし、対称鍵暗号を使用して署名を行い、Cookieの内容を暗号化します。

  7. ブラウザによってApp1にリダイレクトされ、保護されたCookieがクライアントに返されます。

  8. ユーザーは、App1のコンテンツにアクセスします。

  9. ユーザーがアプリケーションApp2の保護されたURLにアクセスしようとすると、認証を受けることなくApp2のコンテンツにアクセスできます。

    図14-2    Java SSO実行時の操作


    画像の説明

ID管理フレームワークのJava SSO実装

Java SSOは、第13章「交換可能なID管理フレームワーク」に記載されたID管理フレームワークの実装です。Java SSO実装では、資格証明にCookieを使用します。

Java SSOは、OC4Jとともにインストールされます。Java SSOには、次のものが含まれています。

Java SSOのデプロイメント・シナリオ

次のJava SSOデプロメント・シナリオは重要です。

Java SSO構成の概要

ユーザーのJ2EEアプリケーションを標準以外に構成する場合、次の構成手順が必要です。構成手順の詳細は、「Java SSOの設定と構成」に記載されています。

  1. Application Server Controlを使用してjavassoアプリケーションが起動されている必要があります。

  2. ターゲットOC4Jインスタンス内で、jazn.xmlファイルにJava SSOとID管理フレームワーク実装のプロパティが正しく設定されている必要があります。Application Server Controlを使用してプロパティを設定できます。これにより、対称鍵も生成できます。設定は、<jazn>要素の<property>サブ要素に示されています。次の設定があります(デフォルト設定で十分です)。

    • Java SSOのログインURLおよびログアウトURL

    • Cookieトークンの暗号化に使用される対称鍵

    • Java SSO Cookieが限定されるDNSドメイン(複数のOC4Jインスタンスとホストにわたる拡張インストールの場合に必要)

    (トラブルシューティングの項の「資格証明が正しいにもかかわらず、Java SSOログイン・ページに戻る」に記載されているように、必ずCookieドメインを適切に設定してください。)

  3. Java SSOを使用するすべてのパートナ・アプリケーションは、javassoアプリケーションと同じセキュリティ・プロバイダとIDストアを使用するよう構成されている必要があります。(特に、ファイルベース・プロバイダを使用する場合、同じリポジトリ・ファイルを使用します。複数のOC4Jインスタンスを使用するシナリオは、「ファイルベース・プロバイダと2つのOC4Jインスタンスを使用する場合の考慮事項」を参照してください。)デフォルトでは、javassoはファイルベース・プロバイダを使用するよう構成されていますが、Application Server Controlコンソールを使用すると、この構成を変更できます。

    カスタマ・アプリケーションであるパートナ・アプリケーションに対しては、デプロイメント中にセキュリティ・プロバイダを構成できます。Application Server Control自体に対しては、Application Server Controlコンソールでセキュリティ・プロバイダを変更する特別な手順があります。含めたい他のOracle Application Serverコンソール・アプリケーションに対して変更が必要な場合、同じように処理するとjavasso用にセキュリティ・プロバイダを変更できます。

  4. 各パートナ・アプリケーションは、Java SSOが使用できるように有効になっている必要があります。これは、Application Server Controlを使用して構成することもできます。Java SSOを使用できるように有効にするには、<jazn-web-app>要素のauth-method="CUSTOM_AUTH"設定と、orion-application.xml<jazn>のサブ要素設定で指定します。


    注意

    Java SSOは、OracleAS JAAS Providerによってサポートされるすべてのプロバイダをサポートします。 


Java SSOログイン・ページとエラー・ページの概要

ここでは、Java SSOログイン・ページとエラー・ページのローカライゼーションとカスタマイズについて説明します。

Javaログイン・ページとエラー・ページのローカライゼーション・サポート

Java SSOログイン・ページとエラー・ページには、OC4Jサポートのローカライゼーションが付属しています。これらのページで表示されるコンテンツは、ブラウザの設定に従ってローカライズされます。

ログイン・ページまたはエラー・ページのカスタマイズ

カスタム・ログイン・ページまたはカスタム・エラー・ページとJava SSOとの併用は直接はサポートされていませんが、デプロイされたlogin.jspファイル、loginerror.jspファイル、error.jspファイルをカスタマイズし、次のいずれかの処理を実行することができます。

Java SSOの設定と構成

ここでは、OC4JのJava SSO構成について説明します。この項の内容は次のとおりです。

Application Server Controlを使用してJava SSOとパートナ・アプリケーションを構成することをお薦めします(最初の項を参照)。2番目の項と3番目の項には、結果として設定される構成パラメータとプロパティが記載されています(必要に応じて手動で設定することもできます)。最後の項には、特別な考慮事項とシナリオが記載されています。

Application Server Controlを使用したJava SSOの構成

Application Server Controlコンソールでは、「Java SSO構成」ページを使用します。このページにナビゲートするには、次の手順を実行します。

この項の以降の部分で、次の項目について説明します。

javassoアプリケーションの起動

Oracle Application Serverクラスタ環境の場合、「クラスタ・トポロジ」ページから、必要に応じて任意のOC4Jインスタンスのjavassoアプリケーションを起動できます。

  1. 「メンバー」(アプリケーション・サーバーとOC4Jインスタンスがリストされている)から「すべてを開く」リンクを選択し、インスタンスごとにすべてのアプリケーションを表示します。

  2. 該当するインスタンスのjavassoアプリケーションを選択します。

  3. 「起動」を選択します。

OC4Jスタンドアロン環境でjavassoアプリケーションを起動するには、次の手順に従います。

  1. OC4Jホームページで「アプリケーション」を選択します。

  2. 「アプリケーション」ページで、javassoアプリケーションを選択します。

  3. 「起動」を選択します。

Java SSOプロパティの設定と対称鍵の生成

「Java SSO構成」ページで「インスタンスおよびプロパティ」タブを選択し、Java SSOプロパティを設定します。これにより、新しい対称鍵も生成できます。

「インスタンスおよびプロパティ」ページから、次の項目を指定できます。

Java SSOが適切に構成されていない場合、前述のパラメータを必要に応じて設定した後、「Java SSOの構成」を使用してJava SSOを構成します。これにより、新しい対称鍵が自動的に生成されます。

Java SSOが適切に構成された後で再構成する場合、再構成の適用時に新しい対称鍵を生成するかどうかを指定するチェック・ボックスを使用します。次のいずれかの状況の場合は、新しいキーを生成する必要があります。

前述のパラメータを必要に応じて設定した後、「適用」「Java SSOの構成」のかわりに表示される)を選択して再構成を適用し、キーを生成します。

設定は、jazn.xmlファイル内の<jazn>要素下の<property>サブ要素に反映されます。クラスタ内では、設定とキーはすべてのOC4Jインスタンスに適用されます。


重要

  • 10.1.3.1のパッチ・セットを使用している場合、10.1.3.1のフレッシュ・インストールとは異なり、「単一インスタンスOC4Jインストール用デフォルトJava SSOプロパティ設定」に記載されているデフォルトのjazn.xml設定は存在しません。これらの設定は、Java SSOを構成する前に手動で追加する必要があります。

  • デフォルトでは、Java SSOを構成するまで、jazn.xmlファイルにキーのダミー値が保存されます(custom.sso.key.alias設定内)。

  • 同じJava SSOを使用するように構成されているアプリケーションは、すべて1つのキーを共有します。(これは、複数のOC4Jインスタンスを使用するシナリオでのみ問題が発生する可能性があります。)

  • 変更を有効にするには、OC4Jインスタンスを再起動する必要があります。再起動を求める通知が表示されます。

  • Oracle Identity Managementを使用する場合、OC4JのインスタンスをOracle Internet Directoryのインスタンスに関連付けた後、Java SSOの設定を作成します。この関連付けを行うと、OC4Jのhomeインスタンスのjazn.xmlファイル内にある<jazn>要素の構成が書き換えられてしまうため、それまでの設定はすべて失われます。

 

javassoアプリケーション用セキュリティ・プロバイダの構成

使用されるjavassoアプリケーションと、Java SSOを使用する各パートナ・アプリケーションは、すべて同じセキュリティ・プロバイダを使用するように構成されている必要があります。デフォルトでは、javassoはファイルベース・プロバイダを使用するように構成されています。

特定のOC4Jインスタンスでjavassoのセキュリティ・プロバイダを変更するには、Application Server ControlコンソールでそのインスタンスのOC4Jホームページに移動します。スタンドアロン環境では、OC4Jホームページは1つだけです。Oracle Application Serverクラスタ環境では、「クラスタ・トポロジ」ページで該当するOC4Jインスタンスを選択します。

  1. OC4Jホームページで「管理」タブを選択します。

  2. 「管理」ページの「セキュリティ」から、「セキュリティ・プロバイダ」タスクに移動します。

  3. 「セキュリティ・プロバイダ」ページで、javassoの「編集」タスクに移動します。

  4. javassoの「セキュリティ・プロバイダ」ページで、「セキュリティ・プロバイダの変更」を選択します。


    注意

    • セキュリティ・プロバイダの変更を有効にするには、アプリケーションを再起動する必要があります。

    • 複数のOC4Jインスタンスが存在し、一部のjavassoアプリケーションが同じセキュリティ・プロバイダを使用していない場合、Application Server ControlコンソールのJava SSOの「インスタンスおよびプロパティ」ページには、各OC4Jインスタンスのjavassoアプリケーションに関連する「セキュリティ・プロバイダの変更」オプションが表示されます。このオプションを使用すると、javassoアプリケーションを構成するプロセスが単純になります。

     

各セキュリティ・プロバイダ・タイプには、それを構成するための独自のタスク・セットが必要です。タスクの詳細は、次を参照してください。

パートナ・アプリケーション用セキュリティ・プロバイダの構成

前述のように、すべてのパートナ・アプリケーションとjavassoアプリケーションは、同じセキュリティ・プロバイダを使用するように構成されている必要があります。パートナ・アプリケーションであるカスタマ・アプリケーションに対しては、デプロイメント中に適切なセキュリティ・プロバイダを構成します。各セキュリティ・プロバイダ・タイプには、それを構成するための独自のタスク・セットが必要です。タスクの詳細は、次を参照してください。

Java SSOの使用でOracle Application Serverのコンソール・アプリケーションを共有する場合(Application Server Controlなど)、コンソール・アプリケーションが同じセキュリティ・プロバイダを使用していることも確認する必要があります。

Application Server Controlの場合、次の手順に従ってセキュリティ・プロバイダを変更できます。

  1. Application Server Controlを実行しているインスタンスのOC4Jホームページで、「管理」を選択します。

  2. 「管理」ページの「セキュリティ」から、「セキュリティ・プロバイダ」タスクに移動します。

  3. 「セキュリティ・プロバイダ」ページで、「Application Server Controlのセキュリティ」を選択します。

  4. 最初の「設定」ページで、「セキュリティ・プロバイダ」を選択します。

  5. 「セキュリティ・プロバイダ」ページで、「セキュリティ・プロバイダの変更」を選択します。

  6. 「セキュリティ・プロバイダの変更」ページで、system-jazn-data.xmlファイルベース・プロバイダ、アプリケーション固有jazn-data.xmlファイルベース・プロバイダ、Oracle Identity Management(「Oracle Internet DirectoryとOC4Jの関連付け」に記載されているように、Oracle Internet Directoryのインスタンスが事前にOC4Jのインスタンスに関連付けられている場合)のどれを使用するかを指定します。

  7. 「OK」を選択します。変更を有効にするには、Application Server Controlを再起動する必要があります。

他のコンソール・アプリケーションの場合、セキュリティ・プロバイダを変更する手順は、前の項の「javassoアプリケーション用セキュリティ・プロバイダの構成」で説明したjavassoの場合に似ています。この場合、セキュリティ・プロバイダの変更を有効にするには、アプリケーションを再起動する必要があります。

Java SSOを使用するパートナ・アプリケーションの有効化

「Java SSO構成」ページで「関連アプリケーション」タブを選択し、Java SSOを使用できるようにアプリケーションを有効にします。

「関連アプリケーション」ページで、次の手順を実行します。

  1. 該当する各アプリケーションに対して、「Java SSO有効」を選択します。

  2. 「適用」を選択し、Java SSOを使用できるようにアプリケーションを有効にします。

これにより各アプリケーションに対して、orion-application.xmlファイルの<jazn-web-app>要素にauth-method="CUSTOM_AUTH"が設定されます。

javassoアプリケーションを起動し、Java SSOを使用するようアプリケーションを有効にしてからアプリケーションを起動すると、Java SSOを介してログイン・プロンプトが表示されます。


重要

  • Oracle Identity Managementをアプリケーションのセキュリティ・プロバイダとして使用する場合、Java SSOに対してアプリケーションを有効にする前に、セキュリティ・プロバイダを構成する必要があります。Application Server Controlを介してファイルベース・プロバイダからOracle Identity Managementに切り替えると、タイミングやパートナ・アプリケーションの種類に関係なく、そのアプリケーションのorion-application.xml内にある<jazn>要素が次のように置き換えられます。この場合、Java SSOに対してアプリケーションを有効にする以前の設定(CUSTOM_AUTH設定)が失われるため、再設定が必要になります。

    <jazn provider="LDAP" />
    
  • 変更を有効にするには、OC4Jインスタンスを再起動する必要があります。再起動を求める通知が表示されます。

  • 複数のホストが存在する状態でブラウザからパートナ・アプリケーションを起動する場合は、完全修飾ドメイン名を使用します。

 

Java SSO構成プロパティ

通常の場合、これまで説明したように、Application Server Controlを使用してJava SSOを構成することをお薦めします。

ここでは、すべてのJava SSO構成プロパティと、OC4Jインストール後のデフォルト設定について説明します。

Java SSO構成プロパティの説明

表14-1は、Java SSOプロパティを示しています。プロパティの設定は、jazn.xmlファイル内の<jazn>要素の<property>サブ要素に反映されます。

Application Server Controlでサポートされないプロパティ(表中で「なし」となっているもの)は、手動で設定する必要があります。

関連項目

 

表14-1    Java SSOプロパティ 
プロパティ  説明  Application Server Controlでの名前 

custom.sso.app.url.default 

指定されていない場合、SSOLoginサーブレットからのデフォルトのリダイレクションURL。 

なし 

custom.sso.cookie.domain 

Java SSOのCookieが、このDNSドメインに限定されます。デフォルトでは、ドメイン設定がない場合、CookieはSSOLogin URLにアクセスするホストに限定されます。ドメイン設定は、複数のOC4Jインスタンスとホストにわたる拡張インストールの場合に必要です。

(トラブルシューティングの項の「資格証明が正しいにもかかわらず、Java SSOログイン・ページに戻る」に記載されているように、必ずCookieドメインを適切に設定してください。) 

なし 

custom.sso.cookie.path 

Cookieに対するパスの制限。

デフォルト: / 

なし 

custom.sso.cookie.secure 

trueの場合、HTTPSサイトのみがサポートされます。

デフォルト: false 

なし 

custom.sso.key.alias 

Java SSOのCookie IDトークンの内容に署名する際に使用される共有対称鍵を格納します。 

なし 

custom.sso.login.attempts 

許可されるログイン試行回数。

デフォルト: 3 

ログイン試行回数 

custom.sso.session.timeout 

Java SSOのCookieの有効時間(秒)。これは非アクティブ・タイムアウトではなく、ハード・タイムアウトです。どのような場合でも、セッションはこの時間が経過するとタイムアウトします。

デフォルト: 7200 

セッション・タイムアウト 

custom.sso.token.asserter.authtypes 

Java SSOの認証方式。エンド・ユーザーがJava SSOにリダイレクトされた場合に、この認証方式を使用してエンド・ユーザーを認証します。標準的なJ2EE Webアプリケーション認証方式を指定できます。

デフォルト: FORM 

なし 

custom.sso.url.login 

SSOLoginサーブレットのURL。複数のホストが存在する場合、完全修飾ドメイン名を使用します。 

Java SSOログインURL 

custom.sso.url.logout 

SSOLogoutサーブレットのURL。複数のホストが存在する場合、完全修飾ドメイン名を使用します。 

Java SSOログアウトURL 


重要

OC4JインスタンスをOracle Internet Directoryインスタンスに関連付けると、OC4J homeインスタンスのjazn.xmlファイル内にある<jazn>要素構成は再度書き込まれます。以前の設定は失われます。 


単一インスタンスOC4Jインストール用デフォルトJava SSOプロパティ設定

デフォルトでは、単一OC4Jインスタンスのインストールの場合、ID管理フレームワーク実装としてJava SSOを使用するようにOC4Jが設定されます。これには、前の項の「Java SSO構成プロパティの説明」で説明したJava SSOプロパティの設定と、「ID管理フレームワーク・プロパティの構成」で説明したID管理フレームワーク・プロパティのJava SSO設定が含まれます。

jazn.xmlに事前に構成されている設定は、次のとおりです。

<jazn provider="XML" location="./system-jazn-data.xml" default-realm="jazn.com">
   <!-- properties to configure the 3rd party IDM framework -->
   <property name="idm.authentication.name" value="JavaSSO" />
   <property name="idm.token.asserter.class"
             value="oracle.security.jazn.sso.SSOCookieTokenAsserter" />
   <property name="idm.token.collector.class"
             value="oracle.security.jazn.sso.SSOCookieTokenCollector" />
   <property name="idm.token.type" value="HTTP_COOKIE" />
   <property name="idm.token.collector.cookie.1" value="ORA_OC4J_SSO" />
 
   <!-- properties for the out of the box Java SSO -->
   <property name="custom.sso.url.login" value="/jsso/SSOLogin" />
   <property name="custom.sso.url.logout" value="/jsso/SSOLogout" />
   <property name="custom.sso.key.alias" value="ssoSymmetricKey" />
</jazn>


重要

 

Java SSOに対してパートナ・アプリケーションを有効にする構成

Java SSOを使用する各パートナ・アプリケーションは、Java SSOを有効にするように構成されている必要があります。この場合、Application Server Controlを使用することをお薦めします(「Java SSOを使用するパートナ・アプリケーションの有効化」を参照)。

Java SSOを使用するパートナ・アプリケーションの有効化は、orion-application.xmlファイルの<jazn-web-app>要素内にある認証方式の設定"CUSTOM_AUTH"で指定されます。次に例を示します。

<jazn provider="XML" ... >
   ...
   <jazn-web-app auth-method="CUSTOM_AUTH" />
   ...
</jazn>

これにより、Java SSOの使用とID管理フレームワークの実装が、jazn.xmlの構成に基づいてトリガーされます。


重要

Oracle Identity Managementをアプリケーションのセキュリティ・プロバイダとして使用する場合、Java SSOに対してアプリケーションを有効にする前に、セキュリティ・プロバイダを構成する必要があります。Application Server Controlを介してファイルベース・プロバイダからOracle Identity Managementに切り替えると、タイミングやパートナ・アプリケーションの種類に関係なく、そのアプリケーションのorion-application.xml内にある<jazn>要素が次のように置き換えられます。この場合、Java SSOに対してアプリケーションを有効にする以前の設定(CUSTOM_AUTH設定)が失われるため、再設定が必要になります。

<jazn provider="LDAP" />
 


注意

  • OC4Jデフォルト構成によってJava SSOがID管理フレームワーク実装として指定されているため、ID管理フレームワーク(auth-method="CUSTOM_AUTH")を使用するようにパートナ・アプリケーションを有効にすると、このパートナ・アプリケーションはJava SSOを使用するように有効化されます。

  • <jazn-web-app>要素も、特定のWebアプリケーションに対して、<orion-web-app>のサブ要素としてorion-web.xmlファイルでサポートされます。この設定は、Webアプリケーションのorion-application.xml設定よりも優先されます。

  • orion-application.xmlまたはorion-web.xml内の認証方式設定は、web.xml内の認証方式設定よりも優先されます。

 

関連項目

 

特殊なシナリオ用の構成

これまではJava SSOの一般的な構成について説明しましたが、ここでは次のような特殊な考慮事項について説明します。

ファイルベース・プロバイダと2つのOC4Jインスタンスを使用する場合の考慮事項

ここでは、SOAインストールなど、2つのOC4Jインスタンスにわたるシングル・サインオン・アクセス用にJava SSOとファイルベース・プロバイダを採用する場合の使用例について説明します。ここで重要になるのは、両方のOC4Jインスタンスに対して、2つのsystem-jazn-data.xmlファイル内のユーザー・アカウントとロールを同期化することです。

次に使用例を示します。

デフォルトでは、各OC4Jインスタンスは、それ自体のファイルベース・プロバイダであるsystem-jazn-data.xmlファイルを使用して構成されます。ただし、両方のインスタンスでJava SSOを適切に機能させるには、ユーザー・アカウントとユーザー・ロールが2つのsystem-jazn-data.xmlファイル間で同期化されている必要があります。このためには、OC4Jグループ機能を使用して次の手順を実行します。

  1. 例として、Java SSOのOC4JグループJSSO_GROUPを作成します。「OC4Jの基本的なグループ機能」を参照してください。

  2. Java SSOアプリケーションがファイルベース・プロバイダsystem-jazn-data.xmlを使用するように構成されていることを確認した後(デフォルト設定)、OC4J_HOMEでJava SSOアプリケーションを起動します。(この使用例では、1つのOC4JインスタンスのみでJava SSOアプリケーションを起動します。)

  3. Java SSOを使用するJ2EEアプリケーションを、OC4J_SOAインスタンスにデプロイします。ファイルベース・プロバイダを使用するように各アプリケーションを構成し、各アプリケーションに対してJava SSOを有効にします。

  4. OC4J_HOMEOC4J_SOAを、JSSO_GROUPのメンバーとして追加します。「OC4Jの基本的なグループ機能」を参照してください。

これらのアプリケーションのユーザーとロールを引き続き管理する場合、JSSO_GROUPに対応するOC4J J2EEServerGroup MBeanを使用し、適切なセキュリティ・プロバイダMBean操作を実行します。このMBeanにより、JSSO_GROUPメンバー間でユーザー・アカウントとロールが同期化されます。「クラスタMBeanブラウザの機能およびJ2EEServerGroup MBean」を参照してください。


注意

2つのインスタンスのsystem-jazn-data.xmlファイル間でユーザー構成を手動で調整しても、同じ結果が得られます。ただし、エラーが発生する可能性が高くなります。 


関連資料

  • OC4Jグループ機能の追加情報は、Application Server Controlオンライン・ヘルプのグループOC4Jインスタンスのページに関するトピックを参照してください。

 

複数OC4Jインスタンスの場合の一般的な考慮事項

複数のOC4Jインスタンスを使用するインストール・タイプの場合、「単一インスタンスOC4Jインストール用デフォルトJava SSOプロパティ設定」で説明するデフォルト構成は適していません。プロパティはjazn.xml内で参照できますが、設定はされていません。

Java SSOのすべての構成およびID管理フレームワークの関連する構成は、インスタンス間で複製されている必要があります。主な問題は、system-jazn-data.xml設定に加えて、jazn.xml内のプロパティやID管理フレームワークのプロパティがApplication Server Controlによって設定されないということです。共有Java SSOキーとApplication Server Controlによって設定されたJava SSOのプロパティは、Application Server Control機能によってすべてのOC4Jインスタンスに対してすでに伝播されています。

必要に応じて次の手順を実行します。

  1. Java SSOの設定と構成を指定します(「Application Server Controlを使用したJava SSOの構成」を参照)。Application Server Controlによって設定されたJava SSOプロパティがインスタンスに適用されることに注意してください。

  2. Application Server ControlによってサポートされないJava SSOプロパティや、関連するID管理フレームワークの追加プロパティなど、jazn.xml内の関連する他のプロパティ設定をOC4Jインスタンス間で複製します。通常、このようなプロパティに対しては、各OC4Jインスタンスのjazn.xmlファイル内にある構成を手動で複製するのが唯一の方法です。

  3. OC4Jグループ機能を使用して、グループのsystem-jazn-data.xmlを構成します。(これは、ファイルベース・セキュリティ・プロバイダ、ログイン・モジュール設定、ポリシー設定などの場合です。)OC4Jグループは、「OC4Jの基本的なグループ機能」を参照してください。また、「クラスタMBeanブラウザの機能およびJ2EEServerGroup MBean」では、OC4Jインスタンス間でsystem-jazn-data.xmlのユーザー設定を調整する方法について説明しています。インスタンス間でログイン・モジュール構成をメンテナンスする操作もあります(setLoginModuleなど)。

    関連資料

    • OC4Jグループ機能の追加情報は、Application Server Controlオンライン・ヘルプのグループOC4Jインスタンスのページに関するトピックを参照してください。

     

10.1.3.0.0に10.1.3.1パッチを適用する場合の考慮事項

既存の10.1.3.0.0インストールに対してOC4J 10.1.3.1パッチをインストールする場合、10.1.3.1フレッシュ・インストールとは異なり、「単一インスタンスOC4Jインストール用デフォルトJava SSOプロパティ設定」で説明するデフォルト構成は適していません。これは、jazn.xmlのプロパティが参照されないためです。

この場合、デフォルト構成を手動でjazn.xmlに追加し、「Application Server Controlを使用したJava SSOの構成」で説明する適切なJava SSO構成を実行する必要があります。

Java SSO API

Java SSOには、次のユーティリティ・クラスが用意されています。

oracle.security.jazn.sso.util.JSSOUtil

OC4J 10.1.3.1実装では、このクラスは次のAPIを提供します。

Java SSOログアウトAPI

Java SSOに付属するJSSOUtilユーティリティ・クラスは、静的logout()メソッドを提供します。アプリケーション固有のログアウトの準備と処理が完了したら、このメソッドはアプリケーション・セッション・ログアウトの最後の手順として使用されます。

次に例を示します。

JSSOUtil.logout(response, "http://portal.acme.com");

Java SSOの使用方法の概要

ここでは、前述したJava SSOを使用する場合の重要なアクションを要約します。

開発においては、Java SSOを使用することがほとんどの場合で透過的であり、特別なコーディングを必要としません。統合の1つのポイントはログアウトAPIです(前項の「Java SSOログアウトAPI」を参照)これは、オプションとして使用できます。

構成する場合、次の手順を実行します。詳細は、「Java SSOの設定と構成」を参照してください。Application Server Controlを使用して、すべての手順を実行することができます。

  1. javassoアプリケーションを起動します。

  2. Java SSOプロパティを構成します。(設定は、jazn.xml内の<jazn>要素下の<property>要素に書き込まれます。)

  3. 適切なセキュリティ・プロバイダを使用するようにjavassoアプリケーションを構成します。

  4. javassoと同じセキュリティ・プロバイダを使用するようにパートナ・アプリケーションを構成します。カスタマ・アプリケーションの場合、デプロイメント中にセキュリティ・プロバイダを設定します。Java SSOで共有するOracle Application Serverのコンソール・アプリケーションの場合(Application Server Controlなど)、セキュリティ・プロバイダを適切に変更できます。

  5. Java SSOを使用するように各パートナ・アプリケーションを有効にします。(これにより、アプリケーションのorion-application.xmlファイル内にauth-method="CUSTOM_AUTH"が設定されます。)これは、既存アプリケーションをJava SSO対応に変換するために必要な唯一の構成手順です。web.xmlファイルの<login-config>設定は、変更する必要がありません(上書きされます)。


    重要

    複数のホストが存在する状態でブラウザからパートナ・アプリケーションを起動する場合は、完全修飾ドメイン名を使用します。 


Java SSOのトラブルシューティング

ここでは、発生する可能性がある次の問題について説明します。

ページが見つからない

Java SSOに対して有効になっているパートナ・アプリケーションにアクセスしようとするとページが見つからないというエラーが発生する場合、javassoアプリケーションが実行されていない可能性があります。これをテストするには、SSOLoginサーブレットへのアクセスを行います。次のURLに直接移動できます。

http://host:port/jsso/SSOLogin

または、Java SSOプロパティを構成するApplication Server Controlのページから「ログインURLのテスト」を選択することもできます。

最上位ページのhost:portにリダイレクトされれば、テストは成功です。

javassoアプリケーションを起動する手順は、「javassoアプリケーションの起動」に記載されています。

資格証明が正しいにもかかわらず、Java SSOログイン・ページに戻る

Java SSOログイン・ページで正しい資格証明を指定したにもかかわらずログイン・ページに戻された場合、次のことが考えられます。


戻る 次へ
Oracle
Copyright © 2006 Oracle Corporation.

All Rights Reserved.
目次
目次
索引
索引