Oracle Identity Managerをインストールした後で、アプリケーションを使用する前にこの章で説明するデプロイに応じたインストール後のタスクを実行します。Oracle Identity Managerのデプロイによって異なりますが、タスクの一部は実行しないことも可能です。
この章では、次のインストール後のタスクについて説明します。
Oracle Identity Manager管理およびユーザー・コンソールのリクエスト・ウィザードが正常に動作することを確認するには、JMSサーバーの初期状態がSTARTに設定されていることを確認します。
JMSサーバーの初期状態を確認するには、次のようにします。
次のディレクトリのserver.xmlファイルを開きます。
<WEBSPHERE_HOME
>/config/cells/<cell name>/nodes/<node name
>/servers/server1/
JMSServerセクションで、必要に応じて、initialState変数の値をSTARTに変更します。
このセクションは次のような内容です。
<components xmi:type="messagingserver:JMSServer" xmi:id="JMSServer_1" name="Internal JMS Server" description="Internal WebSphere JMS Server" numThreads="1"> <stateManagement xmi:id="StateManageable_4" initialState="START"/>
ファイルを保存して閉じます。
デフォルト以外(80、443または9080以外)のポートを使用するWebSphereでOracle Identity Managerを実行するには、WebSphere管理コンソールを使用してサーバーのポート・マッピング情報を追加する必要があります。次の項で説明されているように、WebSphere管理コンソールを使用してデフォルト以外のサーバーに対するHTTP転送のポート・マッピングを追加します。
デフォルト以外のHTTPポートを使用するには、次のようにします。
「Environment」→「Virtual Host」→「default_host」→「Host Alias」を選択します。
「New」をクリックします。
ホスト名とポート名を入力します。
注意: デフォルトでは、仮想ホストの設定にWebSphere構成の標準以外のポートは含まれません。標準以外のサーバー・インストールおよびクラスタ環境インストールには、仮想ホストを設定する必要があります。 |
xlclient\config\xlconfig.xmlの<ApplicationURL>タグを適切なHTTPポートに変更します。
Oracle Identity Managerのインストールに使用したアプリケーション・サーバーを再起動します。
デフォルト以外のネーミング・サービス・ポートを使用するには、次のようにします。
ネーミング・サービス・ポートを検出するには、WebSphere管理コンソールを使用します。
「Server」→「Application Server」→「<server_name>」→「End Points」→「Bootstrap_Address」を選択します。
画面にホスト名とポート番号が表示されます。
デフォルト以外のポートでインストールするときは、インストールがserver1上にあってもxlconfig.xmlファイルを変更する必要があります。クラスタ環境では、xlconfig.xmlファイルは常に変更する必要があります。
注意: デフォルト・サーバーserver1には、同じセキュリティ情報を共有するために、セル内の他のすべてのサーバー(デフォルト以外)と同様に構成ファイルxlconfig.xmlが必要です。 |
次の2つのファイルのディスカバリ・ポート設定を編集します。
xellerate\config\xlconfig.xml
xlclient\config\xlconfig.xml
たとえば、デフォルト・サーバー以外の1つ目のサーバーは、ネーミング・サービス・ポートとして2810を使用します。
WebSphere管理コンソールは、すべてのWebSphereインストールでインストールされ、デフォルト・サーバー(server1)で稼働します。WebSphereをインストールしてserver1(デフォルト)以外のサーバー名を使用する場合、Oracle Identity Managerを認識するようにserver1を手動で構成する必要があります。
注意: 次の手順でのデフォルト以外のサーバー名はxlServerです。 |
デフォルト以外(server1以外の名前)のサーバーでWebSphereを構成するには、次のようにします。
次のディレクトリのserver.xmlファイルを開きます。
<WEBSPHERE_HOME
>\config\cells\<cellname>\nodes\<nodename
>\servers\server1\
server1のserver.xmlファイルを変更して、Oracle Identity Managerホーム・ディレクトリを指定するXL.HomeDirシステム・プロパティを挿入します。
例:
<systemProperties xmi:id="Property_1119378049482" name="XL.HomeDir" value="C:/xlserver/xellerate" description="Xellerate Home Directory" required="true"/>
次のように、システム・プロパティをjvmエントリに追加します。
<jvmEntries xmi:id="JavaVirtualMachine_1" verboseModeClass="false" verboseModeGarbageCollection="false" verboseModeJNI="false" runHProf="false" hprofArguments="" debugMode="false" debugArgs="-Djava.compiler=NONE -Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=7777" genericJvmArguments=""> <systemProperties xmi:id="Property_1119378049482" name="XL.HomeDir" value="C:/xlserver/xellerate" description="Xellerate Home Directory" required="true"/> </jvmEntries>
注意: HomeDirシステム・プロパティの設定方法の詳細は、WebSphereのインストール・ドキュメントを参照してください。 |
引数を指定して次のコマンドを使用し、サーバーを起動します。
startServer <servername> –username xelsysadm -password xelsysadm
注意: xelsysadm以外のユーザー名またはパスワードをWebSphereに使用した場合は、それらをここに指定します。 |
Oracle Identity Managerリクエストが作成されると、Oracle Identity ManagerサーバーはJMSサーバーにメッセージを送信します。しかし、処理時間が非常に長い場合があります。
このような事象が発生すると、Oracle Identity Managerサーバーは非同期的にレスポンスをエンドユーザーに送信し(待機時間を最小化するため)、メッセージをJMSサーバーに送信します。すると、JMSサーバーはメッセージをメッセージドリブンBean(MDB)に送信し、MDBはメッセージをダイジェストします。
MDBがメッセージの処理を失敗すると、例外がスローされます。トランザクションがロールバックされ、WebSphereは最大再試行回数に達するまでMDBにメッセージを再送信します。
それでもMDBが失敗する場合は、再度トランザクションがロールバックされます。最大再試行回数に達するとWebSphereはメッセージをMDBに再送信せず、かわりにメッセージをSYSTEM.DEAD.LETTER.QUEUEに送信します。この措置により無限ループを防止します。
SYSTEM.DEAD.LETTER.QUEUEは、埋込みJavaメッセージ・サーバーによって保護されるシステム・リソースであるため、アクセスには認可されたクライアントが必要です。Oracle Identity Managerの場合、WebSphere管理ユーザーxelsysadmを認可されたユーザーIDとする必要があります。xelsysadmをintegral-jms-authorizations.xmlファイルに追加して、SYSTEM.DEAD.LETTER.QUEUEへのアクセス権限をxelsysadmが持っているようにする必要があります。
注意: xelsysadm以外のユーザーIDまたはパスワードをWebSphereに使用した場合、次の手順ではxelsysadmのかわりにそのユーザーIDまたはパスワードを入力してください。 |
xelsysadmを認可されたユーザーとして追加するには、次のようにします。
次の場所にナビゲートします。
<WEBSPHERE_HOME
>\config\cells\<cell_name
>
integral-jms-authorizations.xmlファイルをテキスト・エディタで開きます。
<queue-admin-userids>タグを探します。
注意: ファイルには2つの<queue-admin-userids>タグがあります。いずれか一方がコメントアウトされています。コメントアウトされていないタグを変更します。 |
次のように、<userid>xelsysadm</userid>行を追加します。
<queue-admin-userids> <userid>xelsysadm</userid> </queue-admin-userids>
変更内容を保存します。
サーバーを再起動します。
JMSリスナーの最大試行回数が5以下であると、埋込みJavaメッセージ・サーバーがメッセージをSYSTEM.DEAD.LETTER.QUEUEに送信する前にJMSリスナーは停止します。JMSリスナーが停止しないようにするには、デフォルト値を5より大きな数値に変更します。
JMSリスナーの再試行回数を変更するには、次のようにします。
WebSphere管理コンソールを起動します。
左側のペインで「Servers」をクリックして「Application Servers」にナビゲートし、「<Server_Name>」を選択します。
「Configuration」タブで、「Additional Properties」セクションまでスクロールして「Message Listener Service」を選択し、「Listener Ports」をクリックします。
「MessageHandlerMDB_JMSPort」をクリックします。
最大試行回数を5からそれよりも大きい値に変更します。
「OK」をクリックし、「Save」をクリックします。
業務トランザクション(複数のリクエストまたはユーザーの検索など)から大規模なデータセット・オブジェクト(500KB超)が返されると、システムから例外がスローされる原因となります。WebSphereを使用してこのような事象が発生すると、CORBA_NO_MEMORYがWebSphereのログ・ファイルに記録され、システム・エラーがエラー・メッセージ・ウィンドウとしてOracle Identity Manager管理およびユーザー・コンソールに表示されます。WebSphereのドキュメントでは、Java仮想マシンがラージ・オブジェクトを割り当てるためにヒープでブロックが連続した領域を割り当てることができないときに、割当てリクエストを満たすためのヒープ領域がまったくないまたはヒープ領域が不足しているとアプリケーション・サーバーが記録するため、この例外が発生すると説明しています。この例外を回避するには、WebSphereでORBを使用した参照によるパラメータの引渡しを有効にする必要があります。有効にすると、ORBは値ではなく参照によってパラメータを渡すため、オブジェクトのコピーは作成されなくなります。参照による引渡しを有効にしないと、すべてのリモート・メソッド・コールが行われる前にパラメータはスタックにコピーされます。次の手順に従って、ORBサービスのPass by referenceパラメータを有効にします。
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では、次のコマンドを使用してシェルのコマンド履歴を消去することもできます。
|
Oracle Identity Managerでは、ロギングにlog4jが使用されます。ログ・レベルは、ロギング・プロパティ・ファイル<XL_HOME>/xellerate/config/log.propertiesで構成されます。デフォルトでは、Oracle Identity Managerは警告レベル(WARN)で出力するように構成されています。ただし、デバッグ・レベルで出力するようにデフォルトで構成されているDDMは除きます。すべてのコンポーネントを一括して、または個別のコンポーネントごとにログ・レベルを変更できます。
次に、サポートされるログ・レベルのリストを、ロギング情報の多い順に示します(DEBUGでは最も多くの情報がロギングされ、FATALでは最も少ない情報がロギングされます)。
DEBUG
INFO
WARN
ERROR
FATAL
たとえば、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
Oracle Identity Managerのログ・レベルを設定するには、<XL_HOME>\xellerate\config\log.propertiesファイルのロギング・プロパティを次の手順で説明しているように編集します。
ログ・レベルを構成するには、次のようにします。
<XL_HOME>\xellerate\config\log.propertiesファイルをテキスト・エディタで開きます。
このファイルには、Oracle Identity Managerの一般的な設定と、Oracle Identity Managerを構成するコンポーネントやモジュールの個別の設定が含まれます。
デフォルトでは、Oracle Identity Managerは、次のように警告レベル(WARN)で出力するように構成されています。
log4j.logger.XELLERATE=WARN
これはOracle Identity Managerの一般的な設定の値です。個々のコンポーネントとモジュールの値は、プロパティ・ファイルの一般的な値の後に指定されます。個々のコンポーネントとモジュールは様々なログ・レベルに設定できます。特定のコンポーネントのログ・レベルが一般設定よりも優先されます。
一般設定の値を必要なログ・レベルに設定します。
他のコンポーネントのログ・レベルを必要に応じて設定します。
個々のコンポーネントまたはモジュールには、様々なログ・レベルを指定できます。たとえば、次の値を指定すると、Account Managementモジュールのログ・レベルがINFO、サーバーはDEBUGレベル、その他のOracle Identity ManagerはWARNレベルに設定されます。
log4j.logger.XELLERATE=WARN log4j.logger.XELLERATE.ACCOUNTMANAGEMENT=INFO log4j.logger.XELLERATE.SERVER=DEBUG
変更内容を保存します。
アプリケーション・サーバーを起動して、変更を有効にします。
次の手順で、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サーバーのベンダーのドキュメントを参照してください。
アプリケーション・サーバーを再起動します。
ここでは、Oracle Identity Managerでカスタム認証ソリューションを使用する方法について説明します。
Oracle Identity Managerは、Java Authentication and Authorization Service(JAAS)モジュールをデプロイしてユーザーを認証します。オフラインのメッセージ処理およびスケジュール済タスクの実行を必要とする不在ログインの場合、Oracle Identity Managerは署名ベースの認証を使用します。署名ベースの認証はJAASを使用して処理する必要がありますが、カスタム認証ソリューションを作成して標準の認証リクエストを処理することができます。
注意: Oracle Identity ManagerのJAASモジュールは、アプリケーション・サーバーにデプロイする必要があり、最初に起動される認証としてください。 |
WebSphereアプリケーション・サーバーでカスタム認証を有効にするには、次のように、WebSphere管理コンソールを使用して「Custom User Registry」の「Custom Properties」セクションでcustomAuthentication
プロパティを定義します。
WebSphere管理コンソールを起動し、「Security」→「User Registries」を開いて「Custom」をクリックします。「Custom Properties」ページが表示されます。
「Custom Properties」ページで、「New」をクリックしてcustomAuthenticationプロパティを定義します。プロパティを定義するときに、com.ibm.websphere.security.UserRegistryを実装するカスタム認証クラスの名前を指定し、必要な初期化パラメータも指定します。
WebSphereアプリケーション・サーバーを再起動します。
カスタム認証ソリューションを指定するときに、Java Naming and Directory Interface(JNDI)ネームスペースを保護して、指定のユーザーのみがリソースを表示する権限を持っているようにする必要もあります。JNDIネームスペースを保護する主要な目的は、同じアプリケーション・サーバー・インスタンスにインストールされている可能性がある悪質なアプリケーションからOracle Identity Managerを保護することです。悪質であろうとなかろうと他のアプリケーションがOracle Identity Managerと同じアプリケーション・サーバー・インスタンスにインストールされていない場合でも、通常のセキュリティ方法としてJNDIネームスペースを保護する必要があります。
保護されたJNDIネームスペースにアクセスするようにOracle Identity Managerを構成するには、次の手順を実行します。
<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>