この章では、Identity Manager のインストールまたは更新に関する情報を説明します。説明する内容は次のとおりです。
製品の詳細なインストール手順については、『Sun Identity Manager 8.1 Installation』を参照してください。
Identity Manager をインストールするときに、ベンダーが異なる JDK を混在させないでください。たとえば、WebSphere で IBM JDK を使用して Identity Manager を使用している場合は、IBM JDK を使用して Identity Manager をインストールします。JDK で暗号化されたデータは、別のベンダーの JDK では読み取ることができないため、異なるベンダーの JDK を使用しないでください。(ID-17800)
Identity Manager インストーラが 64 ビット JDK で動作しない場合があります。(ID-18534)
回避方法:
手動でインストールします。
32 ビットバージョンの JDK を使用してインストーラを実行します。
インストールスクリプトで使用される JAVA_OPTS を設定することにより、os.arch=ppc を設定してインストールを行います。次に例を示します。
export JAVA_OPTS="-Dos.arch=ppc" install |
または、必要なオプションが JAVA_OPTS にすでに含まれている場合は、次のようにします。
export JAVA_OPTS="$JAVA_OPTS -Dos.arch=ppc" install |
ここでは、Identity Manager をバージョン 6.0、7.0、7.1、7.1.1、または 8.0 からバージョン 8.1 にアップグレードする場合の情報と既知の問題点を説明します。
この節の情報は、次のように構成されています。
アップグレードプロセスを開始する前に、次の情報を理解しておく必要があります。
詳細なアップグレード手順については、『Sun Identity Manager 8.1 Upgrade』を参照してください。
JDK または JRE をアップグレードする場合は、使用中の JDK と同じベンダーから提供される JDK または JRE を使用する必要があります。たとえば、これまで IBM の JDK を使用していた場合は、Sun JDK をインストールしないでください。異なるベンダーの JDK を混在させた場合、以前の JDK で暗号化されたデータは、別のベンダーの JDK で読み取ることができません。(ID-17800)
Identity Manager は次の順序でアップグレードします。
すべての Identity Manager サーバーインスタンスと Gateway インスタンスをアップグレードします。
すべての PasswordSync インスタンスをアップグレードします。
8.1 バージョンの Identity Manager サーバーは、古いバージョンの PasswordSync に対して、一時的なサポートを限定的に提供します。このサポートは、PasswordSync インスタンスをアップグレードしている間に、Identity Manager の実行を継続できるようにするためのものです。PasswordSync のすべてのインスタンスは、できるだけ早く Identity Manager サーバーと同じバージョンに更新してください。
PasswordSync をアンインストールするときは、Windows の「コントロール パネル」から「プログラムの追加と削除」機能を使用して、正しく削除されるようにします。アンインストール後に再起動が必要です。
PasswordSync をインストールするときは、インストール先のオペレーティングシステムに対応したバイナリを使用する必要があります。32 ビット Windows のバイナリは IdmPwSync_x86.msi、64 ビット Windows のバイナリは IdmPwSync_x64.msi という名前です。PasswordSync のインストール後に、再起動が必要です。
1 つの Identity Manager サーバーだけを使用して、update.xml をインポートしてください。
アップグレード中は、1 つの Identity Manager サーバーだけを動作させてください。アップグレード中にほかの Identity Manager サーバーを起動する場合は、それらのサーバーを使用可能な状態にする前に、サーバーを停止して再起動する必要があります。RepositoryConfiguration の変更は、Identity Manager サーバーを再起動するまで、そのサーバーに影響しません。
アップグレードプロセスで、デフォルトの configurator アカウントおよびパスワードでのログインに失敗した場合、ログファイルにはエラーが記録されますが、エラーのあとは何もログに記録されません。(ID-18929)
update.xml ファイルはアップグレードプロセスの間にインポートされます。インポート処理では、デフォルトのパスワードを使用して configurator としてログインを試みます。ログインに失敗するとエラーが表示され、アップグレードプログラムによって、正しいログイン情報の入力を求められます。正しい情報を入力すると、アップグレードは続行されます。アップグレードプロセスのログファイルを参照すると、デフォルトのログインが失敗したときのエラーメッセージは確認できますが、アップグレードに関するそれ以上の情報はログファイルで確認できません。この問題はアップグレードには影響せず、ログファイルのみに影響します。
現在の Identity Manager インストールに大量のカスタム作業がある場合は、アップグレードの計画と実行の支援を Sun のプロフェッショナルサービスにご相談ください。
最新のバージョンに一度にアップグレードする場合は、このあとの節で説明するアップグレードの注意点も確認してください。以降のバージョンの Identity Manager に関するアップグレードの注意点も、適用されます。
Identity Manager version 6.x からのアップグレードを行い、新しい Identity Manager エンドユーザーページの使用を開始する場合、水平ナビゲーションバーを表示させるためには、システム設定 ui.web.user.showMenu を true に手動で変更する必要があります。(ID-14901)
また、エンドユーザーホームページに新しいエンドユーザーダッシュボードを表示させる場合は、フォームタイプが endUserMenu のエンドユーザーフォームマッピングを手動で変更する必要があります。「設定」>「フォームおよびプロセスマッピング」>「フォームタイプ ’endUserMenu’ の」の順に選択します。「マップされるフォーム名」を End User Dashboard に変更します。
また、フォームタイプ endUserWorkItemListExt のマッピングも更新する必要があります。「マップされるフォーム名」を End User Approvals List に変更します。
LocalFiles をリポジトリに使用している環境で、バージョン 6.0 からアップグレードする場合は、アップグレードの前にすべてのデータをエクスポートし、8.1 のクリーンインストールを実行したあとにデータを再インポートする必要があります。(ID-15366)
最新のバージョンに一度にアップグレードする場合は、このあとの節で説明するアップグレードの注意点も確認してください。以降のバージョンの Identity Manager に関するアップグレードの注意点も、適用されます。
LocalFiles をリポジトリに使用している環境で、バージョン 7.0 からアップグレードする場合は、アップグレードの前にすべてのデータをエクスポートし、8.1 のクリーンインストールを実行したあとにデータを再インポートする必要があります。(ID-15366)
Identity Manager Service Provider Edition (SPE) オブジェクトの名前が Identity Manager Service Provider に変更されるため、アップグレードログに ItemNotFound 例外が記録される場合があります。(ID-18860)
インストールに Remedy リソースが含まれている場合、Remedy API ライブラリをゲートウェイがインストールされるディレクトリに配置する必要があります。これらのライブラリは、Remedy サーバーにあります。
最新のバージョンに一度にアップグレードする場合は、このあとの節で説明するアップグレードの注意点も確認してください。以降のバージョンの Identity Manager に関するアップグレードの注意点も、適用されます。
バージョン 7.1.1 から、Identity Manager の User Extended Attributes は複数値属性を完全にサポートします。(ID-14863)
複数値ユーザー拡張属性をアカウントリストテーブルに追加することができ、このリストを描画してもエラーにはなりません。ただし、該当する列をソートしようとすると、次のエラーが発生します。
java.lang.ClassCastException: java.util.ArrayList
複数値拡張属性を参照する属性条件は、ユーザーオブジェクトが再直列化された場合にのみ、そのユーザーオブジェクトを正しく評価します。そのような属性条件ですべてのユーザーオブジェクトが正しく評価されるようにするには、すべてのユーザーオブジェクトを再直列化する必要があります。手順については、次の節の「ユーザーオブジェクトの更新」を参照してください。
特定のタイプを変更した場合、管理者はすべての User オブジェクトを更新する必要があります。たとえば、RepositoryConfiguration 内の Type.USER のインライン属性を変更したときは、すべての User オブジェクトを更新する必要があります。IDMSchemaConfiguration オブジェクト内で属性をクエリー可能または概要としてマーク付けするたびに、すべての User オブジェクトを更新して、古い未変更のオブジェクトで変更を有効にする必要があります。Identity Manager の新しいバージョンで新しい属性が追加されるとき、または Identity Manager の新しいバージョンによって既存の属性の値が変更されるときは、同じロジックが適用されます。アップグレードプロセスまたは管理者は、すべての User オブジェクトを更新して、古い未変更のオブジェクトで変更を有効にする必要があります。
既存のユーザーを再直列化するには、次の 3 つの方法があります。
通常処理中に個々のユーザーオブジェクトを変更する。
たとえば、ユーザーインタフェースからユーザーアカウントを開き、変更ありまたは変更なしで保存します。
短所: この方法には時間がかかり、管理者はすべての既存ユーザーが再直列化されていることを十分に確認する必要があります。
lh refreshType ユーティリティーを使用して、すべてのユーザーを再直列化する。refreshType ユーティリティーの出力は、更新されたユーザーリストです。
lh console
refreshType User
短所: refreshType ユーティリティーはバックグラウンドではなくフォアグラウンドで動作するため、このプロセスに時間がかかる場合があります。ユーザー数が多い場合は、すべてを再直列化するのに長時間かかります。
延期タスクスキャナを使用する。
延期タスクスキャナプロセスを実行する前に、Sun Identity Manager 統合開発環境 (IDE) またはその他の方法を使用して、System Configuration オブジェクトを編集する必要があります。
'refreshOfType' を検索し、'2005Q4M3refreshOfTypeUserIsComplete' と '2005Q4M3refreshOfTypeUserUpperBound' の属性を削除します。
システム設定オブジェクトの編集が終わったら、そのオブジェクトをリポジトリにインポートして変更を適用する必要があります。
短所: この方法は、ほぼすべての User オブジェクトを調べて再書き込みするため、次の延期タスクスキャナの実行に長い時間がかかります。ただし、その後の延期タスクスキャナは通常の速度と期間で実行されるはずです。
最新のバージョンに一度にアップグレードする場合は、このあとの節で説明するアップグレードの注意点も確認してください。以降のバージョンの Identity Manager に関するアップグレードの注意点も、適用されます。
Oracle リポジトリを使用している場合、Identity Manager 8.0 および 8.1 リポジトリの DDL は、古い Oracle JDBC ドライバでは適切に処理されないデータ型を使用します。ojdbc14.jar に含まれる JDBC ドライバは、ログテーブルの一部の列を正しく読み取ることができません。
Identity Manager を正しく動作させるには、JDK 5 ドライバを ojdbc5.jar にアップグレードする必要があります。
アップグレードにより、User Extended Attributes オブジェクトと、UserUIConfig オブジェクトの QueryableAttrNames および SummaryAttrNames 要素が、IDM Schema Configuration オブジェクトに自動的に変換されます。(ID-17784)
サンプルの update.xml スクリプトには、IDMSchemaConfigurationUpdater を呼び出して従来のユーザースキーマ設定オブジェクトを変換するインポートコマンドが含まれています。従来のユーザースキーマ設定オブジェクトの変換が成功すると、次の処理が実行されます。
User Extended Attributes からの個々の拡張属性名に対して、IDM Schema Configuration の内部に IDMObjectClassAttribute 要素を作成します。
UserUIConfig 内部の SummaryAttrNames 要素からの各値に対応するすべての IDMObjectClassAttribute に、「summary」のフラグを付けます。
UserUIConfig 内部の QueryableAttrNames 要素からの各値に対応するすべての IDMObjectClassAttribute に、「queryable」のフラグを付けます。
UserUIConfig 内部の SummaryAttrNames 要素を空にします。
UserUIConfig 内部の QueryableAttrNames 要素を空にします。
objectClass という名前のすべての拡張属性を spml2ObjectClass に名前変更します。バージョン 8.0 からは、objectClass という名前の従来の属性が、Identity Manager スキーマ内のコア属性と競合します。
Identity Manager 8.0 には、Roles オブジェクト専用の新しいテーブルがあります。スキーマの変更、新しいテーブル構造の作成、および既存データの移動には、db_scripts ディレクトリにあるサンプルスクリプトを使用する必要があります。
リポジトリデータベースのテーブル定義を更新する前に、リポジトリテーブルのフルバックアップを作成します。
スクリプトの詳細は、db_scripts/upgradeto8.0from71.DBMSName を参照してください。
スーパーロールはそれ自体が入れ子のロールである可能性があるため、「ロール」フォームでスーパーロールフィールドを編集するときは注意が必要です。スーパーロールおよびサブロールフィールドは、ロールと、それらに関連付けられたリソースまたはリソースグループの入れ子構造を示します。ユーザーに適用されるとき、スーパーロールには、任意の指定されたサブロールと関連付けられるリソースが含まれています。スーパーロールフィールドは、表示中のロールを包含するロールを示すために表示されます。
アップグレードプロセスの間、Identity Manager はシステム上のすべてのロールを分析し、RoleUpdater クラスを使用して、見つからないすべてのサブロールリンクおよびスーパーロールリンクを更新します。
アップグレードプロセスの外部でロールを確認およびアップグレードするために、sample/forms/RoleUpdater.xml で提供される新しい RoleUpdater 設定オブジェクトをインポートできます。
たとえば、次のようにします。
<?xml version='1.0' encoding='UTF-8'?> <!DOCTYPE Waveset PUBLIC 'waveset.dtd' 'waveset.dtd'> <Waveset> <ImportCommand class='com.waveset.session.RoleUpdater' > <Map> <MapEntry key='verbose' value='true' /> <MapEntry key='noupdate' value='false' /> <MapEntry key='nofixsubrolelinks' value='false' /> </Map> </ImportCommand> </Waveset> |
各表記の意味は次のとおりです。
verbose: ロールの更新時に詳細な情報を出力します。ロールのサイレント更新を有効にするには、false を指定します。
noupdate: ロールが更新されるかどうかを決定します。更新されるロールの一覧のみをレポートに出力するには、false を指定します。
nofixsubrolelinks: 見つからないサブロールリンクでスーパーロールを更新するかどうかを決定します。この値はデフォルトで false に設定されており、リンクは修復されます。
ユーザーまたはロールの Identity Manager スキーマを表示または編集する必要のある管理者は、IDM Schema Configuration AdminGroup に属しており、かつ IDM Schema Configuration 機能を持っている必要があります。
Identity Manager の SPML 2.0 実装は、Sun Identity Manager 8.0 で変更されました。以前のリリースでは、SPML メッセージで使用されていた SPML objectclass 属性は、Identity Manager User オブジェクトの objectclass 属性に直接マップされていました。現在では、objectclass 属性は spml2ObjectClass 属性に内部的にマップされ、ほかの目的のために内部で使用されるようになっています。
アップグレードプロセスの間、objectclass 属性の値は、既存のユーザーに合わせて自動的に名前変更されます。objectclass 属性を参照するフォームが SPML 2.0 設定に含まれている場合、それらの参照を手動で spml2ObjectClass への参照に変更する必要があります。
Identity Manager はアップグレードの間に、サンプルの spml2.xml 設定ファイルを置き換えません。アップグレード前の環境で spml2.xml 設定ファイルを使用していた場合、このファイルには objectclass への参照を伴うフォームが含まれており、それを spml2ObjectClass への参照に変更する必要があることに注意してください。(属性が内部的に使用される) フォーム内の objectclass 属性を変更し、(属性が外部に公開される) ターゲットスキーマ内の objectclass 属性は変更しないでください。
Identity Manager をアップグレードするときに、UserUIConfig#getRepoIndexAttributes() を呼び出すカスタムコードは、削除するか、Type.USER#getInlineAttributeNames() を呼び出すように変更する必要があります。(ID-18051)
update.xml をインポートすると、UserUIConfig RepoIndexAttrs からの値が、RepositoryConfiguration オブジェクトの内部にある Type.USER の TypeDataStore 要素の XML 属性の値に変換されます。update.xml ファイルには UserUIConfigUpdater.xml ファイルが含まれます。 このファイルには、UserUIConfigUpdater を呼び出して RepoIndexAttrs を変換するインポートコマンドが含まれています。変換ではさらに、再変換を禁止するフラグが SystemConfiguration に設定されます。
Type.USER のインライン属性に対する今後の変更はすべて、RepositoryConfiguration オブジェクトを編集することによって行うことをお勧めします。Type.USER のインライン属性を変更する場合、通常はすべての Type.USER オブジェクトを更新する必要があります。
RepositoryConfiguration の変更は、Identity Manager サーバーを再起動するまで、そのサーバーに影響しません。
Sun Identity Manager 8.0 では、レポートでのチャートおよびグラフの表示方式が変更されました。バージョン 8.0 より前に作成されたレポートは、バージョン 8.0 で意図したとおりに表示されます。Sun Identity Manager 8.1 では、これらのレポートは正しく表示されません。この問題に関する非推奨の注意点が、『Sun Identity Manager リリースノート バージョン 8.0 2008 年 5 月』に記載されています。(ID-17636)
SaveNoValidate アクションを使用するフォームとワークフローは、新しい saveNoValidateAllowedFormsAndWorkflows リストに追加する必要があります。(ID-19115)
Sun Identity Manager 8.1 に追加されたホワイトリスト機能は、SaveNoValidate アクションを使用するフォームとワークフローを、フォーム名の ID のリストでチェックします。saveNoValidateAllowedFormsAndWorkflows リストは、System Configuration オブジェクトの security 属性にあります。この更新により、フォーム名または所有者の ID がホワイトリストに指定されている場合、フォームまたはワークフローで SaveNoValidate アクションを使用できます。フォーム名または所有者 ID がリストにない場合、フォームまたはワークフローは Save アクションを使用して処理されます。
SaveNoValidate アクションを使用するフォームとワークフローの ID またはフォーム名を取得するには、システムログを確認するか、com.waveset.ui.util.GenericEditForm に対してトレースレベルを 4 にして、SaveNoValidate を使用するカスタムフォームまたはワークフローを送信します。ID を含む警告がログに記録されます。
ホワイトリストにフォーム名を追加する場合、フォームの名前属性が設定されていることを確認してください。設定されていない場合は、次のエラーメッセージが表示されます。
SaveNoValidate on null processed as Save because it is not in the saveNoValidateAllowedFormsAndWorkflows list.