Sun™ Identity Manager 8.0 リリースノート |
ドキュメントの追加事項と修正事項
ここでは、Identity Manager 8.0 マニュアルセットが発行されたあとに必要となった新しい情報と修正情報を記載しています。この情報は、次のように構成されています。
Identity Manager 8.0 管理ガイドここでは、『Sun Identity Manager 管理ガイド』の修正事項を記載しています。
Identity Manager 配備に関する技術概要ここでは、『Sun Identity Manager 配備に関する技術概要』に追加すべき情報とドキュメントの修正事項を記載しています。
『Identity Manager 配備に関する技術概要』の「Identity Manager のプライベートラベリング」の章で、次の情報が追加または訂正されます。
th#UserListTreeContent_Col0 {
width: 1px;
}th#UserListTreeContent_Col1 {
width: 1px;
}th#UserListTreeContent_Col2 {
width: 50%;
}th#UserListTreeContent_Col3 {
width: 50%;
}th#ResourceListTreeContent_Col0 {
width: 1px;
}th#ResourceListTreeContent_Col1 {
width: 1px;
}th#ResourceListTreeContent_Col2 {
width: 33%;
}th#ResourceListTreeContent_Col3 {
width: 33%;
}th#ResourceListTreeContent_Col4 {
width: 33%;
}
- エンドユーザーナビゲーションバー (タブ) で特定のカスタム JavaScript 関数を使用するには、endUserNavigation を使用してそのフォームを参照する必要があります。たとえば、document.forms['endUserNavigation'].elements とします。(ID-13769)
- アクセスレビューダッシュボードと Access Review Detail Report の両方に、監査ログで記録されたレビューのインスタンスが表示されます。データベースのメンテナンスをしないと、監査ログが削除されず、レビューのリストが大きくなります。Identity Manager では、表示されるレビューを特定の期間範囲に制限できます。この制限を変更するには、compliance/dashboard.jsp (ダッシュボードの場合) と sample/auditortasks.xml (詳細レポートの場合) をカスタマイズする必要があります。デフォルトは、2 年以内のレビューのみを表示します。
- コード例 5-5 には、コード例 5-4 に表示されるはずの情報が含まれています。
コード例 5-4 は、正しくは次のとおりです。
コード例 5-5 は、正しくは次のとおりです。
コード例 5-5 タブパネルのタブの変更
table.Tab2TblNew td {background-image:url(../images/other/dot.gif);background-repeat:repeat-x;back ground-position:left top;background-color:#CCCCFF;border:solid 1px #8f989f}
table.Tab2TblNew td.Tab2TblSelTd {border-bottom:none;background-image:url(../images/other/dot.gif);background-r epeat:repeat-x;background-position:left bottom;background-color:#FFF;border-left:solid 1px #8f989f;border-right:solid 1px #8f989f;border-top:solid 1px #8f989f}
ブラウザのタイトルバーの製品名文字列を、任意のローカライズ可能な文字列で置き換えることができるようになりました。
- 次の XML ファイルをインポートします。
コード例 5-6 インポートする XML
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE Configuration PUBLIC 'waveset.dtd' 'waveset.dtd'>
<Configuration name='AltMsgCatalog'>
<Extension>
<CustomCatalog id='AltMsgCatalog' enabled='true'>
<MessageSet language='en' country='US'>
<Msg id='UI_BROWSER_TITLE_PROD_NAME_OVERRIDE'>Override Name</Msg>
</MessageSet>
</CustomCatalog>
</Configuration>
</Extension>
- Identity Manager IDE を使用して、System Configuration オブジェクトを編集のためにロードします。次の新しい最上位属性を追加します。
Name = customMessageCatalog
Type = string
Value = AltMsgCatalog
- ui.web Generic Object を開き、browserTitleProdNameOverride 属性を検索します。この値を true に設定します。
- System Configuration オブジェクトの変更を保存し、アプリケーションサーバーを再起動します。
- 「Customizing Identity Manager End User Pages」で示されているログインページのカスタマイズ手順で、メッセージキーについての次の情報が欠落しています。(ID-16072)
JSP または Identity Manager のコンポーネント
影響を受けるインタフェース
メッセージキー
Login Page TITLE
管理者およびユーザー
UI_LOGIN_TITLE_TO_RESOURCE
UI_LOGIN_CHALLENGE
Login Page SUBTITLE
管理者およびユーザー
ログインモード Forgot Password、Forgot User ID、Login Challenge に応じてキーを選択します。
UI_LOGIN_WELCOME3
UI_LOGIN_WELCOME4
UI_LOGIN_WELCOME5
UI_LOGIN_WELCOME6
UI_LOGIN_CHALLENGE_INFO
staticLogout.jsp および user/staticUserLogout.jsp
管理者およびユーザー
UI_LOGIN_TITLE
continueLogin.jsp
管理者
UI_LOGIN_IN_PROGRESS_TITLE
UI_LOGIN_WELCOME
デフォルトの「次のユーザーとしてログイン...」テキストの変更
- 次の XML ファイルをインポートします。
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE Configuration PUBLIC 'waveset.dtd' 'waveset.dtd'>
<Configuration name='AltMsgCatalog'>
<Extension>
<CustomCatalog id='AltMsgCatalog' enabled='true'>
<MessageSet language='en' country='US'>
<Msg id='UI_NAV_FOOT_LOG_AS'>mytext {0}!</Msg>
</MessageSet>
</CustomCatalog>
</Extension>
</Configuration>
- システム設定オブジェクトの <Configuration><Extension><Object> 要素の内部に、次の行を追加します。
<Attribute name='customMessageCatalog' value='AltMsgCatalog'/>
- 変更を保存してアプリケーションサーバーを再起動します。
Identity Manager ワークフロー、フォーム、およびビューここでは、『Sun Identity Manager ワークフロー、フォーム、およびビュー』に追加すべき情報とドキュメントの修正事項を記載しています。
第 1 章:「Identity Manager ワークフロー」
Test Auto Attestation
アテステーション作業項目を作成することなく、新しいレビュー決定規則をテストするために使用します。このワークフローは作業項目を作成せず、開始直後に終了するだけです。すべてのユーザーエンタイトルメントオブジェクトは、アクセススキャンによって作成されたときと同じ状態のままです。このワークフローで実行されたアクセススキャンからの結果をクリーンアップするには、Terminate および Delete オプションを使用します。
このスタブワークフローは必要に応じてインポートできます (Identity Manager はこのワークフローを自動的にインポートしない)。
- Identity Manager Compliance では、アプリケーションの統合ポイントおよびカスタマイズポイントとしてワークフローを使用します。デフォルトのコンプライアンス関連ワークフローを以下で説明しています。(ID-15447)
ワークフロー名
目的
Remediation
単一のコンプライアンス違反を単一の是正者が扱っている場合の是正処理
Access Review Remediation
単一のユーザーエンタイトルメントを単一の是正者が扱っている場合の是正処理
Attestation
単一のユーザーエンタイトルメントを単一のアテスターが扱っている場合のアテステーション処理
Multi Remediation
単一のコンプライアンス違反を複数の是正者が扱っている場合の是正処理
Update Compliance Violation
コンプライアンス違反を受け入れる
Launch Access Scan
Access Review タスクから Access Scan タスクを呼び出す
Launch Entitlement Rescan
単一のユーザーに対するアクセススキャンの再スキャンを呼び出す
Launch Violation Rescan
単一のユーザーに対する監査ポリシースキャンの再スキャンを呼び出す
- maxSteps プロパティーの説明が次のように変更されました (ID-15618)。
提供されたスクリプトに基づいて Beanshell または JavaScript を実行します。タスクとして、定期的に実行するためのスケジュール設定が可能です。たとえば、このタスクを使用して、レポート作成および分析目的でリポジトリからデータベースにデータをエクスポートできます。利点には、カスタム Java コードを記述することなくカスタムタスクを記述できることがあります (カスタム Java コードはアップグレードのたびに再コンパイルが必要であり、すべてのサーバーに配備される必要がある。スクリプトは Scripted Task Executor タスクに埋め込まれ、再コンパイルや配備の必要はない)。
第 2 章:「ワークフローサービス」
- 「createView セッションワークフローサービス」で、引数の表が誤っています。次の表に、このサービスで使用できる引数を示します (ID-14201)。
表 2
名前
必須であるか
有効値
説明
op
はい
createView
viewId
はい
作成するビューのタイプを指定します。
options
いいえ
ビューに固有のオプションを指定します。渡すことができる値は、使用するビューによって異なります。もっとも一般的なものは、User ビューです。
オプションは、session.UserViewConstants にあります。単純なビューでは、Viewer.java ファイルでオプションの定数を宣言してください。
ワークフローで使用される、その次に一般的なビューは ProcessViewer で、以後、PasswordViewer、DisableViewer、EnableViewer、および RenameViewer が続きます。これらのビューのオプションは、比較的少数です。
- 「disableUser セッションワークフローサービス」の説明で、このサービスのデフォルト動作では Identity Manager アカウントとリソースアカウントが無効になることを明確に示す必要があります。(ID-14572) Identity Managerアカウントを無効にしないためには、次の引数を渡します。
lock プロビジョンワークフローサービス
オブジェクトをロックするために使用します。
引数
必須であるか
説明
subject
いいえ
呼び出しの有効な主体を指定します。指定されていない場合、Identity Manager ではタスクの主体が使用されます。この引数の値が none の場合、Identity Manager は認証を実行しません。
options
いいえ
(Map) オプション名とオプション値のペアから成る値マップ。指定されていない場合は、下記の特定の引数が使用されます。指定されている場合、下記の特定の引数が指定されていると、この options マップに含まれている同じ引数は上書きされます。
accountId
いいえ
(String) ロックする Identity Manager ユーザーの名前を識別します。
adminName
いいえ
(String) 操作を実行する管理者の名前を示します。
loginAppName
いいえ
(String) ログインアプリケーションの名前を指定します。
op
はい
有効な値は unlock です。
このメソッドは null 値を返します。
unlock ワークフローサービス
ロックされているオブジェクトのロックを解除します。
表 3
引数
必須であるか
説明
subject
いいえ
(String) 呼び出しの有効な主体を指定します。指定されていない場合は、タスクの主体が使用されます。この引数の値が none の場合、認証は実行されません。
options
いいえ
(Map) オプション名とオプション値のペアから成る値マップ。指定されていない場合、Identity Manager では下記の特定の引数が使用されます。指定されている場合、下記の特定の引数が指定されていると、この options マップに含まれている同じ引数は上書きされます。
accountId
いいえ
(String) ロック解除する Identity Manager ユーザーの名前を識別します。
adminName
いいえ
(String) 操作を実行する管理者の名前を示します。
loginAppName
いいえ
(String) ログインアプリケーションの名前を指定します。
doLighthouse
いいえ
(Boolean) Identity Manager アカウントのロックを解除するかどうかを指定します。
doResources
いいえ
(Boolean) ユーザーのリソースのロックを解除するかどうかを指定します。
doAuthenticators
いいえ
(Boolean) true の場合は、すべてのパススルー認証のロックを解除します。
op
はい
有効な値は unlock です。
このメソッドは、操作の結果を含む WavesetResult を返します。
第 3 章:「Identity Manager フォーム」
Identity Manager の監査フォームおよびコンプライアンスフォームは、Identity Manager のフォームで独自の機能を提供します。ユーザー単位および組織単位でフォームを割り当てることができます。ユーザー単位で割り当てられたフォームによって、アテステーションおよび是正処理の効率を高めることができます。
たとえば、アクセスレビュー、是正、またはコンプライアンス違反是正のコンテキストで Identity Manager がユーザーの編集用に表示するユーザーフォームを指定できます。このユーザーフォームは、ユーザーまたは組織のレベルで指定できます。アクセスレビュー再スキャンまたはアクセスレビュー是正のコンテキストで Identity Manager がユーザーを再スキャンするとき、その再スキャンでは AccessScan で定義された監査ポリシーが考慮されます。これを定義して、継続的なコンプライアンス監査ポリシーを含めることができます。
関連情報
監査関連のフォーム処理について
userForm や viewUserForm と同様に、特定のユーザーまたは組織に対してフォームを設定できます。ユーザー (または組織内のすべてのユーザー) は、そのフォームを使用することになります。ユーザーと組織の両方に対してフォームを設定する場合、ユーザーに対して設定したフォームが優先されます。フォームを検索するとき、Identity Manager は組織を上位方向に検索します。
監査関連のフォームの動作は、ユーザーフォームおよびユーザー表示フォームと同様です。使用する特定のフォームを各ユーザーが指定でき、特定のユーザーがどのフォームを使用するかはユーザーの組織に基づいて解決されます。
ユーザーフォームの指定
デフォルトの監査関連フォーム
次の表は、Identity Manager に用意されているデフォルトの監査関連フォームの一覧です。
表 5
フォーム名
マップされた名前
ユーザー単位の制御
一般的な目的
Access Approval List
accessApprovalList
アテステーション作業項目の一覧を表示する
Access Review Delete Confirmation
accessReviewDeleteConfirmation
アクセスレビューの削除を確認する
Access Review Abort Confirmation
accessReviewAbortConfirmation
アクセスレビューの終了を確認する
Access Review Dashboard
accessReviewDashboard
すべてのアクセスレビューの一覧を示す
Access Review Remediation Form
accessReviewRemediationWorkItem
あり
UE ベースの各是正作業項目を描画する
Access Review Summary
accessReviewSummary
特定のアクセスレビューの詳細を示す
Access Scan Form
accessScanForm
アクセススキャンを表示または編集する
Access Scan List
accessScanList
すべてのアクセススキャンの一覧を示す
Access Scan Delete Confirmation
accessScanDeleteConfirmation
アクセススキャンの削除を確認する
Access Approval List
attestationList
あり
すべての保留中アテステーションの一覧を描画する
Attestation Form
attestationWorkItem
あり
各アテステーション作業項目を描画する
UserEntitlementForm
userEntitlementForm
ユーザーエンタイトルメントの内容を表示する
UserEntitlement Summary Form
userEntitlementSummaryForm
Violation Detail Form
violationDetailForm
コンプライアンス違反の詳細を示す
Remediation List
remediationList
あり
是正作業項目の一覧を示す
Audit Policy List
auditPolicyList
監査ポリシーの一覧を示す
Audit Policy Delete Confirmation Form
auditPolicyDeleteConfirmation
監査ポリシーの削除を確認する
Conflict Violation Details Form
conflictViolationDetailsForm
SOD 違反マトリックスを示す
Compliance Violation Summary Form
complianceViolationSummaryForm
Remediation Form
reviewWorkItem
あり
コンプライアンス違反を描画する
これらのフォームをカスタマイズする理由
アテスターおよび是正者は、アテステーションと是正をより効率的に行うために、必要な詳細情報を正確に示すフォームを指定できます。たとえば、リソースアテスターは、特定の作業項目を個別に参照しなくてもアテストできるように、特定のリソース固有属性をリストフォームに示すことができます。このようなフォームは関係するリソースタイプ (および属性) ごとに異なるため、アテスター単位でフォームをカスタマイズすることは合理的です。
アテステーションの間、各アテスターは独自の観点からエンタイトルメントを参照できます。たとえば、idmManager アテスターは一般的な方法でユーザーエンタイトルメントを参照する一方で、リソースアテスターはリソース固有のデータにしか関心がない、ということが考えられます。各アテスターで Attestation-list フォームと AttestationWorkItem フォームの両方をカスタマイズし、必要な情報のみを検出して表示できるようにすれば、製品インタフェースの効率を強化できます。
スキャンタスク変数
監査ポリシースキャンタスクおよびアクセススキャンタスクのタスク定義はどちらも、タスクを開始するときに使用するフォームを指定します。これらのフォームには、一部を除いたほとんどのスキャンタスク変数を制御できるフィールドが含まれています。
変数名
デフォルト値
目的
maxThreads
5
単一のスキャンタスクで同時に処理できるユーザー数を示します。この値を大きくすると、非常に低速なリソース上にアカウントを持つユーザーのスキャン時にスループットが向上する可能性があります。
userLock
5000
スキャンされるユーザーに対するロックの取得試行に費やされる時間 (ミリ秒) を示します。複数の同時スキャンが同じユーザーをスキャンしており、そのユーザーが低速なリソースを持つ場合、この値を大きくすると、ロックエラーが減る一方でスキャン全体が低速になる可能性があります。
scanDelay
0
新しいスキャンスレッドを発行する間の遅延時間 (ミリ秒) を示します。正の値に設定することにより、スキャナの CPU 待ち時間を減らすことができます。
- 警告 (WARNING)、エラー (ERROR)、または情報 (OK) の各アラートメッセージを XPRESS フォームに挿入できるようになりました。(ID-14540、ID-14953)
- Identity Manager IDE を使用して、警告の追加先であるフォームを開きます。
- <Property name='messages'> を、メインの EditForm または HtmlPage 表示クラスに追加します。
- 次のサンプルコードから、<defvar name='msgList'> コードブロックを追加します。
- コードサンプル文字列内の、「Alert」ボックスに表示されるメッセージテキストを識別するメッセージキーを置き換えます。
<message name='UI_USER_REQUESTS_ACCOUNTID_NOT_FOUND_ALERT_VALUE >
- ファイルを保存して閉じます。
コード例
<Display class='EditForm'>
<Property name='componentTableWidth' value='100%'/>
<Property name='rowPolarity' value='false'/>
<Property name='requiredMarkerLocation' value='left'/>
<Property name='messages'>
<ref>msgList</ref>
</Property>
</Display>
<defvar name='msgList'>
<cond>
<and>
<notnull>
<ref>username</ref>
</notnull>
<isnull>
<ref>userview</ref>
</isnull>
</and>
<list>
<new class='com.waveset.msgcat.ErrorMessage'>
<invoke class='com.waveset.msgcat.Severity' name='fromString'>
<s>warning</s>
</invoke>
<message name='UI_USER_REQUESTS_ACCOUNTID_NOT_FOUND_ALERT_VALUE'>
<ref>username</ref>
</message>
</new>
</list>
</cond>
</defvar>
第 4 章:「Identity Manager のビュー」
共通属性
次の表は、Org ビューの上位レベル属性の一覧です。
名前
可能な編集
データ型
必須であるか
orgName
読み取り
String
システムが生成する
orgDisplayName
読み取り/書き込み
String
あり
orgType
読み取り/書き込み
String
いいえ
orgId
読み取り
String
システムが生成する
orgAction
書き込み
String
いいえ
orgNewDisplayName
書き込み
String
いいえ
orgParentName
読み取り/書き込み
String
いいえ
orgChildOrgNames
読み取り
List
システムが生成する
orgApprovers
読み取り/書き込み
List
いいえ
allowsOrgApprovers
読み取り
List
システムが生成する
allowedOrgApproverIds
読み取り
List
システムが生成する
orgUserForm
読み取り/書き込み
String
いいえ
orgViewUserForm
読み取り/書き込み
String
いいえ
orgPolicies
読み取り/書き込み
List
いいえ
orgAuditPolicies
読み取り/書き込み
List
いいえ
renameCreate
読み取り/書き込み
String
いいえ
renameSaveAs
読み取り/書き込み
String
いいえ
orgName
組織の UID を識別します。複数の組織が orgDisplayName が同じでも、親組織は異なるという場合があるために、ほとんどの場合 orgName は組織ビュー上のオブジェクト名とは異なります。
orgDisplayName
組織の短い名前を指定します。この値は表示目的のみで使用され、一意である必要はありません。
orgType
組織タイプを定義します。指定できる値は junction または virtual です。junction または virtual タイプでない組織には値がありません。
orgId
Identity Manager の内部で組織を一意に識別するために使われる ID を指定します。
orgAction
ディレクトリジャンクション、仮想組織、および動的組織に対してのみサポートされています。指定できる値は refresh です。組織がディレクトリジャンクションまたは仮想組織の場合、更新操作の動作は orgRefreshAllOrgsUserMembers の値によって決まります。
orgNewDisplayName
組織の名前変更時に新規の短い名前を指定します。
orgParentName
親組織のフルパス名を識別します。
orgChildOrgNames
直接的および間接的子組織すべての Identity Manager インタフェース名を一覧表示します。
orgApprovers
この組織で追加または変更されたユーザーを承認する必要がある Identity Manager 管理者を一覧表示します。
allowedOrgApprovers
この組織で追加または変更されたユーザーの承認者である可能性があるユーザーの名前を一覧表示します。
allowedOrgApproverIds
この組織で追加または変更されたユーザーの承認者である可能性があるユーザーの ID を一覧表示します。
orgUserForm
ユーザーの作成または編集時に、この組織のメンバーであるユーザーによって使用される userForm を指定します。
orgViewUserForm
ユーザーの参照時に、この組織のメンバーであるユーザーによって使用されるユーザー表示フォームを指定します。
orgPolicies
この組織のメンバーであるすべてのユーザーに適用されるポリシーを識別します。これは、タイプ文字列によってキー指定されるオブジェクトのリストです。各ポリシーオブジェクトには次の表示属性が含まれ、これらの属性には orgPolicies[<type>] というプレフィックスが付きます。<type> はポリシーのタイプ (例: Lighthouse アカウント) を表します。
orgAuditPolicies
この組織のメンバーであるすべてのユーザーに適用される監査ポリシーを識別します。
renameCreate
true に設定すると、この組織が複製され、orgNewDisplayName の値を使用して新しい組織が作成されます。
renameSaveAs
true に設定すると、orgNewDisplayName の値を使用してこの組織の名前が変更されます。
ディレクトリジャンクションと仮想組織の属性
名前
可能な編集
データ型
必須であるか
orgContainerId
読み取り
String
システムが生成する
orgContainerTypes
読み取り
List
システムが生成する
orgContainers
読み取り
List
システムが生成する
orgParentContainerId
読み取り
String
システムが生成する
orgResource
読み取り/書き込み
String
はい (ディレクトリジャンクションまたは仮想組織の場合)
orgResourceType
読み取り
String
システムが生成する
orgResourceId
読み取り
String
システムが生成する
orgRefreshAllOrgsUserMembers
書き込み
String
いいえ
orgContainerId
関連付けられた LDAP ディレクトリコンテナの DN を指定します (例: cn=foo,ou=bar,o=foobar.com)。
orgContainerTypes
ほかのリソースオブジェクトを含むことができるリソースオブジェクトタイプを一覧表示します。
orgContainers
Identity Manager インタフェースが選択リストに表示するリソースのベースコンテナを一覧表示します。
orgParentContainerId
関連付けられた親 LDAP ディレクトリコンテナの DN を指定します (例: ou=bar,o=foobar.com)。
orgResource
ディレクトリジャンクションと仮想組織を同期するために使用される Identity Manager リソースの名前を指定します (例: West Directory Server)。
orgResourceType
ディレクトリジャンクションと仮想組織を同期する際の同期元 Identity Manager リソースのタイプを示します (例: LDAP)。
orgResourceId
ディレクトリジャンクションと仮想組織を同期するために使用される Identity Manager リソースの ID を指定します。
orgRefreshAllOrgsUserMembers
この値が true で、orgAction の値が refresh の場合、選択された組織とすべての子組織を対象に、アイデンティティー組織のユーザーメンバーシップをリソースコンテナのユーザーメンバーシップと同期します。false の場合、リソースコンテナのユーザーメンバーシップは同期されず、選択された組織とすべての子組織を対象に、リソースコンテナからアイデンティティー組織方向への同期のみが行われます。
動的組織の属性
名前
可能な編集
データ型
必須であるか
orgUserMembersRule
読み取り/書き込み
String
いいえ
orgUserMembersRuleCacheTimeout
読み取り/書き込み
String
いいえ
orgUserMembersRule
authType が UserMembersRule であり、ユーザーメンバーシップを特定するために実行時に評価される規則を (名前または UID によって) 識別します。
orgUserMembersCacheTimeout
orgUserMembersRule によって返されるユーザーメンバーをキャッシュする場合に、キャッシュがタイムアウトになるまでの時間 (ミリ秒) を指定します。値が 0 の場合、キャッシュは行われません。
User ビューの説明に、accounts[Lighthouse].delegates 属性についての次の説明を追加する必要があります (ID-15468)。
accounts[Lighthouse].delegates
workItemType によってインデックスが付けられた委任オブジェクトの一覧を示します。各オブジェクトは、特定タイプの作業項目の委任情報を指定します。
accounts[Lighthouse].delegatesHistory
n のインデックスが付けられた委任オブジェクトを一覧表示します。n は委任履歴オブジェクトの現在の数 (最大は委任履歴の深さ) です。
この属性には 1 つの一意な属性 selected があります。これは、現在選択されている委任履歴オブジェクトを示すブール型の値です。
accounts[Lighthouse].delegatesOriginal
取得操作またはビューのチェックアウト操作に続く、委任オブジェクトのオリジナルの一覧で、workItemType によってインデックスが付けられます。
すべての accounts[Lighthouse].delegates* 属性は次の属性を取ります。
accounts[Lighthouse].delegate* 属性の属性
説明
workItemType
委任されている workItem のタイプを識別します。有効な workItem タイプの一覧については、この「ドキュメントの追加事項」の「Identity Manager 配備に関する技術概要」の節の、委任オブジェクトモデルの説明を参照してください。
workItemTypeObjects
ユーザーが将来の workItem 承認要求を委任している対象の、特定のロール、リソース、または組織の名前を一覧表示します。この属性は、workItemType の値が roleApproval、resourceApproval、または organizationApproval である場合に有効です。
指定されない場合、この属性はデフォルトで、このユーザーが承認者であるすべてのロール、リソース、または組織に対する将来の workItem 要求の委任を指定します。
toType
委任先のタイプです。有効な値は次のとおりです。
manager
delegateWorkItemsRule
selectedUsers
toUsers
委任先ユーザーの名前を一覧表示します (toType が selectedUsers の場合)。
toRule
委任先ユーザーの集合を決定するために評価される規則の名前を指定します (toType が delegateWorkItemsRule の場合)。
startDate
委任が開始する日付を指定します。
endDate
委任が終了する日付を指定します。
フォームからの DelegateWorkItems ビューオブジェクトの参照
次のコードサンプルは、DelegateWorkItems ビュー委任オブジェクトをフォームから参照する方法を例示します。
<Field name='delegates[*].workItemType'>
<Field name='delegates[*].workItemTypeObjects'>
<Field name='delegates[*].toType'>
<Field name='delegates[*].toUsers'>
<Field name='delegates[*].toRule'>
<Field name='delegates[*].startDate'>
<Field name='delegates[*].endDate'>
サポートされるインデックス値 (*) は workItemType の値です。
名前
可能な編集
型
必須であるか
name
String
はい
status
String
はい
user
String
はい
userId
String
はい
attestorHint
String
いいえ
userView
GenericObject
はい
reviewInstanceId
String
はい
reviewStartDate
String
はい
scanId
String
はい
scanInstanceId
String
はい
approvalWorkflowName
String
はい
organizationId
String
はい
attestorComments.name
String
いいえ
attestorComments.attestor
String
いいえ
attestorComments.time
String
いいえ
attestorComments.timestamp
String
いいえ
attestorComments.status
いいえ
name
一意識別子によってユーザーエンタイトルメントを識別します。
status
ユーザーエンタイトルメントオブジェクトの状態を指定します。有効な状態は PENDING、ACCEPTED、REJECTED、REMEDIATING、CANCELLED です。
user
このエンタイトルメントに関連付けられた WSUser の名前を識別します。
userId
関連付けられた WSUser の ID を指定します。
attestorHint
レビュー決定規則によって提供されるアテスターへのヒント (String) を表示します。このヒントは規則からアテスターへの「アドバイス」として機能します。
userView
ユーザーエンタイトルメントスキャナによって取得される User ビューを含みます。アクセススキャンオブジェクトの設定に応じて、このビューには任意の数 (ゼロを含む) のリソースアカウントが含まれます。
reviewInstanceId
PAR タスクインスタンスの ID を指定します。
reviewStartDate
PAR タスクの開始日 (String) を示します (標準書式)。
scanId
AccessScan タスク定義の ID を指定します。
scanInstanceId
AccessScan タスクインスタンスの ID を指定します。
approvalWorkflowName
承認のために実行するワークフローの名前を識別します。この値は、Access Scan タスク定義から取得されます。
organizationId
スキャン時点における WSUser の組織の ID を指定します。
attestorComments
エンタイトルメントのアテステーションレコードを一覧表示します。各アテステーションレコードは、承認、却下、再スキャンなど、エンタイトルメントについて行われるアクションまたは文を示します。
attestorComments[timestamp].name
リスト内でこの要素を識別するために使用される時刻表示。
attestorComments[timestamp].attestor
エンタイトルメントにコメントを付けているアテスターの WSUser 名を識別します。
attestorComments[timestamp].time
アテスターがこのレコードをアテストした時刻を指定します。時刻表示とは異なる場合があります。
attestorComments[timestamp].status
アテスターによって割り当てられるステータスを示します。任意の文字列を指定できますが、通常は、アテスターによって行われるアクションを示す文字列 (approve、reject、rescan、remediate など) を指定します。
attestorComments[name].comment
アテスターによって追加されるコメントです。
- User ビューの次の属性は非推奨になりました。(ID-15468)
- accounts[Lighthouse].delegateApproversTo
- accounts[Lighthouse].delegateApproversSelected
- accounts[Lighthouse].delegateApproversStartDate
- accounts[Lighthouse].delegateApproversEndDate
- Delegate Approvers ビューは非推奨になりましたが、workItemType が approval である委任オブジェクトの編集にはまだ使用できます。
第 6 章:「XPRESS 言語」
第 8 章:「HTML 表示コンポーネント」
MultiSelect コンポーネント (アプレットバージョンまたは HTML バージョン) を使用して多数の管理者ロールを表示すると、見映えが悪くなる可能性があります。Identity Manager では、より拡張性のある方法で管理者ロールを表示および管理するための、objectSelector フィールドテンプレートが用意されています。(ID-15433)
(sample/formlib.xml 内の) Scalable Selection Library には、objectSelector フィールドテンプレートを使用して、ユーザーが選択可能な管理者ロール名を検索する例が収録されています。
コード例 objectSelector フィールドテンプレートの例
<Field name='scalableWaveset.adminRoles'>
<FieldRef name='objectSelector'>
<Property name='selectorTitle' value='_FM_ADMIN_ROLES'/>
<Property name='selectorFieldName' value='waveset.adminRoles'/>
<Property name='selectorObjectType' value='AdminRole'/>
<Property name='selectorMultiValued' value='true'/>
<Property name='selectorAllowManualEntry' value='true'/>
<Property name='selectorFixedConditions'>
<appendAll>
<new class='com.waveset.object.AttributeCondition'>
<s>hidden</s>
<s>notEquals</s>
<s>true</s>
</new>
<map>
<s>onlyAssignedToCurrentSubject</s>
<Boolean>true</Boolean>
</map>
</appendAll>
</Property>
<Property name='selectorFixedInclusions'>
<appendAll>
<ref>waveset.original.adminRoles</ref>
</appendAll>
</Property>
</FieldRef>
</Field>
objectSelector サンプルコードの使用方法
- Identity Manager IDE から、Administrator Library の UserForm オブジェクトを開きます。
- このフォームに次のコードを追加します。
<Include>
<ObjectRef type='UserForm' name='Scalable Selection Library'/>
</Include>
- AdministratorFields フィールド内部の accounts[Lighthouse].adminRoles フィールドを選択します。
- accounts[Lighthouse].adminRoles の全体を次の参照で置き換えます。
<FieldRef name='scalableWaveset.adminRoles'/>
- オブジェクトを保存します。
以後、ユーザーを編集して「セキュリティー」タブを表示すると、Identity Manager はカスタマイズされたフォームを表示します。「...」をクリックすると Selector コンポーネントが開き、検索フィールドが表示されます。このフィールドを使用して、特定のテキスト文字列で始まる管理者ロールを検索したり、フィールドに 1 つ以上の値を設定したりできます。
フォームを復元するには、「設定」>「交換ファイルのインポート」から $WSHOME/sample/formlib.xml をインポートします。
多数のオブジェクトが存在する環境でリソースおよびロールを管理するための、objectSelector テンプレートのその他の使用例については、sample/formlib.xml 内の Scalable Selection Library を参照してください。
- TabPanel コンポーネントの説明に、validatePerTab プロパティーについての次の説明を追加する必要があります (ID-15501)。
Menu、MenuBar、および MenuItem の 3 つのクラスで構成されます。
Menu には次のプロパティーが含まれています。
MenuBar には次のプロパティーが含まれています。
MenuItem には次のプロパティーが含まれています。
MenuBar または MenuItem のどちらかに対して、次のプロパティーを設定できます。
次の XPRESS の例では、2 つのタブを持つメニューを作成します。2 番目のタブには 2 つのサブタブが含まれます。
コード例 Menu、MenuItem、および MenuBar コンポーネントの実装
<Display class='Menu'/>
<Field>
<Display class='MenuItem'>
<Property name='URL' value='user/main.jsp'/>
<Property name='title' value='Home' />
</Display>
</Field>
<Field>
<Display class='MenuBar' >
<Property name='title' value='Work Items' />
<Property name='URL' value='user/workItemListExt.jsp'/>
</Display>
<Field>
<Display class='MenuItem'>
<Property name='URL' value='user/workItemListExt.jsp'/>
<Property name='title' value='Approvals' />
</Display>
</Field>
<Field>
<Display class='MenuItem'>
<Property name='URL' value='user/otherWorkItems/listOtherWorkItems.jsp'/>
<Property name='title' value='Other' />
</Display>
</Field>
</Field>
ListEditor
編集可能な文字列リストを描画します。
表 3 ListEditor コンポーネントのプロパティー
プロパティー
説明
listTitle
(String) Identity Manager によって ListEditor のグラフィカル表示の横に配置されるラベルを指定します。
pickListTitle
(String) picklist コンポーネントに使用するラベルを指定します。
valueMap
(Map) リスト内の値の表示ラベルのマップを指定します。
allowDuplicates
(Boolean) この値が true の場合、Identity Manager は管理するリスト内で重複を許可します。
allowTextEntry
(Boolean) この値が true の場合、Identity Manager はテキスト入力ボックスと追加ボタンを表示します。
fixedWidth
(Boolean) この値が true の場合、コンポーネントの幅を固定にすることを示します (Multiselect コンポーネントと同じ動作)。
ordered
(Boolean) この値が true の場合、値の順序が重要であることを示します。
sorted
(Boolean) この値が true の場合、選択リストの値をソートすることを示します。値が複数値でソートされていない場合、Identity Manager は値リストもソートします。
pickValueMap
(List または Map) 選択リスト内の値の表示ラベルのマップを指定します。
pickValues
(List) picklist コンポーネントで使用する値を指定します。null の場合、選択リストは表示されません。
height
(Integer) 優先的に使用する高さを指定します。
width
(Integer) 優先的に使用する幅を指定します。コンテナによりテーブルセル内にこのアイテムが描画されるときに、テーブルセルのプロパティーとして使用できます。
例
Tabbed User Form から抜粋した次の例は、ListEditor 表示クラスを使用するフォームフィールドを示しています。
<Field name='accounts[Sim1].Group'>
<Display class='ListEditor' action='true'>
<Property name='listTitle' value='stuff'/>
<Property name='allowTextEntry'>
<Boolean>true</Boolean>
</Property>
<Property name='ordered'>
<Boolean>true</Boolean>
</Property>
</Display>
<Expansion>
<ref>accounts[Sim1].Group</ref>
</Expansion>
</Field>
このコードは、顧客がユーザーにグループを追加したりユーザーからグループを削除したりできるフィールドを作成します。
Identity Manager ログインページでの自動入力機能の無効化
Identity Manager のログインページで自動入力機能を無効にするには、ui.web.disableAutocomplete システム設定オブジェクトを true に変更します。Identity Manager のログインページには、login.jsp、continueLogin.jsp、user/login.jsp、user/continueLogin.jsp などがあります。
上記以外の Identity Manager ログインフォームは XPRESS から生成されます。新しい表示プロパティーを使用するには、これらのフォームを編集する必要があります。これらのフォームは sample ディレクトリに常駐し、このプロパティーはデフォルトではコメントアウトされています。
付録 A:「フォームマッピングとプロセスマッピング」
- この付録の更新されたバージョンは Form_and_Process_Mappings.pdf というファイル名で doc ディレクトリに置かれています。
- マップされた名前を通じて、コンプライアンス固有のタスクにアクセスできます。(ID-15447)
プロセス名
マップされた名前
説明
Access Review
accessReview
アクセスレビューを実行する
Access Scan
accessReviewScan
アクセススキャンを実行する
Access Review Rescan
accessReviewRescan
アクセス再スキャンを実行する
Audit Policy Rescan
auditPolicyRescan
監査ポリシー再スキャンを実行する
Abort Access Review
abortAccessReview
アクセスレビューを終了する
Delete Access Review
deleteAccessReview
アクセスレビューを削除する
Recover Access Review
recoverAccessReview
見つからないアクセスレビューステータスオブジェクトを監査ログから復元する
Identity Manager 配備ツールここでは、『Identity Manager 配備ツール』ドキュメントの修正事項および追加事項を記載しています。
- (以前のリリースで提供されていた)「Identity Manager IDE」の章はこのマニュアルから削除されました。Identity Manager Integrated Development Environment (Identity Manager IDE) のインストールおよび設定の手順は、https://identitymanageride.dev.java.net で参照できます。(ID-17700)
Identity Manager プロファイラの操作
Identity Manager ではプロファイラユーティリティーが提供され、配備におけるフォーム、Java、規則、ワークフロー、および XPRESS に関連するパフォーマンスの問題のトラブルシューティングに利用できます。
フォーム、Java、規則、ワークフロー、および XPRESS はどれも、パフォーマンスやスケールの問題の原因となる場合があります。プロファイラは、これらのさまざまな領域で消費される時間のプロファイルを作成することにより、これらのフォーム、Java、規則、ワークフロー、または XPRESS オブジェクトがパフォーマンスやスケールの問題の原因となっているかどうか、また、その場合はこれらのオブジェクトのどの部分が問題の原因となっているかを判断できるようにします。
この節では、Identity Manager のプロファイラの使用方法を説明し、配備におけるパフォーマンス問題のトラブルシューティング方法の学習に役立つチュートリアルを提供します。この情報は、次のように構成されています。
概要
この節では、Identity Manager のプロファイラの機能の概要を説明します。この情報は、次のように構成されています。
主な機能
プロファイラユーティリティーを使用すると、次のことが可能です。
プロファイラがソースを見つけて管理するしくみ
この節では、プロファイラが次の Identity Manager オブジェクトのソースをどのように検索して管理するかを説明します。
フォーム、規則、ワークフロー、XPRESS オブジェクトの場合 プロファイラでスナップショットが作成されるとき、サーバーはすべてのプロファイリングデータを評価し、データがどのソースに依存しているかを調べます。次に、サーバーはこれらのソースすべてをリポジトリから取得して、スナップショットに含めます。したがって、スナップショットに表示される Identity Manager オブジェクトは、スナップショットが作成された時点を正確に反映していることが保証されます。
この処理によってスナップショットのサイズは増加しますが、実際のソースのサイズは合計サイズに比べてわずかな部分にすぎません。その結果、Sun のカスタマサポートにはスナップショットを送信すればよく、ソースファイルを個別に送信する必要はありません。
Java ソースの場合 Java ソースのスナップショットを作成するとき、クライアントはそのスナップショットをダウンロードし、プロジェクトより参照されるすべての Java ソースを取り込むためにスナップショットを検索します。スナップショットを保存するとき、クライアントはソースを圧縮して、スナップショットの末尾に追加します。
スナップショットを表示し Java ソースにアクセスするときは、クライアントは最初にスナップショットの内容を確認します。スナップショットに内容が見つからない場合、クライアントはプロジェクトの内容を確認します。この処理により、ユーザーのカスタム Java コードと Identity Manager コードの両方のプロファイリングデータを含んだスナップショットを送信できるようになります。
統計の警告
次の節では、プロファイラから提供される結果を評価する際に考慮すべき情報について説明します。
セルフタイム統計 ルートノードのセルフタイム統計を計算する場合、プロファイラは、ルートノードの合計時間からすべての子ノードの時間を減算します。
したがって、計測されていない子ノードの時間がルートノードのセルフタイムに反映されます。ルートノードのセルフタイムがかなり多い場合は、その理由を必ず調査するようにしてください。適切なメソッドで計測していないために、間違った場所を見ている可能性もあります。
たとえば、メソッド A がメソッド B を呼び出すとします。
メソッド A に合計 10 秒 (この合計時間には B の呼び出しも含まれる)、B の呼び出しに合計 10 秒がかかっています。
A と B の両方を計測していれば、呼び出しスタックにその情報が反映されます。A のセルフタイムは 0 秒、B のセルフタイムは 10 秒と表示されます (10 秒は実際に B で消費された時間)。これに対し、B を計測していない場合は、A の呼び出しに 10 秒かかり、A のセルフタイムは 10 秒であると表示されます。したがって、B ではなく A に直接問題があると考える可能性があります。
特に、最初のコンパイルで JSP のセルフタイムが多いことに気づく場合があります。収集された結果をリセットしてからページを再表示すると、セルフタイムの値はかなり少なくなります。
コンストラクタ呼び出し Java の計測方針には制限があるため、this() または super() の最初の呼び出しは、コンストラクタ呼び出しの子としてではなく兄弟として表示されます。次の例を参照してください。
class A
{
public A()
{
this(0);
}
public A(int i)
{
}
}
および
class B
{
public static void test()
{
new A();
}
}
呼び出しツリーは次のようになります。
B.test()
-A.<init>(int)
-A.<init>()
次のようにはなりません。
B.test()
-A.<init>()
-A.<init>(int)
デーモンスレッド ReconTask.WorkerThread.run() や TaskThread.WorkerThread.run() など、Identity Manager のいくつかのデーモンスレッドで大量の時間が消費されたように見えますが、これに惑わされないでください。この時間の大部分は、イベントを待機しているスリープ中に消費されたものです。イベントの処理中に実際に消費された時間を確認するには、これらのトレースを調査する必要があります。
入門
この節では、プロファイラを起動する方法と、プロファイラのグラフィカルユーザーインタフェースの各種機能を使用する方法について説明します。この情報は、次のように構成されています。
開始する前に
プロファイラはメモリーを集中的に使用するため、サーバーと Netbeans Java 仮想マシン (JVM) 両方のためにメモリーをかなり増やす必要があります。
完了したら、次の節の説明に従ってプロファイラを起動します。
プロファイラの起動
次の方法のいずれかを使用して、Identity Manager IDE ウィンドウからプロファイラを起動できます。
プロファイラを起動すると「Profiler Options」ダイアログが表示されるので、使用するプロファイリングオプションを指定できます。これらのオプションを設定する手順については、「プロファイラオプションの指定」を参照してください。
プロファイラの使用
この節では、プロファイラのグラフィカルユーザーインタフェースの機能と、これらの機能の使用方法について説明します。この情報は、次のように構成されています。
プロファイラオプションの指定
「Profiler Options」ダイアログは次のタブで構成されています。
これらのタブにあるオプションを使用して、どのオブジェクトのプロファイルを作成するか、およびどの要素をプロファイルに表示するかを指定します。
プロファイラのオプションを指定したら、「OK」をクリックしてプロファイラを起動します。プロジェクトの設定に応じて、プロファイラは 2 つの処理のどちらかを実行します。
Mode 「Mode」タブには次のオプションがあります。
IDM Object Filters 「IDM Object Filters」タブには次のオプションがあります。
Java Filters 「Java Filters」タブは次の場合に選択します。
Java フィルタは、メソッドパターンの形で指定され、「正規メソッド名」に基づいて含めるか除外するかを示すパターンで表現されます。正規メソッド名は次のとおりです。
fully-qualified-class-name.method-name(parameter-type-1, parameter-type-2, ...)
次に、いくつかの例を示します。
必要な場合は、build.xml の次の行を適切に編集すると、ほかの JAR を計測できます。次に例を示します。
<instrument todir="${lighthouse-dir-profiler}/WEB-INF" verbose="${instrumentor.verbose}" includeMethods="${profiler.includes}" excludeMethods="${profiler.excludes}">
<fileset dir="${lighthouse-dir}/WEB-INF">
<include name="lib/idm*.jar"/>
<include name="classes/**/*.class"/>
</fileset>
</instrument>
デフォルトの設定では、ユーザーのすべてのカスタムクラスとほとんどの Identity Manager クラスが含められます。いくつかの Identity Manager クラスは、有効にするとプロファイラの障害が発生するため、強制的に除外されています。
たとえば、ワークフロー、フォーム、および XPRESS の各エンジンのクラスは除外されています。そうしないと、プロファイラが Java および Identity Manager オブジェクトのプロファイルを作成する際に、理解不能なスナップショットが生成されます。
「Java Filters」では、「IDM Object Filters」よりはるかに詳細なフィルタリングが提供されます。Java 計測では、かなりのオーバーヘッドが実行時間に追加され、それによってプロファイリング結果が大幅に歪曲される可能性があります。Identity Manager オブジェクトはコンパイルされるのではなく解釈されるので、計測のオーバーヘッドは無視できるほどの大きさです。したがって、ワークフロー A を除外してワークフロー B を含めるなどには、基本的に理由がありません。
Miscellaneous 「Miscellaneous」タブには次のオプションがあります。
- Prune snapshot nodes where execution time is 0:
- Automatically Open Browser Upon Profiler Start:
- Include Java Sources in Snapshot:
この場合、Identity Manager のソースを含めるとスナップショットがきわめて大きくなるので、それは望ましくありません。詳細は、「プロファイラがソースを見つけて管理するしくみ」を参照してください。
「IDM Profiler」ビューの操作
「IDM Profiler」ビューは次の領域で構成されています。
「Current Project」領域 「Current Project」領域は、ユーザーの現在のプロジェクトを一覧表示するドロップダウンメニューで構成されています。このメニューを使用して、プロファイルを作成するプロジェクトを選択します。
「Controls」領域 「Controls」領域には、次の表で説明する 4 つのアイコンがあります。
アイコン
目的
![]()
Start Identity Manager Profiler
プロファイラを起動し、「Profiler Options」ダイアログを開きます。
![]()
Stop Identity Manager Profiler
プロファイラを停止します。
![]()
Reset Collected Results
この時点までに収集されたプロファイリング結果をすべてリセットします。
![]()
Modify Profiling
「Profiler Options」ダイアログを再度開き、現在のプロファイリング結果を修正するために設定を変更できるようにします。
「Status」領域 「Status」領域は、ホストに接続しているかどうかを報告し、プロファイラの起動時、実行中、および停止時にはステータス情報を表示します。
「Profiling Results」領域 「Profiling Results」領域には、次の表で説明する 2 つのアイコンがあります。
アイコン
目的
Start Identity Manager Profiler
プロファイラを起動し、「Profiler Options」ダイアログを開きます。
![]()
Reset Collected Results
この時点までに収集されたプロファイリング結果をすべてリセットします。
「Saved Snapshot」領域 「Saved Snapshot」領域には、保存されているスナップショットの一覧が表示されます。
注
スナップショットを保存する手順については、「スナップショットの保存」を参照してください。
また、次のボタンを使用して、これらのスナップショットを管理することもできます。
「スナップショットビュー」の操作
スナップショットを開くと、Identity Manager IDE の右上にある「スナップショットビュー」ウィンドウに結果が表示されます。
スナップショットにはいくつかのデータビューがあり、これらについて次の節で説明します。
「Call Tree」ビュー 「Call Tree」ビューは、システム全体での呼び出し時間と呼び出し回数を表示するツリーテーブルで構成されています。
このツリーテーブルには、次の 3 つの列があります。
トップレベルのノードは次のいずれかです。
たとえば、idm/login.jsp という URL を表示した場合は、idm/login.jsp に対応するトップレベルエントリが表示されます。このエントリに関して、「Time」列に表示されるデータはその要求の合計時間を表します。「Invocations」列に表示されるデータは、そのページに対する呼び出しの合計回数を表します。次に、そのデータをさらに詳細に調べて、どの呼び出しに時間がかかったかを確認できます。
注
「Call Tree」には「Self Time」ノードもあります。「Self Time」の値は、そのノード自体で消費された時間を表します。詳細は、「セルフタイム統計」を参照してください。
「Hotspots」ビュー 「Hotspots」ビューでは、親にかかわらず集計された呼び出し時間が、フラット化されたノードリストに表示されます。
このビューには、次の列があります。
「Back Traces」ビュー 「Back Traces」ビューでは、各ノードが呼び出されたすべての呼び出しチェーンが、逆転した呼び出しスタックに表示されます。
これらの統計を使用すると、そのノードから特定の呼び出しチェーンを削除した場合に、どれだけの時間が節約されるかがわかります。
「Back Traces」ビューにアクセスするには、ほかのスナップショットビューのいずれかでノード (「ルートノード」と呼ばれる) を右クリックし、ポップアップメニューから「Show Back Traces」を選択します。
「Callees」ビュー 「Callees」ビューでは、親チェーンにかかわらず集められた、ノード (「ルートノード」と呼ばれる) の呼び出しツリーが表示されます。
これらの統計は、問題のある領域がマスター呼び出しツリー全体のさまざまな部分から呼び出されている場合に、そのノードの全体的なプロファイルを確認するのに役立ちます。
「Callees」ビューにアクセスするには、ほかのスナップショットビューのいずれかでノード (「ルートノード」と呼ばれる) を右クリックし、ポップアップメニューから「Show Callees」を選択します。
ポップアップメニューオプションの使用
「Call Tree」ビューまたは「Hotspots」ビューで任意のノードを右クリックすると、次の表に示すオプションがポップアップメニューに表示されます。
メニューオプション
説明
GoTo Source
Java メソッド、ワークフロー、フォーム、規則、または XPRESS に対応するノードの XML ソースを表示する場合は、このオプションを選択します。このビューの詳細については、「プロファイラがソースを見つけて管理するしくみ」を参照してください。
Show Back Traces
「Back Traces」ビューにアクセスする場合は、このオプションを選択します。このビューの詳細については、「「Back Traces」ビュー」を参照してください。
Show Callees
「Callees」ビューにアクセスする場合は、このオプションを選択します。このビューの詳細については、「「Callees」ビュー」を参照してください。
Find In Hotspots
「Hotspots」ビューでノードを検索する場合は、このオプションを選択します。このビューの詳細については、「「Hotspots」ビュー」を参照してください。
オプションを表示 > ソート >
このオプションには次のいずれかを選択します。
オプションを表示 > 表示項目を変更
Call Tree または Hotspots のリストに表示される列を変更する場合は、このオプションを選択します。
「表示項目を変更」ダイアログが表示されたら、次のオプションを 1 つ以上選択できます。
スナップショットの検索
「スナップショットビュー」ウィンドウの上部にある「検索」アイコン
を使用すると、「Call Tree」ビューまたは「Hotspots」ツリーからノードを名前で検索できます。
あるいは、「Call Tree」ビューまたは「Hotspots」ビューで任意のノードを右クリックし、ポップアップメニューからそれぞれ「Find in Call Tree」または「Find in Hotspots」を選択すると、ノードを検索できます。
スナップショットの保存
プロファイラには、スナップショットを保存するためのオプションがいくつか用意されています。これらのオプションについては、次の表を参照してください。
アイコン
目的
「Save the Snapshot in the Project」アイコン (「スナップショットビュー」ウィンドウの上部にある)
プロジェクトの nbproject/private/idm-profiler ディレクトリにスナップショットを保存します。プロジェクトに保存されているスナップショットは、「Profiler」ビューの「Saved Snapshot」セクションに一覧表示されます。
![]()
「Save the Snapshot Externally」アイコン (「スナップショットビュー」ウィンドウの上部にある)
外部の任意の場所にスナップショットを保存します。
![]()
「Save As」ボタン (「Saved Snapshot」領域にある)
外部の任意の場所にスナップショットを保存します。
チュートリアル: パフォーマンスの問題のトラブルシューティング
Identity Manager ではチュートリアル (profiler-tutorial.zip) が提供されており、プロファイラを使用してフォーム、Java、規則、ワークフロー、および XPRESS のトラブルシューティングを行う方法の学習に利用できます。
手順 1: Identity Manager プロジェクトの作成
次の手順に従って Identity Manager プロジェクトを作成します。
- 「ファイル」>「新規プロジェクト」の順に選択します。
- 新規プロジェクトウィザードが表示されたら、次のように設定し、「次へ」をクリックします。
- 「Name and Location」パネルで次のフィールドに入力し、「次へ」をクリックします。
- 「Identity Manager WAR File Location」パネルが表示されたら、Identity Manager 8.0 war ファイルの場所を入力します。通常、このファイルを解凍すると、同じディレクトリに idm.war ファイルが作成されます。
- 「次へ」をクリックして「Repository Setup」パネルに進みます。
このパネルではデフォルト設定を変更する必要はないので、そのまま「完了」をクリックします。Identity Manager IDE の出力ウィンドウに「BUILD SUCCESSFUL」というメッセージが表示されたら、プロファイラのチュートリアルファイルを抽出できます。手順については、「手順 2: プロファイラチュートリアルの解凍」を参照してください。
手順 2: プロファイラチュートリアルの解凍
profiler-tutorial.zip をプロジェクトルートに解凍します。抽出されるファイルには次のものがあります。
<project root>/custom/WEB-INF/config/ProfilerTutorial1.xml
<project root>/custom/WEB-INF/config/ProfilerTutorial2.xml
<project root>/src/org/example/ProfilerTutorialExample.java
<project root>/PROFILER_TUTORIAL_README.txt
これで、プロファイラを起動する準備ができました。
手順 3: プロファイラの起動
プロファイラを起動するには、次の手順を使用します。
- 「開始する前に」に記載されている手順を使用して、サーバーおよび Netbeans JVM のメモリーを増設します。
- 「概要」に記載されているいずれかの方法を使用して、プロファイラを起動します。
- 「Profiler Options」ダイアログが表示されたら、プロファイリングオプションを指定できます。
- 「手順 4: プロファイラオプションの設定」に進みます。
手順 4: プロファイラオプションの設定
注
すべての異なるプロファイラオプションの詳細については、「プロファイラオプションの指定」を参照してください。
このチュートリアル用には、次のプロファイラオプションを指定します。
- 「Mode」タブで「Java and IDM Objects」を選択して、フォーム、Java、規則、ワークフロー、および XPRESS オブジェクトのプロファイルを作成することを指定します。
- 「Java Filters」タブを選択します。
次の手順を使用して、カスタム Java クラス (ここでは org.example.ProfilerTutorialExample) を除くすべての Identity Manager Java クラスを無効にします。
- 「了解」をクリックしてプロファイラを実行します。
処理が完了すると、ログインを求めるプロンプトが表示されます。
- パスワード configurator を入力し、「Remember Password」ボックスを選択してから、「了解」をクリックして続行します。
- Identity Manager ウィンドウが表示されたらログインします。
注
通常は、再度 configurator としてログインするのではなく、別のユーザーで Identity Manager にログインするようにしてください。Identity Manager セッションプールで使用できるのは 1 ユーザーにつき 1 つのエントリだけですが、すでに Configurator としてプロファイラにログインしています。複数のエントリを使用すると、セッションプールの表示が壊れ、パフォーマンスの問題をより詳細に調査するためのプロファイリング結果が歪曲される可能性があります。
ただし、この単純な例では、セッションプールは重要でないので、configurator/configurator としてログインしてかまいません。
- Identity Manager で、「サーバータスク」>「タスクの実行」を選択し、ProfilerTutorialWorkflow1 をクリックします。
チュートリアルが応答するまでに少し時間がかかることがあります。
- この時点でスナップショットを作成することもできますが、ここでは結果をリセットし、プロファイラを実行し、プロファイラを再度実行してから、スナップショットを作成します。
注
スナップショットを作成する前に、すべてのキャッシュの準備が完了したこと、すべての JSP がコンパイルされていることなどを確実にするために、プロファイラを数回実行することが最良の方法です。
プロファイラを数回実行することで、実際のパフォーマンスの問題に焦点を当てることができます。この方法が推奨されないのは、キャッシュ自体の生成に問題がある場合だけです。
- Identity Manager IDE の「IDM Profiler」ビューに戻ります。「Profiling Results」セクション (または「Controls」セクション) の「Reset Collected Results」アイコン
をクリックして、この時点までに収集された結果をすべてリセットします。
- Identity Manager で、「サーバータスク」>「タスクの実行」を再度選択し、ProfilerTutorialWorkflow1 をクリックします。
- 処理ダイヤグラムが表示されたら、Identity Manager IDE に戻り、「Profiling Results」セクションの「Take Snapshot」をクリックします。
- Identity Manager IDE でユーザーのスナップショットがダウンロードされ、結果がウィンドウの右側に表示されます。
この領域が「Call Tree」ビューです。呼び出しツリーの最上部に /idm/task/taskLaunch.jsp が表示され、「Time」列に時間が表示されます。その時間は、要求全体に 6 秒強かかったことを示しています。
- /idm/task/taskLaunch.jsp ノードを展開すると、ProfilerTutorialWorkflow1 に 6 秒かかったことがわかります。
- ProfilerTutorialWorkflow1 ノードを展開します。activity2 に 4 秒、activity1 に 2 秒かかっています。
- activity2 を展開します。
action1 に 2 秒、action2 に 2 秒かかっています。
- action1 を展開すると、<invoke> にも 2 秒かかったことがわかります。
- <invoke> をダブルクリックすると、ProfilerTutorialWorkflow1.xml が開き、次の行が強調表示されます。
<invoke name='example' class='org.example.ProfilerTutorialExample'/>
ProfilerTutorialExample メソッドの呼び出しに 2 秒かかったことがわかります。
注
実際には、プロジェクト内のソースではなく、スナップショットに取り込まれた XML ソースを参照しています。スナップショットには必要なものがすべて含まれています。詳細は、「プロファイラがソースを見つけて管理するしくみ」を参照してください。
- 「CPU:<date><time>」タブを選択して、スナップショットに戻ります。
- <invoke> ノードを展開すると、プロファイラが ProfilerTutorialExample.example() Java メソッドで 2 秒消費したことがわかります。
- メソッド名をダブルクリックすると、ProfilerTutorialExample.java ソースが開き、次の行が強調表示されます。
Thread.sleep(2000);
問題はここにあります。このメソッドには 2 秒のスレッドスリープが含まれています。
- Call Tree に戻ると、2 秒のパスはすべてこのメソッドにつながっていることがわかります。3 つのパスがあり、合計 6 秒になっています。
- 「Call Tree」領域の下部にある「Hotspots」タブを選択して、「Hotspots」ビューを開きます。ProfilerTutorialExample.example() の合計セルフタイムは 6 秒になっています。
Hotspots の詳細については、「「Hotspots」ビュー」を参照してください。
- ProfilerTutorialExample.example() を右クリックし、ポップアップメニューから「Show Back Traces」を選択します。
領域の下部に、新しい「Back Traces」タブが表示されます。
- 「Back Traces」タブで ProfilerTutorialExample.example() ノードを展開すると、このメソッドが 3 箇所から呼び出されたことと、各箇所からの呼び出しに 2 秒かかったことがわかります。
Back Traces の詳細については、「「Back Traces」ビュー」を参照してください。
- 「Save the Snapshot in the Project」アイコン
をクリックして、スナップショットを保存して閉じます。
「IDM Profiler」タブの「Saved Snapshot」セクションを確認すると、このスナップショットが表示されるはずです。場合によっては、スクロールダウンする必要があります。
- 保存したスナップショットを選択し、「Open」をクリックして再度開きます。
- スナップショットをふたたび閉じます。
ワークフロー ManualAction に対するプロファイラの使用
このチュートリアルの次の部分では、ワークフロー ManualAction のプロファイルを作成する方法を示します。
- Identity Manager で、「サーバータスク」>「タスクの実行」を選択し、ProfilerTutorialWorkflow2 をクリックします。
しばらくすると、空のフォームが表示されます。
- 「保存」をクリックすると、処理ダイヤグラムが表示されます。
- 「サーバータスク」>「タスクの実行」を再度選択します。
- Identity Manager IDE の「IDM Profiler」ビューに戻り、「Profiling Results」セクションの「Reset Collected Results」アイコンをクリックします。
- 次に、Identity Manager で ProfilerTutorialWorkflow2 をクリックします。
- 空のフォームが再度表示されたら、「保存」をクリックします。
- 「IDM Profiler」ビューで、「Take Snapshot」をクリックします。
数秒後、「Call Tree」領域にスナップショットが表示されます。/idm/task/workItemEdit.jsp に 6 秒強かかったことがわかります。この結果は、ワークフローでの手動操作に対応します。
- /idm/task/workItemEdit.jsp ノードを展開すると、ManualAction フォーム内のすべての Derivations の実行に合計 6 秒かかったことがわかります。
- Derivation、displayNameForm、variables.dummy、および <block> ノードを展開します。
<block> に 6 秒かかったことと、その時間のうちで ProfilerTutorialExample.example() メソッドの 3 回の呼び出しにそれぞれ 2 秒かかったことがわかります。
- <block> をダブルクリックすると、ソースを表示できます。
Identity Manager IDE よくある質問 (FAQ)
この FAQ では、Identity Manager Integrated Development Environment (Identity Manager IDE) の使用に関してよくある質問に回答します。この情報は、次のカテゴリに分類されています。
NetBeans の使用
質問: どのバージョンの Netbeans を使用すべきですか。
回答: 使用している Netbeans プラグインのバージョン向けに提供されている、Identity Manager 製品のマニュアルに記載されている Netbeans のバージョンを使用してください。
質問: Netbeans プラグインは動作していましたが、何らかの操作を行なったため、動作しなくなりました。この問題の原因は何でしょうか。
回答: この問題は通常、.netbeans ディレクトリのファイルが壊れているために発生します。一般に、.netbeans ディレクトリを削除し、NetBeans プラグインを再インストールすることで問題は解決します。.netbeans ディレクトリを削除すると、NetBeans プラグインが実質的にアンインストールされます。ユーザー設定はすべて失われますが、プロジェクトの内容は保持されます。
手順は次のとおりです。
プロジェクトの操作
質問: プロジェクトのビルドと実行に非常に長い時間がかかり、Identity Manager IDE が多数のファイルをコピーしているようです。この問題の原因は何でしょうか。
回答: この問題は、次の理由で発生する可能性があります。
Clean Project または Clean And Build Project を使用すると、Identity Manager IDE は image ディレクトリ全体を削除しますが、このディレクトリには数千のファイルが入っています。次にビルドを行うとき、Identity Manager IDE はこれらすべてのファイルを idm-staging からコピーしなければならなくなります。
Identity Manager IDE を効率的に使用するには、どのような場合に Clean コマンドを使用するべきかを理解する必要があります。詳細は、Identity Manager IDE README.txt ファイルの「When to Use Clean」を参照してください。
質問: Identity Manager プロジェクトを作成しました。どのファイルをソース管理にチェックインすべきでしょうか。
回答: 詳細は、Identity Manager IDE README.txt の「CVS Best Practices」を参照してください。
質問: CVS でのプロジェクト管理の最適な使用方法はどのようなものですか。
回答: 詳細は、Identity Manager IDE README.txt の「CVS Best Practices」の節を参照してください。
質問: オブジェクトがリポジトリにインポートされるのはどのような場合ですか。
回答: 詳細は、「リポジトリの操作」を参照してください。
質問: プロジェクトに新しい JAR を追加する方法を教えてください。
回答: Identity Manager IDE README.txt の「How to add a new JAR dependency」の節を参照してください。
リポジトリの操作
質問: サンドボックスリポジトリとしてどのリポジトリを使用すべきでしょうか。
回答: 組み込みリポジトリをサンドボックスとして使用してください。特に、Identity Manager 7.1 以降を使用する場合は HsSQL リポジトリが利用可能ですが、組み込みリポジトリを使用してください。組み込みリポジトリを使用しないと、機能が失われます。
詳細は、Identity Manager IDE README.txt の「Working with the Repository」の節を参照してください。
質問: オブジェクトが自動的にインポートされるのはどのような場合ですか。
回答: オブジェクトを自動的にインポートするように Identity Manager IDE を設定する必要があります。
手順は次のとおりです。
質問: オブジェクトをアップロードするにはどのような方法がもっとも効果的ですか。
回答: 次の方法のいずれかを使用して、変更されたオブジェクトをアップロードします。
どちらの方法でも、オブジェクトはサーバーに直接アップロードされるため、キャッシュ待ち時間の問題がなく、「プロジェクトを実行」や「プロジェクトをデバッグ」を使用するよりはるかに高速です。「Upload Object」機能は、使用しているリポジトリにかかわらず利用できます。
Identity Manager IDE デバッガの使用
質問: Identity Manager IDE デバッガの反応が低速です。この問題の原因は何でしょうか。
回答: デバッガのパフォーマンスを向上させるには、次のようにしてください。
質問: デバッガでブレークポイントを設定できません。この問題の原因は何でしょうか。
回答: 次の状況では、ブレークポイントを設定できないことがあります。
質問: デバッガでブレークポイントを設定しましたが、デバッガがブレークポイントで停止しません。この問題の原因は何でしょうか。
回答: 次の 2 点を確認してください。
規則の操作
質問: Netbeans で規則を開発する際に、規則ライブラリにデザインモードを使用できないのはなぜですか。
A: デザインモードの機能は、「Projects」ビューのエクスプローラツリーから使用できます。次の手順を使用します。
Identity Manager Tuning, Troubleshooting, and Error Messagesここでは、『Sun Identity Manager Tuning, Troubleshooting, and Error Messages』に追加すべき情報とドキュメントの修正事項を記載しています。
- 一部のタスクはアダプタからタスクパッケージに移動しています。次のいずれかのタスクの追跡を有効にしている場合、またはこれらのパッケージを参照するカスタマイズされたタスク定義がある場合は、これらのパスを更新してください。
古いパッケージ名
新しいパッケージ名
com.waveset.adapter.ADSyncFailoverTask
com.waveset.task.ADSyncFailoverTask
com.waveset.adapter.ADSyncRecoveryCollectorTask
com.waveset.task.ADSyncRecoveryCollectorTask
com.waveset.adapter.SARunner
com.waveset.task.SARunner
com.waveset.adapter.SourceAdapterTask
com.waveset.task.SourceAdapterTask
- 以前に「Troubleshooting Identity Manager IDE」の節に示されていた「Unable to Delete Errors」のトラブルシューティング情報は適用できなくなり、マニュアルから削除されました。現在は、次のプロジェクト操作のいずれかを実行するたびに、NetBeans の組み込みアプリケーションサーバーによって自動的にシャットダウンされます (ID-16851)。
- 「Debugging PasswordSync」の節は、『Identity Manager 管理ガイド』の「PasswordSync」の章から、『Identity Manager Tuning, Troubleshooting, and Error Messages』の「Tracing and Troubleshooting Identity Manager」の章に移動されました。(ID-17340)
ローカリゼーションの範囲Identity Manager では従来、リソースオブジェクトおよび関数をローカライズしていません。この主な理由は、リソースオブジェクトや関数の大半が Identity Manager の初期化の間に (init.xml を通じて) ロードされるサンプルであることと、オブジェクトタイプの属性は、カスタマイズのレベルに応じて実際の顧客の配備によってさまざまである可能性があることです。英語で表示される可能性がある要素のリストを次に示します (ID-16349)。
オンラインヘルプここでは、オンラインヘルプの記述の修正事項を記載しています。