ヘッダーをスキップ
Oracle® Fusion Middlewareアプリケーション・セキュリティ・ガイド
11gリリース1(11.1.1)
B56235-04
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

14 Oracle Fusion Middlewareにおけるシングル・サインオンの概要

ここでは、Oracle Fusion Middlewareで推奨される一連のシングル・サインオン・ソリューションの概略を説明します。内容は次のとおりです。

14.1 デプロイメントに適したSSOソリューションの選択

Oracle Platform Security Servicesは、Oracle WebLogic Serverの内部セキュリティ・フレームワークを構成します。WebLogicドメインは、認証プロバイダと呼ばれる個別のソフトウェア・コンポーネントを使用してセキュリティ・データの格納、トランスポート、およびセキュリティ・データへのアクセスを提供します。認証プロバイダでは、各種システムを使用してセキュリティ・データを格納できます。WebLogic Serverによってインストールされる認証プロバイダは、組込みLDAPサーバーを使用します。

Oracle Fusion Middleware 11gは、アプリケーションによる境界認証の確立および実施のために使用できる、次の新しいシングル・サインオン・ソリューションをサポートしています。

ニーズに応じたソリューションを注意深く選択する必要があります。適切なSSOソリューションの選択は、十分な検討を必要とし、それぞれの要件に応じて異なります。この項では、ニーズにあわせて最適なソリューションを選択するための一般的な情報とガイドラインについて説明します。


注意:

Access Manager 11g Single Sign-onソリューションが提供する多くの機能とアーキテクチャを活用するために、このソリューションへのアップグレードを検討することをお薦めします。


関連項目:

  • 『Oracle Fusion Middlewareセキュリティ概要』

  • Oracle Security Token Serviceを伴うOracle Fusion Middleware Oracle Access Manager管理者ガイド


14.2 概要: WebLogic ServerのOAM認証プロバイダ

特に明記されていなければ、ここで説明する情報はOracle Access Manager 11gと10gの両方のデプロイに同じように当てはまります。

Oracle Access Manager認証プロバイダは、Oracle WebLogic Serverで動作するプロバイダの1つです。Oracle Access Manager 11gまたは10gでOracle Access Manager認証プロバイダが動作するには、Oracle WebLogic Suite全体もOracle Java Required Files(JRF)も必要としません。

JRFをインストールしたWebLogic Serverドメインには、Oracle Fusion Middleware製品のドメインの一部としてJRFテンプレートが存在します。この場合、OAM IDアサーション・プロバイダとOAM認証プロバイダは自動的に構成に使用できるようになっています。WebLogicドメインにJRFがインストールされていない場合には、後述するようにドメインの特定の場所にOAMAuthnProvider.jarを追加する必要があります。


注意:

Oracle Fusion Middleware製品のドメインの一部としてJRFテンプレートが存在します。

次に該当する場合は、WebLogic ServerでOAM認証プロバイダを使用できます。

WebLogicユーザーが次の機能のいずれか(または両方)を使用できるように認証プロバイダを構成できます。

シングル・サインオン機能のためのIDアサーション・プロバイダ

Web専用アプリケーションの実装では、SSOの用途のほとんどすべてを扱うことができます。例外は、Oracle Web Services ManagerによってWebサービスが保護されている場合です。この場合、信頼できるWebゲートがありません。かわりに、IDアサーション・プロバイダが提供するアクセス・ゲートにアクセスすると、このアクセス・ゲートがOAM 10gアクセス・サーバー(または11g OAM Server)と対話します。それ以外の処理は基本的には同じです。

IDアサーション・プロバイダは着信ID(OAM_REMOTE_USER)のみをアサートし、構成済の認証プロバイダに制御を渡して残りの認証プロセス(適切なプリンシパルを持つサブジェクトの移入)を続行します。

IDアサーション・プロバイダは、リクエストを提供するWebゲートのリリース(10gまたは11g)に応じて異なる方法で構成する必要があります。たとえば、アプリケーションを保護する場合の各リリースの構成方法は次のとおりです。

認証プロバイダの機能

