カスタマイズ!FIM 管理ポータルを俺仕様に : タブやらコントロールやらを消したい編

皆さまごきげんよう。大変御無沙汰しておりました。ういこうです。
今日は、「FIM 管理ポータルを俺色に染めたい」…そんな野望を持つあなたに ILM 一家が送る、「タブの消し方」と、「俺色に染めるための約束」をお送りします。コントロールを追加するのではなくて、消すって言うのは意外に情報が無いのではないでしょうか。お役にたてば幸いです。ところで俺色って良く耳にしますが、具体的にはどういう色なんでしょうか。情報をお持ちの方はひっそりお知らせください。よろしくお願いします。

それでは本日も行ってみましょう。

FIM 管理ポータルって何? ⇒ ユーザー / 配布グループ / セキュリティグループ / ワークフローの管理や、同期ルール、管理ポリシーを管理可能

最近、ID 統合管理系について Forefront Identity Manager 2010 (以下 FIM2010) での提案が増えているという風のうわさを多数耳にし始めております。実際に組んでみて、触ってみた方もいらっしゃるかと思いますが、以前より微妙にビギナーの心の敷居をガンガン上げてくる同期エンジン(ILM/MIIS 時代は "Indentity Manager"、FIM は "FIM Synchronization Service") ではなくて、見た目が優しい FIM 管理ポータルというものが FIM 以降搭載されております。
これは本当に使い手にとってはわかりやすく、直観的なインターフェースでグループの管理、ユーザの管理などが出来るものですので、巷で人気が出始めているのもうなずけます。

図 : FIM 管理ポータル
※ ちなみに掲示板のところと、一番上のところはカスタマイズしていますので、デフォルトはちょっと違います。

image

「FIM 管理ポータルよ!俺で変われ」 ⇒ 簡単なカスタマイズには限界がある。Supported / Unsupported Scenario を理解する。
さて、あの青本の著者中村さんも「Windows Server 使い倒し塾」で御紹介されていますが、このポータル、自分色にある程度カスタマイズすることができます。
しかし、これまでカスタマイズにチャレンジされた方の中には、案外限界があるなと実感された方も少なからずいらっしゃると思います。
カスタマイズして俺色に染めるにも限度があるのです。ほんのちょっと見た目を変えることが出来る程度、それも本当に少しと思って頂いたほうが実際の状況にマッチしています。

まず、大前提として、以下の “Supported Scenarios” に載っていない方法はサポートされていないことに注意が必要です。

Understanding Configuring and Customizing the FIM Portal
https://technet.microsoft.com/en-us/library/ff393653(WS.10).aspx

以下上記ドキュメントの引用となります。

<---- 引用ここから
Unsupported scenarios:
・Creation and deletion of a new Portal Configuration
・Deletion of out-of-box Portal Configuration, Search Scope, Navigation Bar, Homepage resources, and RCDC resources. After these resources are deleted, they cannot be recovered.
・Use of external links in Navigation Bar resources and Search Scopes
・Changing controls that have code-behind in out-of-box RCDCs
・Any other dialects and syntaxes for the Search Scope Search Filter, other than the FIM XPath dialect
・Modifying and deleting existing controls that call for code-behinds in configuration data of an existing RCDC
・Setting the default value on any RCDC controls
・Adding a custom site in the FIM SharePoint site collection
・Localizing the text and labels that are not covered in portal UI configuration resources. This includes the title of a FIM page, such as All Distribution Groups.
<---- 引用ここまで

例を上げますと、「FIM の既定のリソースは削除してはいけない」などがあります。

