設計およびコーディングに関する考慮事項

検索順序

Oracle Hyperion Shared Servicesでは、ネイティブ・ディレクトリ以外に複数のユーザー・ディレクトリを構成できます。デフォルトの検索順序の位置は、すべての構成済ユーザー・ディレクトリに割り当てられます。検索順序をOracle Hyperion Shared Services Consoleから変更できます。ネイティブ・ディレクトリを除き、構成済ユーザー・ディレクトリは検索順序から除去できます。Oracle Enterprise Performance Management Systemでは、検索順序に含まれていないユーザー・ディレクトリは使用されません。Oracle Enterprise Performance Management Systemユーザー・セキュリティ管理ガイドを参照してください。

検索順序により、ユーザーの認証のためにEPM Systemがユーザー・ディレクトリ内を循環する順序が決定されます。ユーザーがユーザー・ディレクトリ内で認証されている場合、EPM Systemは検索を停止し、ユーザーを戻します。ユーザーが検索順序内のユーザー・ディレクトリに対して認証されていない場合、EPM Systemは認証を拒否してエラーを戻します。

検索順序でのカスタム認証の影響

カスタム認証は、EPM Systemセキュリティによる検索順序の解釈に影響を及ぼします。

カスタム認証モジュールでユーザー名が戻された場合、EPM Systemは、カスタム認証で使用可能なユーザー・ディレクトリのみでユーザーを検索します。この段階では、EPM Systemはカスタム認証用に構成されていないユーザー・ディレクトリを無視します。

カスタム認証のフローについて

次の使用事例シナリオを、カスタム認証のフローを調査するために使用します:

使用事例シナリオ1

次の表に、このシナリオで使用するEPM Systemユーザー・ディレクトリ構成と検索順序を示します。このシナリオでは、カスタム認証モジュールがRSAインフラストラクチャを使用してユーザーを認証すると仮定します。

表5-1 シナリオ1の設定

ユーザー・ディレクトリのタイプと名前 検索順序 カスタム認証 サンプル・ユーザー名 パスワード脚注 1
ネイティブ・ディレクトリ 1 使用不可

test_user_1

test_user_2

test_user_3

password

LDAP対応

SunONE_West

2 使用不可

test_ldap1

test_ldap_2

test_user_3

test_ldap_4

ldappassword

LDAP対応

SunONE_East

3 使用可能

test_ldap1

test_ldap_2

test_user_3

SunONEではldappassword、カスタム・モジュールではRSA PIN

脚注 1 単純化するため、すべてのユーザーが同じユーザー・ディレクトリ・パスワードを使用すると仮定します。

認証プロセスを開始するには、ユーザーはEPM System製品のログオン画面でユーザー名とパスワードを入力します。このシナリオでは、カスタム認証モジュールは次のアクションを実行します:

  • ユーザー名とRSA PINをユーザー資格証明として受け入れます
  • ユーザー名をusername@providername形式(たとえば、test_ldap_2@SunONE_East)でEPM Systemセキュリティに戻します

表5-2 ユーザーのやりとりと結果

ユーザー名およびパスワード 認証結果 ログイン・ユーザー・ディレクトリ
test_user_1/password 成功 ネイティブ・ディレクトリ
test_user_3/password 成功 ネイティブ・ディレクトリ
test_user_3/ldappassword 成功 SunONE_West (検索順序2)脚注 2
test_user_3/RSA PIN 成功 SunONE_East (検索順序3)脚注 3
test_ldap_2/ldappassword 成功 SunONE_West (検索順序2)
test_ldap_4/RSA PIN 失敗

EPM Systemに認証エラーが表示されます。脚注 4

 

脚注 2

ユーザーはEPM System資格証明を入力したので、カスタム認証ではこのユーザーは認証できません。EPM Systemはカスタム認証で使用可能でないユーザー・ディレクトリでのみこのユーザーを識別できます。ユーザーはネイティブ・ディレクトリ(検索順序番号1)にはなく、SunONE West (検索順序番号2)で識別されます。

脚注 3