認証プロバイダ機能に、シングル・サインオン機能はありません。認証プロバイダは、Oracle Access Manager認証スキームではなく、アプリケーション構成ファイルweb.xmlで指定されている認証方式に従ってユーザーに資格証明を要求します。ただし、アプリケーション・ドメインにはOracle Access Manager認証スキームが必要です。

詳細は、次の項目を参照してください。

14.2.1 Oracle Access ManagerでのIDアサーション・プロバイダ機能の使用について

ここでは、Oracle Access Manager 11gおよび10g WebゲートでのIDアサーション・プロバイダ機能の使用について説明し、手順を紹介します。OAM 11gで11g(または10g)のWebゲートを使用する場合も、OAM 10gで10gのWebゲートを使用する場合も、処理は一部の例外を除きほぼ共通しています。たとえば、Oracle Access Manager 11gでは、アクセス・サーバーがOAMサーバーと呼ばれます。

リクエストはすべて、まずリバース・プロキシWebサーバーにルーティングされ、Webゲートでインターセプトされます。Oracle Access Manager内に構成されている認証スキームに基づいて、ユーザーに対して資格証明の提示が要求されます。認証スキームとしては、フォームの使用(フォームベースのログイン)をお薦めします。

IDアサーション・プロバイダ機能は、Web層でWebゲートが実行する境界認証を利用しています。IDアサーション・プロバイダ機能をトリガーするにはWebゲートのリリースに適合するアクティブ・タイプが選択されている必要があります。

IDアサーション・プロバイダ機能をトリガーすると、構成済の認証プロバイダ(ログイン・モジュール)が呼び出され、サブジェクトを作成して適切なプリンシパルが移入されます。


注意:

IDアサーション・プロバイダ機能の使用における11g Webゲートと10g Webゲートとの唯一の違いは、プロバイダで選択されるアクティブ・タイプです。

選択アクティブ・タイプ

IDアサーション・プロバイダ機能のアクティブ・タイプ構成パラメータの使用可能なUIセクションには2つの値がリストされます。次のいずれかが存在するときにIDアサーション・プロバイダ機能がトリガーされるようにするにはこの2つの値のいずれかを「選択済」タイプとして選択する必要があります。

  • 10g Webゲート: ObSSOCookieを「選択済」タイプとして、OAM_REMOTE_USERトークンでトリガーします。

  • 11g Webゲート: OAMAuthnCookieを使用し、プロバイダの「選択済」タイプはOAM_REMOTE_USER にする必要があります。

OAM_REMOTE_USERヘッダーには、ログイン・ユーザーのuidが記述されています。IDアサーション・プロバイダで使用する選択済アクティブ・タイプにOAM_REMOTE_USERを構成する場合、認可成功時のレスポンス・ヘッダーの構成部分としてOAM_REMOTE_USERを設定するOracle Access Managerポリシーが必要です。

認証処理およびIDアサーション・プロバイダ機能

特に指定がないかぎり、ここに記載された情報はOracle Access Manager 11gとOracle Access Manager 10gの双方に同様に適用されます。

Webゲートが構成されている認証スキームを使用してユーザーを認証すると、次のように処理されます。

  • Webゲート:

    11g WebゲートによってOAMAuthnCookieが設定され、OAM_REMOTE_USERトークンがトリガーされます。

    10g WebゲートによってObSSOCookieが設定され、OAM_REMOTE_USERトークンがトリガーされます。

  • OHS Webサーバーのmod_weblogicモジュールにより、リクエストがOracle WebLogic Serverに転送されます。


    注意:

    mod_weblogicは、Apache用のWebLogic Serverプラグインの汎用名です。Oracle HTTP Server 11gの場合、このプラグインの名前はmod_wl_ohsで、実際のバイナリ名はmod_wl_ohs.soです。

  • OAM_REMOTE_USER: OAMAuthnCookieまたはObSSOCookieが存在すると構成済のIDアサーション・プロバイダが呼び出され、OAM_REMOTE_USERヘッダーのアサーションの処理が続きます。

  • アサーション・プロセス後: セキュリティ・レルムに構成されている認証プロバイダが呼び出されて、サブジェクトにプリンシパル(ユーザーとグループ)が移入されます。