実は、FIM ポータルは、実際には ASP.NET (画面 + C#/VB.NET によるプログラム コード) で構成されています。このポータルの設定は、実際はユーザ、管理者の目に見えない ASP.NET の画面とは分離されたソース コードと密接に関係しています。そのため、ページを読み込む際、XML のソースから例えばあるコントロールのセクションをごっそり消すとします。すると、そのコントロールと関連する裏で動いているコード ("コードビハインド" (code-behind) ということもあります) とマッチせず、問題を生じることがあります。表示の時点で問題が発生することもあれば、どのようなアクションを度のコントロールに対して取ったかに依存しますが、実行時に問題になる可能性もあります。

図 : エラー例
"Configration and code behind mismatch" と表示されている状況がお分かりになるでしょうか。日本語リソースを導入している場合、"構成と分離コードが一致しません" になります。これは、ASP.NET のコードビハインド部分と、画面構成に乖離が生じている状況を表します。カスタマイズ対象などによっては必ずしもこうした出方にはなりませんが、上述の通り削除動作は推奨されません

image

では、どういったことならやってもいいのでしょうか。

こちらにありますように、基本的にコントロールなどについて削除などはサポートされておりませんが、代わりに同ドキュメント中の "Supported Scinario" にてご案内しておりますように表示を非表示にして頂くことで対応することができます。

<---- 引用ここから
Supported scenarios:
・Basic viewing and editing of the out-of-box Portal Configuration, Search Scope, Homepage, Navigation Bar, and RCDC resources
・Basic viewing, creation, editing, and deletion of all new custom Homepage resources, new custom Search Scope Resources, new custom Navigation Bar resources, and new custom RCDCs
・Use of external links in Homepage resources
・Search Scope Search Filters that support the FIM XML Path Language (XPath)
・Adding new RCDC sections and controls that are based on the RCDC configuration data for new and existing resource types
・Marking existing controls, which calls for code-behinds in existing RCDC configuration data, as invisible
・Hiding new and existing tabs in new and existing RCDC configuration data by removing the read permissions to all attributes on that tab
・Localizing the text and labels in the Search Scope, Homepage, Navigation Bar, and RCDC resources by means of the supported methods that are described in this document
・Creation of new Help documentation that is linked in RCDC pages
・Modifying existing default Help documentation
・Adding a new custom SharePoint theme that derives from a FIM Sharepoint theme to customize the FIM Portal
・Creation of a SharePoint site that coexists on the same SharePoint server as FIM 2010
<---- 引用ここまで

具体的にどうすればいいか。上述の Security Group のカスタマイズを例にとってみましょう。

例えば [セキュリティ グループの作成] 画面の [所有者] タブを削除する場合、以下のようにコントロールにVisible プロパティをつけてあげることで「非表示」にすることができます。

my:Visible="false"

変更前の既定値
<my:Grouping my:Name="GroupingOwners" my:Caption="%SYMBOL_OwnersTabCaption_END%">
変更後の値
<my:Grouping my:Name="GroupingOwners" my:Caption="%SYMBOL_OwnersTabCaption_END%" my:Visible="false" >

image

上記を読み込ませると、ほら、タブが消えました。一方、エラーはありません。

image

ちなみに、上記の処理を施した XML ファイルは下記にありますので、興味がある方は使ってみてください。

https://blogs.technet.com/cfs-filesystemfile.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-67-59/5076.test.xml

おまけ : XML のセットの仕方
具体的にどう XML なんて持ってきて入れ込むのよ!と判りづらいと思うあなた。以下の手順をお試しください。

まず、FIM 管理ポータルの “Administration” - “Resource Control Display Configrations” をクリックします。日本語だと多分「管理」-「リソースコントロールの表示構成」画面です。

image

1. キーワード “Group” で検索すると、以下の三つが出てくるので、”Configration for Group Creation” をクリックします。日本語だと多分 “グループの作成の構成” ではないかと。

image 

2. まず、現在の構成を何かがあった時のために保存します。”Configration Data” - ”Export configration” をクリックします。日本語だと多分「構成データ」 - 「構成のエクスポート」でしょう。

image

3. ファイルのダウンロードダイアログが出てきて、既定名 “configuration.xml” の保存場所を聞かれます。どこの構成も全部同じ configration.xml なので、適当に group_creation_config.xml とかつけておくと後で泣きたくならないと思います。(私は泣きました)

image

4. 保存したら心置きなく入れてあげます。上記リンクより、xml をコピーして保存したものを用意するか、あるいは上記 3. で保存した xml のプロパティを変えてみたものでもよいでしょう。”Basic” タブの、”Configuration Data” の横、[参照…] ボタンを押します。

(既定の XML を改造する場合)

変更前の既定値
<my:Grouping my:Name="GroupingOwners" my:Caption="%SYMBOL_OwnersTabCaption_END%">
変更後の値
<my:Grouping my:Name="GroupingOwners" my:Caption="%SYMBOL_OwnersTabCaption_END%" my:Visible="false" >

image

3. 対象の XML を選択するおなじみのダイアログが開くので、用意した XML を指定します。

image

4. [アップロードするファイルの選択] ダイアログに xml を指定し、[開く(O)] ボタンを押すと、勝手に読み込まれます。あとは処理を進め、Submit (日本語だと「完了」かな) ボタンを押せばよいです。

image

5. 念のため IISReset でもかけてみます。FIM のマシン上で、管理者権限に昇格させたコマンド プロンプト上で

iisreset

と入力しますと、IIS が再起動されます。これでリソースが完全にアップデートされたはずです。IISreset しなくても反映されているならばいらないと思います。

6. ポータルにログインし、セキュリティ グループを新規で作ろうとしてみてください。所有者タブが消えているはずです。

image

おまけ 2 : ダイアログの具体的な URL を知る方法
ぽこぽこ開くダイアログ。さてあなたの本当のロケーションはどこ?と思うことがありますよね。
URL を知りたい場合、ダイアログの右情報のクリップボードを表すアイコンをクリックします。マウスカーソルを当てると、"Copy URL to the Clipboard" とでるのですぐに判ると思います。クリックすると、"The URL has been copied to the clipboard" とダイアログが表示されます。例えばこんな風な URL になります。ほら、拡張子が aspx … ASP.net なんだって判りますね。

https://jpdsfim-dc-fim/identitymanagement/aspx/customized/EditCustomizedObject.aspx?id=ef0a04a3-0fce-4421-80ad-63f472e49b8f&type=ObjectVisualizationConfiguration&display=Configuration%20for%20Binding%20Description&_p=1

例えば適当なダイアログを開いて、ここをクリック!

image

コピー出来るとできました!と教えてくれます。

image

notepad に張り付けてみると、ほら、URL が。

image

それでは、また。

ういこう@”サポーター票” を “ザボーガー票” に空眼したです