EPM Systemは、このユーザーをネイティブ・ディレクトリ(検索順序番号1)またはSunONE West (検索順序番号2)で見つけられません。カスタム認証モジュールではRSAサーバーに対してユーザーを検証し、test_user_3@SunONE_EASTEPM Systemに戻します。EPM SystemはユーザーをSunONE East(検索順序番号3)で検索します。これはカスタム認証が有効なディレクトリです。

脚注 4

カスタム・モジュールで認証されているユーザーはすべて、検索順序に含まれるカスタム認証が有効なユーザー・ディレクトリに含めることをお薦めします。カスタム認証モジュールで戻されるユーザー名が、検索順序に含まれるカスタム認証が有効なユーザー・ディレクトリにない場合、ログインは失敗します。

使用事例シナリオ2

次の表に、このシナリオで使用するEPM Systemユーザー・ディレクトリ構成と検索順序を示します。このシナリオでは、カスタム認証モジュールがRSAインフラストラクチャを使用してユーザーを認証すると仮定します。

このシナリオでは、カスタム認証モジュールは次のアクションを実行します:

  • ユーザー名とRSA PINをユーザー資格証明として受け入れます
  • ユーザー名(たとえば、test_ldap_2)をEPM Systemセキュリティに戻します。

表5-3 検索順序の例

ユーザー・ディレクトリ 検索順序 カスタム認証 サンプル・ユーザー名 パスワード脚注 5
ネイティブ・ディレクトリ 1 使用不可

test_user_1

test_user_2

test_user_3

password
LDAP対応(たとえば、SunONE) 2 使用可能

test_ldap1

test_ldap2

test_user_3

SunONEではldappassword、カスタム・モジュールではRSA PIN

脚注 5 単純化するため、すべてのユーザーが同じユーザー・ディレクトリ・パスワードを使用すると仮定します。

認証プロセスを開始するには、ユーザーはEPM System製品のログイン画面でユーザー名とパスワードを入力します。

表5-4 ユーザーのやりとりと結果

ユーザー名およびパスワード ログイン結果 ログイン・ユーザー・ディレクトリ
test_user_1/password 成功 ネイティブ・ディレクトリ
test_user_3/password 成功 ネイティブ・ディレクトリ
test_user_3/ldappassword 失敗 SunONE脚注 6
test_user_3/RSA PIN 成功 SunONE脚注 7

脚注 6

ネイティブ・ディレクトリに対するユーザーの認証は、パスワードが一致していないために失敗します。カスタム認証モジュールを使用したユーザーの認証は、使用されたパスワードが有効なRSA PINではないため失敗します。EPM Systemは、カスタム認証設定がこのディレクトリのEPM System認証をオーバーライドしたため、SunONE (検索順序2)でこのユーザーの認証を試行しません。

脚注 7

ネイティブ・ディレクトリに対するユーザーの認証は、パスワードが一致していないために失敗します。カスタム認証モジュールによりユーザーが認証され、ユーザー名test_user_3EPM Systemに戻されます。

使用事例シナリオ3

次の表に、このシナリオで使用するEPM Systemユーザー・ディレクトリ構成と検索順序を示します。このシナリオでは、カスタム認証モジュールがRSAインフラストラクチャを使用してユーザーを認証すると仮定します。

このようなシナリオの明確さのため、カスタム認証モジュールがユーザー名をusername@providername形式(たとえば、test_ldap_4@SunONE)で戻すことをお薦めします。

表5-5 検索順序の例

ユーザー・ディレクトリ 検索順序 カスタム認証 サンプル・ユーザー名 パスワード脚注 8
ネイティブ・ディレクトリ 1 使用可能

test_user_1

test_user_2

test_user_3

RSA_PIN
LDAP対応(たとえば、MSAD) 2 使用不可

test_ldap1

test_ldap4

test_user_3

ldappassword
LDAP対応(たとえば、SunONE) 3 使用可能

test_ldap1

test_ldap4

test_user_3

SunONEではldappassword、カスタム・モジュールではRSA PIN