図14-1およびそれに続く概要では、Web専用アプリケーションでIDアサーション・プロバイダ機能を使用した場合のコンポーネント間の処理について説明します。この実装で、SSOの使用状況のほぼすべてに対応できます。ただしOracle Web Services Managerで保護されたWebサービスは例外です。この場合は信頼されているWebゲートがありません。IDアサーション・プロバイダから提供されるアクセス・ゲート(図14-1の点線)に接続され、11g OAMサーバー(または10g OAMアクセス・サーバー)と連携します。その他の処理はすべて実質的に同じです。

正しい構成のリストについては、「Oracle Access Manager認証プロバイダのパラメータ・リスト」を参照してください。

図14-1 Oracle Access ManagerおよびWebゲートを使用したIDアサーション・プロバイダの構成

図14-1については周囲のテキストで説明しています。

プロセス概要: OAM 11g、11g WebゲートおよびWeb専用アプリケーションを使用したIDアサーション・プロバイダ

  1. ユーザーが、Oracle WebLogic Serverにデプロイされている、Oracle Access Managerによって保護されたWebアプリケーションにアクセスしようとします。

  2. リバース・プロキシWebサーバーのWebゲートがリクエストをインターセプトし、リクエストされたリソースが保護されているかどうかをOAMサーバーに問い合せます。

  3. リクエストされたリソースが保護されている場合、Webゲートは、そのリソースに対して構成されているOracle Access Manager認証スキームのタイプ(フォーム・ログインを推奨)に基づいてユーザーの資格証明を要求します。ユーザーは、ユーザー名やパスワードなどの資格証明を入力します。

  4. Webゲートは、認証リクエストをOAMサーバーに転送します。

  5. OAM 11g Serverによって、ユーザーの資格証明がプライマリ・ユーザー・アイデンティティ・ストアに照らして検証され、レスポンスがWebゲートに返されます(OAM 10gアクセス・サーバーでは構成されているユーザー・ディレクトリに照らしてユーザーが検証されます)。検証結果に応じて次のように処理されます。

    • 正常な認証: ステップ6に進みます。

    • 認証失敗: ログイン・フォームが表示され、ユーザーは資格証明の再入力を求められます。エラーは報告されません。

  6. OAMサーバーはセッション・トークンを作成し、Webゲートに送信します。

    11g Webゲート: OAMAuthn cookieが設定されて返され、OAM_REMOTE_USERトークンがトリガーされます。

    10g Webゲート: ObSSOCookieが設定され、返されます。

    Webサーバーはこのリクエストをプロキシに転送し、プロキシはmod_weblogicプラグインを使用してリクエストをOracle WebLogic Serverに転送します。

    mod_weblogicは、その構成設定に従ってリクエストを転送します。


    注意:

    mod_weblogicは、Apache用のWebLogic Serverプラグインの汎用名です。Oracle HTTP Server 11gの場合、このプラグインの名前はmod_wl_ohsです。

  7. WebLogic Serverのセキュリティ・サービスは、タイプOAM_REMOTE_USERのトークンを受け入れるように構成されているOracle Access Manager IDアサーション・プロバイダを呼び出します。このIDアサーション・プロバイダは、ヘッダーを使用してCallbackHandlerを初期化します。さらに、ダウンストリームLoginModule用として、NameCallbackにユーザー名を設定します。

  8. Oracle WebLogicセキュリティ・サービスがユーザーを認可し、リクエストしたリソースへのアクセスを許可します。

  9. レスポンスがリバース・プロキシWebサーバーに返されます。

  10. レスポンスがブラウザに返されます。

14.2.2 Oracle Access Managerでの認証プロバイダ機能の使用について

この項では、Oracle Access ManagerでのWebリソースおよび非Webリソースへのアクセスを保護するために構成した認証プロバイダの使用について説明します。


注意:

特に指定がないかぎり、ここに記載された情報はOracle Access Manager 11gとOracle Access Manager 10gの双方に同様に適用されます。

この認証プロバイダ機能は、Oracle Access Managerサービスを使用して、WebLogic Serverにデプロイされたアプリケーションにアクセスするユーザーを認証します。ユーザーは、ユーザー名やパスワードなどの資格証明に基づいて認証されます。

