Oracle Identity Managerをインストールした後、アプリケーションを使用する前に、この章で説明するインストール後のタスクの実行について検討する必要があります。Oracle Identity Managerのデプロイによって異なりますが、タスクの一部は実行しないことも可能です。ここでは、次のインストール後のタスクについて説明します。
注意: この章の例はWindowsのものですが、インストール後のタスクはUNIXとLinuxにも適用されます。 |
次の手順を実行して、WindowsインストールでJBossの必要なポートを予約します。
Windowsで「スタート」メニュー→「ファイル名を指定して実行」を選択します。「ファイル名を指定して実行」ダイアログ・ボックスが表示されます。
「ファイル名を指定して実行」ダイアログ・ボックスにregedt32
と入力し、「OK」ボタンをクリックします。「レジストリ エディタ」ウィンドウが表示されます。
次のレジストリ・キーにナビゲートします。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
このレジストリ・キーが存在していない場合は、次のようにReservedPorts値を作成します。
「編集」メニューの「新規」をポイントし、「複数行文字列値」をクリックします。
値の名前としてReservedPorts
と入力し、[Enter]キーを押します。
「ReservedPorts」値をダブルクリックします。「複数行文字列の編集」ダイアログ・ボックスが表示されます。
「複数行文字列の編集」ダイアログ・ボックスの「値のデータ」ボックスに1098-1434
と入力します。
「OK」ボタンをクリックして「複数行文字列の編集」ダイアログ・ボックスを閉じ、「レジストリ エディタ」ウィンドウも閉じます。
Oracle Identity ManagerにはOracle Identity Managerサーバー用とデータベース用の2つのキーストアがあります。インストール時に両方のパスワードはxellerateに設定されます。すべての本番インストールでキーストア・パスワードを変更することをお薦めします。どちらのキーストアのキーストア・パスワードもkeytoolを使用して変更できます。
キーストア・パスワードを変更するには、次のようにします。
Oracle Identity Managerのホスト・コンピュータでコマンド・プロンプトを開きます。
<XL_HOME>\xellerate\configディレクトリにナビゲートします。
<JAVA_HOME
>\jre\bin\keytool -storepasswd -new <new_password
> -storepass xellerate -keystore .xlkeystore -storetype JKS
表7-1に、このkeytoolの例で使用したオプションを示します。
プレーン・テキスト・エディタを起動し、<XL_HOME>\xellerate\config\xlconfig.xmlを開きます。
<xl-configuration>.<Security>.<XLPKIProvider>.<KeyStore>
セクションを編集して、キーストア・パスワードを指定します。
注意: データベースのキーストア(.xldatabasekey)のパスワードを更新するには、構成ファイルの<XLSymmetricProvider>.<KeyStore> セクションを変更します。 |
パスワード・タグをencrypted="false"
に変更します。
(通常の文字で)パスワードを入力します。たとえば、次のブロックがあるとします。
<Security> <XLPKIProvider> <KeyStore> <Location>.xlkeystore</Location> <Password encrypted="true">xYr5V2FfkRYHxKXHeT9dDg==</Password> <Type>JKS</Type> <Provider>sun.security.provider.Sun</Provider> </KeyStore>
これを次のように変更します。
<Security> <XLPKIProvider> <KeyStore> <Location>.xlkeystore</Location> <Password encrypted="false">newpassword</Password> <Type>JKS</Type> <Provider>sun.security.provider.Sun</Provider> </KeyStore>
アプリケーション・サーバーを再起動します。
アプリケーション・サーバーを停止して起動すると、構成ファイルのバックアップが作成されます。構成ファイル(新しいパスワードを含む)が読み込まれ、ファイル内でパスワードは暗号化されます。
ここまでの手順がすべて正常に終了したら、バックアップ・ファイルを削除することができます。
注意: UNIXまたはLinuxでは、次のコマンドを使用してshellコマンドの履歴を消去してもよいでしょう。
|
Oracle Identity Managerでは、ロギングにlog4jが使用されます。JBoss対応のインストールでは、ロギングはlog4j.xmlファイルで構成されます。
DDMの出力がデバッグ・レベルに構成されていることを除き、Oracle Identity Managerの出力はデフォルトで警告レベルに構成されています。すべてのコンポーネントを一括して、または個別のコンポーネントごとにログ・レベルを変更できます。Oracle Identity Managerの通常の使用方法では、このインストール後の構成手順は必須ではありません。
コンポーネントは、<XL_HOME>\xellerate\config\log.propertiesファイルのXELLERATEセクションで指定されます。次のようになります。
log4j.logger.XELLERATE=WARN log4j.logger.XELLERATE.DDM=DEBUG log4j.logger.XELLERATE.ACCOUNTMANAGEMENT=DEBUG log4j.logger.XELLERATE.SERVER=DEBUG log4j.logger.XELLERATE.RESOURCEMANAGEMENT=DEBUG log4j.logger.XELLERATE.REQUESTS=DEBUG log4j.logger.XELLERATE.WORKFLOW=DEBUG log4j.logger.XELLERATE.WEBAPP=DEBUG log4j.logger.XELLERATE.SCHEDULER=DEBUG log4j.logger.XELLERATE.SCHEDULER.Task=DEBUG log4j.logger.XELLERATE.ADAPTERS=DEBUG log4j.logger.XELLERATE.JAVACLIENT=DEBUG log4j.logger.XELLERATE.POLICIES=DEBUG log4j.logger.XELLERATE.RULES=DEBUG log4j.logger.XELLERATE.DATABASE=DEBUG log4j.logger.XELLERATE.APIS=DEBUG log4j.logger.XELLERATE.OBJECTMANAGEMENT=DEBUG log4j.logger.XELLERATE.JMS=DEBUG log4j.logger.XELLERATE.REMOTEMANAGER=DEBUG log4j.logger.XELLERATE.CACHEMANAGEMENT=DEBUG log4j.logger.XELLERATE.ATTESTATION=DEBUG log4j.logger.XELLERATE.AUDITOR=DEBUG
JBossでのすべてのロギングではlog4j.xmlファイルが使用されます。したがって、Oracle Identity ManagerのコンポーネントはXellerateタグを使用します。log4j.xmlファイルには次のようなXellerateの一般設定が含まれます。
<category name="XELLERATE"> <priority value="WARN" /> </category>
一般設定のpriority value
を編集してすべてのコンポーネントのログ・レベルを変更するか、新しいロギング・カテゴリ要素を追加して特定のコンポーネントのログ・レベルを変更することができます。
追加できるカテゴリは、log.propertiesファイルのXELLERATEセクションに指定されています。詳細は、「Oracle Identity Managerコンポーネントのロギング」を参照してください。
たとえば、Oracle Identity Managerサーバーのレベルを変更するには、次の要素をlog4j.xmlファイルに追加します。
<category name="XELLERATE.SERVER"> <priority value="WARN" /> <appender-ref ref="FILE"/> </category>
JBossでOracle Identity Managerのログ・レベルを設定するには、次のようにします。
テキスト・エディタでファイル<JBOSS_HOME>\server\default\conf\log4j.xmlを開きます。
必要なコンポーネントの要素を挿入します。
必要なコンポーネントのpriority value
を適切なレベルに設定します。
次に、サポートされるログ・レベルのリストを、ロギング情報の多い順に示します(DEBUGでは最も多くの情報がロギングされ、FATALでは最も少ない情報がロギングされます)。
DEBUG
INFO
WARN
ERROR
FATAL
変更内容を保存します。
次の手順で、ASCII文字のログインを使用するOracle Identity Managerに対してシングル・サインオンを有効にする方法を示します。非ASCII文字のログインに対応するシングル・サインオンを有効にする場合も、次の手順を使用しますが、手順4で説明する追加の構成が必要です。
関連資料: Oracle Access Managerを利用するOracle Identity Managerでのシングル・サインオンの構成の詳細は、『Oracle Identity Managerベスト・プラクティス・ガイド』を参照してください。 |
注意: 英字のみのヘッダー名しか認証されません。ヘッダー名には特殊な文字や数字を使用しないことをお薦めします。 |
Oracle Identity Managerのためにシングル・サインオンを有効化するには、次のようにします。
アプリケーション・サーバーを正常に停止します。
プレーン・テキスト・エディタを起動し、次のファイルを開きます。
<XL_HOME>\xellerate\config\xlconfig.xml
次のようなシングル・サインオンの構成を探します(次に示すのは、シングル・サインオンを含まないデフォルト設定です)。
<web-client> <Authentication>Default</Authentication> <AuthHeader>REMOTE_USER</AuthHeader> </web-client>
次のようにシングル・サインオン構成を編集し、シングル・サインオン・システムで構成した適切なヘッダーで<SSO_HEADER_NAME
>を置き換えます。
<web-client>
<Authentication>SSO</Authentication>
<AuthHeader><SSO_HEADER_NAME
></AuthHeader>
</web-client>
非ASCII文字のログインに対してシングル・サインオンを有効にするには、非ASCIIのヘッダー値をデコードするようにデコード・クラス名を指定する必要があります。デコード・クラス名を追加し、シングル・サインオン構成を次のように編集します。
<web-client>
<Authentication>SSO</Authentication>
<AuthHeader><SSO_HEADER_NAME
></AuthHeader>
<AuthHeaderDecoder>com.thortech.xl.security.auth.CoreIDSSOAuthHeaderDecoder</AuthHeaderDecoder>
</web-client>
シングル・サインオン・システムで構成した適切なヘッダーで<SSO_HEADER_NAME
>を置き換えます。
アプリケーション・サーバーとWebサーバーの構成を変更して、シングル・サインオンを有効にします。アプリケーション・サーバーおよびWebサーバーのベンダーのドキュメントを参照してください。
アプリケーション・サーバーを再起動します。
ロード・バランサに接続されている複数の非クラスタJBossインストールが1つのデータベースを指定している場合、個々のJBossインスタンスが異なるJMS表を使用するように構成する必要があります。
同じOracle Identity Managerデータベースを使用する2番目およびその他すべてのJBossインスタンスで次の手順を実行して、それらのインスタンスが異なるJMS表を使用するようにします。
プレーン・テキスト・エディタを起動して、ディレクトリ<JBOSS_HOME>\server\default\deploy\jmsにナビゲートし、ファイル<database_name>-jdbc2-service.xmlを開きます。
<database_name>は、複数のJBossインスタンスで使用される共通のデータベースを表すことに注意してください。
<database_name>-jdbc2-service.xmlのsqlPropertiesセクションのすべての問合せと文において、JMS_MESSAGESおよびJMS_TRANSACTIONSで表される表の名前を、有効で新しい一意の値に変更します。
ファイルの最後に次の文を追加します。
DELETE_TEMPORARY_MESSAGES = DELETE FROM <NEW_JMS_MESSAGES_NAME> WHERE TXOP='T' CREATE_IDX_MESSAGE_TXOP_TXID = CREATE INDEX <NEW_JMS_MESSAGES_NAME>_TXOP_TXID ON <NEW_JMS_MESSAGES_NAME> (TXOP, TXID) CREATE_IDX_MESSAGE_DESTINATION = CREATE INDEX <NEW_JMS_MESSAGES_NAME>_DESTINATION ON <NEW_JMS_MESSAGES_NAME>(DESTINATION)
ファイルを保存して閉じます。
このセクションでは、Oracle Identity Managerによるカスタム承認ソリューションの使用方法について説明します。
Oracle Identity Managerは、Java Authentication and Authorization Service (JAAS)モジュールを使用してユーザーを認証します。オフライン・メッセージ処理およびスケジュール済タスクの実行を必要とするような認証のいらないログインに対して、Oracle Identity Managerは署名ベースの認証を使用します。署名ベースの認証を取り扱う場合はJAASを使用する必要がありますが、標準の認証要求を取り扱う場合はカスタム認証ソリューションの使用が可能です。
注意: アプリケーション・サーバーではOracle Identity Manager JAASモジュールを最初に呼び出される認証としてデプロイする必要があります。 |
JBossアプリケーション・サーバーでカスタム認証を有効にするには、カスタム認証モジュール・クラスを実装します。すると、Oracle Identity Managerは標準の認証要求をカスタム認証モジュールに委任します。
JBossのカスタム認証を実装するには:
<XL_HOME>/config/xlconfig.xmlファイルをテキスト・エディタで開き、次の要素CustomLoginModuleを使用するカスタム・ログイン・モジュール・クラスで置き換えます。
<login-module>
<thirdPartyLoginModule>CustomLoginModule</thirdPartyLoginModule>
</login-module>
オプション。テキスト・エディタで<JBOSS_HOME>/config/login-config.xmlファイルを開き、com.thortech.xl.security.jboss.UsernamePasswordLoginModuleパッケージの<login-module>
要素内にモジュール・オプションを追加することによって、カスタム認証モジュール用の構成プロパティを指定します。すると、Oracle Identity Managerは特定のプロパティをカスタム認証モジュール・クラスに委任します。たとえば、次のrolesProperties
モジュール・オプションはカスタム認証モジュール・クラスに委任されます。
<application-policy name = "xellerate"> <authentication> <login-module code="com.thortech.xl.security.jboss.XLClientLoginModule" flag="required"> </login-module> <login-module code= "com.thortech.xl.security.jboss.UsernamePasswordLoginModule" flag = "required" > <module-option name = "unauthenticatedIdentity">Unknown</module-option> <module-option name = "data-source">java:/jdbc/xlDS</module-option> <module-option name = "rolesProperties">customRoleProperties</module-option> </login-module> </authentication> </application-policy>
カスタム認証JARファイルを<JBOSS_HOME>/server/default/libディレクトリにコピーしてください。
カスタム認証ソリューションを指定するときは、指定ユーザーのみがリソースを表示するパーミッションを持つようにJava Naming and Directory Interface(JNDI)ネームスペースを保護する必要があります。JNDIネームスペースを保護する第一の目的は、同じアプリケーション・サーバー・インスタンスにインストールされる可能性がある悪質なアプリケーションからOracle Identity Managerを守ることです。悪質かどうかは別にして、他のアプリケーションがOracle Identity Managerと同じアプリケーション・サーバー・インスタンスにインストールされていなくても、日常的なセキュリティ手法として、JNDIネームスペースを保護する必要があります。
JNDIネームスペースを保護するには、Oracle Identity ManagerがJNDIネームスペースをアクセスするように構成します。
テキスト・エディタで<XL_HOME>/config/xlconfig.xmlファイルを開き、次の要素を<Discovery>
要素に追加します。
<java.naming.security.principal> <java.naming.security.credentials>
オプションでJNDIパスワードを暗号化するには、次のように、trueの値を割り当てたencrypted属性を<java.naming.security.credentials>
要素に追加し、その要素の値としてそのパスワードを割当てます。
<java.naming.security.credentials
encrypted="true">password</java.naming.security.credentials>
次の要素を<Scheduler>
要素に追加します。
<CustomProperties> <org.quartz.dataSource.OracleDS.java.naming.security.principal>user </org.quartz.dataSource.OracleDS.java.naming.security.principal> <org.quartz.dataSource.OracleDS.java.naming.security.credentials>pwd </org.quartz.dataSource.OracleDS.java.naming.security.credentials></CustomProperties>