脚注 8 単純化するため、すべてのユーザーが同じユーザー・ディレクトリ・パスワードを使用すると仮定します。

認証プロセスを開始するには、ユーザーはEPM System製品のログオン画面でユーザー名とパスワードを入力します。

表5-6 ユーザーのやりとりと結果

ユーザー名およびパスワード 認証結果 ログイン・ユーザー・ディレクトリ
test_user_1/password 成功 ネイティブ・ディレクトリ
test_user_3/RSA_PIN 成功 ネイティブ・ディレクトリ
test_user_3/ldappassword 成功 MSAD (検索順序2)
test_ldap_4/ldappassword 成功 MSAD (検索順序2)
test_ldap_4/RSA PIN 成功 SunONE (検索順序3)

ユーザー・ディレクトリおよびカスタム認証モジュール

カスタム認証モジュールを使用するには、EPM Systemユーザーおよびグループ情報を含むユーザー・ディレクトリを、カスタム・モジュールに認証を委任するよう個別に構成できます。

カスタム・モジュールを使用して認証されたEPM Systemユーザーは、検索順序(検索順序を参照)に含まれたユーザー・ディレクトリの1つに存在する必要があります。また、ユーザー・ディレクトリは、認証をカスタム・モジュールに委任するよう構成されている必要があります。

カスタム・プロバイダのユーザーのアイデンティティ(たとえば、RSA SecurIDインフラストラクチャの1357642)は、Shared Servicesで構成されるユーザー・ディレクトリのユーザー名(たとえば、Oracle Internet DirectoryのjDoe)と異なる場合があります。ユーザーの認証後、カスタム認証モジュールは、ユーザー名jDoeEPM Systemに戻す必要があります。

注:

ベスト・プラクティスとして、EPM Systemで構成されるユーザー・ディレクトリのユーザー名は、カスタム認証モジュールで使用されるユーザー・ディレクトリで使用可能なものと同一にすることをお薦めします。

CSSCustomAuthenticationIF Javaインタフェース

カスタム認証モジュールは、EPM Systemセキュリティ・フレームワークとの統合にCSSCustomAuthenticationIF Javaインタフェースを使用する必要があります。カスタム認証が成功した場合はユーザー名の文字列を、認証が失敗した場合はエラー・メッセージを戻す必要があります。認証プロセスが完了した場合、カスタム認証モジュールによって戻されたユーザー名は、Shared Services検索順序に含まれるユーザー・ディレクトリの1つに存在する必要があります。EPM Systemセキュリティ・フレームワークでは、username@providerName形式がサポートされています。

注:

カスタム認証モジュールが戻すユーザー名に* (アスタリスク)を含めないでください。EPM Systemセキュリティ・フレームワークがユーザーの検索中にワイルドカード文字と解釈します。

CSSCustomAuthenticationIFインタフェース・シグネチャは、サンプル・コード1を参照してください。

カスタム認証モジュール(クラス・ファイルを使用可)は、CustomAuth.jarに含まれている必要があります。パッケージ構造は重要ではありません。

CSSCustomAuthenticationIFインタフェースの詳細は、セキュリティAPIドキュメント。を参照してください

CSSCustomAuthenticationIFauthenticateメソッドではカスタム認証がサポートされます。authenticateメソッドは、EPM Systemにアクセスしようとする際にユーザーが入力した資格証明(ユーザー名とパスワード)を入力パラメータとして受け入れます。このメソッドは、カスタム認証が成功した場合に文字列(ユーザー名)を戻します。認証に失敗した場合はjava.lang.Exceptionをスローします。メソッドにより戻されるユーザー名は、Shared Services検索順序に含まれるユーザー・ディレクトリの1つでユーザーを一意に識別する必要があります。EPM Systemセキュリティ・フレームワークでは、username@providerName形式がサポートされています。

注:

リソース(たとえば、JDBC接続プール)を初期化するには、クラス・コンストラクタを使用します。これにより、認証のたびにリソースをロードすることがなくなり、パフォーマンスが向上します。