ユーザーが保護されたリソースへのアクセスを試みると、Oracle WebLogic Serverによって、アプリケーションのweb.xmlファイルで指定されている認証方式に基づいたユーザー資格証明が要求されます。次に、Oracle WebLogic Serverが認証プロバイダを呼び出し、認証プロバイダは資格証明をOracle Access Managerアクセス・サーバーに転送します。この資格証明は、エンタープライズ・ディレクトリ・サーバーによって検証されます。

図14-2は、Webおよび非Webリソースに対してOracle Access Manager認証を行うコンポーネントの配置と情報フローを示しています。詳細は、図の後に説明します。この場合、認証プロバイダはカスタム・アクセス・ゲートを介して11g OAMサーバー(またはOAM 10gアクセス・サーバー)と通信します。

図14-2 Webおよび非Webリソース用の認証プロバイダ

Webおよび非Webリソース用のOAM認証
図14-2「Webおよび非Webリソース用の認証プロバイダ」の説明

プロセス概要: Webおよび非Webリソース用の認証プロバイダ機能

  1. ユーザーが、Oracle WebLogic Serverにデプロイされている(アプリケーションのweb.xmlファイルにある認証方式で保護されている)Java EEアプリケーションにアクセスしようとします。

  2. Oracle WebLogic Serverがリクエストをインターセプトします。

  3. Oracle WebLogicセキュリティ・サービスが、Oracle Access Manager認証プロバイダのLoginModuleを呼び出します。LoginModuleは、OAPライブラリを使用して11g OAMサーバー(または10gアクセス・サーバー)と通信し、ユーザー資格証明を検証します。

    • ユーザー・アイデンティティが正常に認証されると、WLSUserImplプリンシパルとWLSGroupImplプリンシパルがサブジェクトに移入されます。

    • Oracle Access ManagerのLoginModuleがユーザーのアイデンティティを正常に認証できない場合は、LoginException(認証失敗)が返され、Oracle WebLogicリソースへのアクセスは拒否されます。

  4. Oracle Access Manager認証プロバイダは、Oracle WebLogic ServerのUserNameAssertionをサポートします。

  5. Oracle Access Manager認証プロバイダは、任意のIDアサーション・プロバイダとともに使用できます。この場合、Oracle Access Manager認証プロバイダはユーザー名を解決し、そのユーザー名に関連付けられているロールとグループを取得します。

14.2.3 Oracle Access Manager SSOのシナリオとソリューションに対応するアプリケーションの選択

この項では、現在のアプリケーション設定に応じて、Oracle Access Managerと認証プロバイダを使用するアプリケーションの選択について説明します。認証プロバイダでOracle Access Manager 11gまたは10gのどちらを使用する場合でも、詳細はよく似ています。

14.2.3.1 アプリケーションでのOracle Access Managerの初めての使用

アプリケーションでOracle Access Manager認証プロバイダを初めて使用する場合、使用する機能に応じて、次の項を参照してください。

14.2.3.2 アプリケーションでのOracle Application ServerからOracle WebLogic Serverへの移行

旧型のOracle Application Server(OC4J)にアプリケーションをデプロイしている場合、次のわずかな手順を実行すると、Oracle WebLogic Serverでそのアプリケーションから認証プロバイダを使用できるようになります。

14.2.3.3 アプリケーションでのWebLogic SSPI用のOAMセキュリティ・プロバイダの使用

Oracle Access ManagerのWebLogic SSPI用セキュリティ・プロバイダは、WebLogicプラットフォームにデプロイした複数のJava EEアプリケーションにわたって認証、認可およびシングル・サインオンを提供します。WebLogic SSPI用セキュリティ・プロバイダでは、Oracle Access Managerを使用して、ビジネス・アプリケーションへのユーザー・アクセスも管理できます。


注意:

WebLogic SSPI用セキュリティ・プロバイダは、10g(10.1.4.3)の『Oracle Access Manager統合ガイド』ではセキュリティ・プロバイダとも呼ばれています。

