サポートされているSSOの方法

SSOでは、Webアイデンティティ管理ソリューションを使用して、認証済ユーザーのログイン名をOracle Enterprise Performance Management System製品に渡す必要があります。次の標準的なEPM Systemの方法を使用して、EPM Systemと市販あるいはカスタムのWebベースのSSOソリューションを統合できます。

注意:

ヘッダーをユーザー・アイデンティティの伝播手段とする方法を使用する場合は、セキュリティ対策として、Webサーバーとアプリケーション・サーバーの間にクライアント証明書認証(双方向SSL)を実装することをお薦めします。

HTTPヘッダー

Oracleシングル・サインオン(OSSO)、SiteMinderまたはOracle Access ManagerをWebアイデンティティ管理ソリューションとして使用する場合、EPM Systemセキュリティでは自動的にカスタムHTTPヘッダーを選択して、認証済ユーザーのログイン名をEPM Systemコンポーネントに渡します。

EPM System製品ユーザーのログイン名は、Oracle Hyperion Shared Servicesでユーザー・ディレクトリを構成する際に指定されるログイン属性によって判別されます。ログイン属性の簡単な説明は、Oracle Enterprise Performance Management Systemユーザー・セキュリティ管理ガイドのOID、Active Directoryおよびその他のLDAPベースのユーザー・ディレクトリの構成を参照してください。

HTTPヘッダーには、ログイン属性として設定される属性の値が含まれている必要があります。たとえば、uidログイン属性値である場合、HTTPヘッダーは、uid属性の値を持っている必要があります。

カスタムHTTPヘッダーの定義および発行の詳細は、Webアイデンティティ管理ソリューションのドキュメントを参照してください。

EPM Systemセキュリティにより、HTTPヘッダーが分析され、Shared Servicesで構成されたユーザー・ディレクトリに対して持っているログイン名が検証されます。

カスタム・ログイン・クラス

ユーザーがログインすると、Webアイデンティティ管理ソリューションでは、ユーザーがディレクトリ・サーバーに対して認証され、SSOメカニズムで認証済ユーザーの資格証明がカプセル化されて、下流のシステムでSSOが使用可能になります。Webアイデンティティ管理ソリューションでEPM System製品によってサポートされないメカニズムが使用されるか、ログイン属性の値がSSOメカニズムで使用できない場合、カスタム・ログイン・クラスを使用してログイン属性の値を導出し、EPM System製品に渡すことができます。

カスタム・ログイン・クラスを使用することによって、X509証明書ベースの認証を使用するセキュリティ・エージェントとEPM Systemを統合できます。この認証メカニズムを使用するには、EPM Systemコンポーネント間のSSOインタフェースを定義するための標準Shared Services APIの実装と、Webアイデンティティ管理ソリューションが必要です。カスタム・ログイン・クラスでは、ログイン属性の値がEPM System製品に渡される必要があります。ログイン属性の簡単な説明は、Oracle Enterprise Performance Management Systemユーザー・セキュリティ管理ガイドのOID、Active Directoryおよびその他のLDAPベースのユーザー・ディレクトリの構成を参照してください。サンプル・コードと実装ステップは、カスタム・ログイン・クラスの実装を参照してください。

カスタム・ログイン・クラス(デフォルト名com.hyperion.css.sso.agent.X509CertificateSecurityAgentImpl)を使用するには、com.hyperion.css.CSSSecurityAgentIFインタフェースの実装をこのクラスパスで使用できる必要があります。CSSSecurityAgentIFでは、ユーザー名とパスワードを取得するゲッター・メソッドが定義されます(オプション)。インタフェースでnullのパスワードが戻される場合、セキュリティ認証ではプロバイダが信頼済として扱われ、構成済プロバイダにおけるユーザーの存在が確認されます。インタフェースでパスワードのnull以外の値が戻される場合、EPM Systemでは、この実装により戻されるユーザー名とパスワードを使用して要求の認証が試みられます。

CSSSecurityAgentIFは、getUserNamegetPasswordの2つのメソッドから構成されています。

getUserNameメソッド

このメソッドでは、認証用のユーザー名が戻されます。

java.lang.String getUserName(
                    javax.servlet.http.HttpServletRequest req,
                    javax.servlet.http.HttpServletResponse res)
                    throws java.lang.Exception

reqパラメータでは、ユーザー名を判別するために使用される情報を持つHTTP要求が識別されます。resパラメータは使用されません(下位互換性にプリセット)。

getPasswordメソッド

このメソッドでは、認証用のクリアテキストのパスワードが戻されます。パスワードの取得はオプションです。

java.lang.String getPassword(
                    javax.servlet.http.HttpServletRequest req,
                    javax.servlet.http.HttpServletResponse res)
                    throws java.lang.Exception

reqパラメータでは、パスワードを判別するために使用される情報を持つHTTP要求が識別されます。resパラメータは使用されません(下位互換性にプリセット)。

HTTP認証ヘッダー

EPM Systemセキュリティでは、HTTP認証ヘッダーを使用して、ログイン属性の値をWebアイデンティティ管理ソリューションからEPM System製品に渡すことができます。EPM System製品は、認証ヘッダーを分析して、ユーザーのログイン名を取得します。

HTTP要求からリモート・ユーザーを取得

EPM Systemセキュリティでは、HTTP要求を使用して、ログイン属性の値をWebアイデンティティ管理ソリューションからEPM System製品に渡すことができます。Webアイデンティティ管理ソリューションがログイン属性(setRemoteUser関数を使用して設定される)の値を含むHTTP要求を渡す場合、このSSOメソッドを使用します。

アイデンティティ管理製品を使用したヘッダーベース認証

EPM Systemは、Oracle Identity Cloud Services、Microsoft Azure AD、Oktaなど、ヘッダーベース認証をサポートするアイデンティティ管理製品をサポートします。概念的なワークフローは次のとおりです:

  • リバース・プロキシとして機能するゲートウェイ・アプリケーションが、認証されていないネットワーク・アクセスを制限することで、EPM Systemコンポーネントを保護します。
  • ゲートウェイ・アプリケーションがEPM SystemコンポーネントへのHTTP(S)要求をインターセプトし、要求をEPM Systemコンポーネントに転送する前に、アイデンティティ管理製品がユーザーを認証するようにします。
  • 要求をEPM Systemコンポーネントに転送している間、ゲートウェイ・アプリケーションは、認証されたユーザーのアイデンティティをHTTPヘッダー要求を介してEPM Systemコンポーネントに伝播します。

この認証シナリオをサポートするには、HTTP(S)ヘッダー要求を介して伝播される認証済ユーザーのアイデンティティで機能するようにEPM Systemを構成する必要があります。