Oracle Access ManagerのWebLogic SSPI用セキュリティ・プロバイダは、Oracle WebLogic Portalリソースへのアクセスを認証し、Oracle Access ManagerとOracle WebLogic Portal Webアプリケーション間のシングル・サインオンをサポートします。さらに、ユーザーおよびグループの管理機能も提供します。

Oracle Access Manager認証プロバイダは、WebLogic SSPI用セキュリティ・プロバイダよりも簡単にインストールおよび構成できます。認証プロバイダは、認証とシングル・サインオン(SSO)のサービスを提供するほか、Oracle WebLogic Serverがサポートするすべてのプラットフォームで機能します。

認証とSSOの目的でのみアプリケーションでOracle Access Manager WebLogic SSPI用セキュリティ・プロバイダを使用している場合は、最新の認証プロバイダのデプロイメントをお薦めします。ただし、最新のOracle Access Manager認証プロバイダでは得られない機能を使用している場合は、引き続きOracle Access Manager 10g WebLogic SSPI用セキュリティ・プロバイダを使用してもかまいません。


注意:

WebLogic SSPIコネクタは、Oracle Access Manager 10gでは使用できますが、Oracle Access Manager 11gではサポートされていません。

14.2.4 実装: プロバイダの使用におけるOAM 11gとOAM 10gの相違点

若干の違いはありますが、WebLogicコンテナのアプリケーションの保護にOAM 11gとOAM 10gのどちらを使用しても、実装ソリューションはよく似ています。

表14-1では、OAM 11gで認証プロバイダをデプロイする場合とOAM 10gでデプロイする場合の違いを簡単に説明しています。項の見出しが強調表示されています。

表14-1 OAM 11gとOAM 10gでの認証プロバイダ実装タスクの違い

OAM 11gの実装の詳細 OAM 10gの実装の詳細

OAM 11gの実装では次のタスクを実行します。詳細は、Oracle Security Token Serviceを伴うOracle Fusion Middleware Oracle Access Manager管理者ガイドを参照してください。

OAM 10gでSSOソリューションを実装するタスクは、この章の次の項を参照してください。


14.2.5 Oracle Access Managerで使用されるプロバイダの要件

認証プロバイダの実装に必要なコンポーネントとファイルは、SSOソリューションとしてOAM 11gとOAM 10gのどちらを使用してもほとんど同じです。次のようなわずかな例外があります。

  • Oracle Access ManagerとOracle WebLogic Serverで使用するエンタープライズ・ディレクトリ・サーバー(Oracle Internet DirectoryまたはOracle Sun Oneディレクトリ・サーバー)

  • Oracle Access Manager認証プロバイダを使用するように構成した10.3.1以降のOracle WebLogic Server(この章の後半にある説明を参照)

  • オプション: Fusion Middleware製品(Oracle Identity Manager、Oracle SOA Suite、Oracle WebCenterなど)

  • 認証プロバイダ: WebLogicコンテナにデプロイしたアプリケーションの場合、Oracle Fusion Middleware製品(Oracle Identity Management、Oracle SOA SuiteまたはOracle WebCenter)をインストールすると、Oracle Access ManagerのJARファイルおよびWARファイルを利用できるようになります。


    注意:

    Fusion Middlewareを組み込まずにスタンドアロンのOracle WebLogic Serverを使用している場合は、この章の後半にある手順のステップ1に従ってOracle Technology NetworkからJARファイルおよびWARファイルを取得する必要があります。

    • oamAuthnProvider.jar: シングル・サインオン用のOracle Access Manager IDアサーション・プロバイダのファイルとOracle WebLogic Server 10.3.1以降の認証プロバイダのファイルが含まれています。ユーザーやアプリケーションからのWebリソースおよび非Web(非HTTP)リソースに対するリクエストを処理するために、カスタムのOracle Access Managerアクセス・ゲートも用意されています。

    • oamauthenticationprovider.war: Oracle WebLogic Serverコンソールに表示されるプロバイダを、Oracle Access Managerで使用するために必要なプロバイダのみに制限します。

      拡張をデプロイする際に、WebLogic管理コンソールでは、そのWARファイルに記述されたファイルおよびディレクトリと、拡張のWARファイルに記述されたファイルおよびディレクトリとのメモリー内結合が作成されます。デプロイした拡張機能は、WebLogic管理コンソールの完全なメンバーになります。この拡張機能は、WebLogic Serverのセキュリティ・レルムで保護され、管理コンソールの他のセクションに移動できます。また、拡張機能からWebLogic Serverリソースを変更する場合、拡張機能は変更制御プロセスに参加します。詳細は、Oracle Fusion Middleware Oracle WebLogic Serverの管理コンソールの拡張を参照してください。

    • Oracle Access Manager 11g: リモート登録コマンドライン・ユーティリティは、Webゲートのプロビジョニングを合理化し、セキュリティ・ポリシーを備えた新しいアプリケーション・ドメインを作成します。管理者は、テンプレートを使用してWebゲートのパラメータと値を指定できます。

    • Oracle Access Manager 10g: プラットフォームに依存しないOAMCfgToolとスクリプト(oamcfgtool.jar)によって、IDアサーション・プロバイダ機能でシングル・サインオンに使用されるOracle Access Managerのフォームベースの認証スキーム、ポリシー・ドメイン、アクセス・ポリシー、およびWebゲートプロファイルの作成が自動化されます。OAMCfgToolにはJRE 1.5または1.6が必要です。Fusion Middlewareアプリケーション用の国際化されたログイン・フォームはこれらのアプリケーションを保護するポリシーに対応しています。

  • Webゲートのリバース・プロキシとして、OHS 11gを構成する必要があります(Oracle Access Manager IDアサーション・プロバイダで必要)。

  • Oracle Access Manager:

    OAM 11g: Oracle Fusion Middleware Oracle Identity Managementインストレーション・ガイド』で説明されているように、Oracle Fusion Middleware構成ウィザードを使用して初期構成でデプロイされます。「Oracle Access Manager 11g SSOソリューションのデプロイ」を参照してください。

    OAM 10g: Oracle Access Managerインストレーション・ガイドで説明されているように、初期設定でインストールされます。「Oracle Access Manager 10gを使用したSSOソリューションのデプロイ」を参照してください。

  • Webゲート/アクセス・ゲート: Oracle Access ManagerでWebゲートまたはアクセス・ゲートのどちらのプロビジョニングが必要であるかは、OAM認証プロバイダの使用方法によって決まります。

    シングル・サインオン用のIDアサーション・プロバイダ: 境界認証を定義するために、アプリケーションごとに個別のWebゲートが必要です。

    認証プロバイダ(またはOracle Web Services Manager): 認証プロバイダで使用できるカスタム10gアクセス・ゲートが必要です。

14.3 WebLogic管理コンソールでのデバッグの設定

認証プロバイダでは、デバッグ・モードで動作する場合、アプリケーション内の低レベルのアクティビティの詳細な説明を提供するメッセージが使用されます。通常、この情報はそれほど必要とされません。ただし、Oracleサポート・サービスへの連絡が必要な場合、デバッグを設定することをお薦めします。デバッグを設定すると、Oracle WebLogic Serverのデフォルト・ログの場所に認証プロバイダのメッセージが表示されます。

デバッグを設定するには

  1. WebLogic管理コンソールにログインします。

  2. 「ドメイン」→「環境」→「サーバー」に移動し、使用するサーバーを選択します。

  3. 「デバッグ」タブをクリックします。

  4. 「このサーバーのデバッグ設定」で、「weblogic」→「security」→「atn」をクリックして開きます。

  5. 「DebugSecurityAtn」の隣にあるオプションをクリックして有効にします。

  6. 変更を保存します。

  7. Oracle WebLogic Serverを再起動します。

  8. Oracle WebLogic Serverのデフォルト・ログの場所で、SSOAssertionProviderを検索します。例:

    ####<Apr 10, 2009 2:32:16 AM PDT> <Debug> <SecurityAtn> <sta00483> <AdminServer> <[ACTIVE] 
    ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'> 
    <<WLS Kernel>> <> <> <1239355936490> <BEA-000000> 
    <SSOAssertionProvider:Type          = Proxy-Remote-User>