2009年9月24日木曜日

[FIM2010]そろそろRC1?

スケジュール上は2009年Q3にRC1という話でしたが実際のところはどうなんでしょうか。

#一部のblogによると2009/09/30に公開ということです!(2009/09/28追記)

先日(9/14@ベルリン)のTEC2009 EuropeでRC1関連のセッションもあったようなので、いよいよという感じがしています。(実際はTEC2009に間に合わせたかったんでしょうが・・・)


↓こんな感じのセッションがあったみたいです。これをみるとそろそろリリースっぽいです。

What's New in FIM 2010 RC1
Speakers: Mark Wahl
FIM 2010 RC1 should be shipping about the time of TEC 2009 EMEA, and it includes many improvements and new features. Find out about what’s new in RC1 including architectural changes, performance improvements, and simplified administration and operations. We will also discuss how to migrate from FIM 2010 RC0 to RC1, and how to move from a test environment to production.


なお、同じくTEC2009でFIM関連セッションを担当しているOxford Computer GroupのBlogにRC0からRC1での変更点についてまとめられていたので紹介しておきます。

The changes from RC0 are in these areas:
■Manageability and deployability,
■Usability,
■Performance and scalability, and
■(of course) bug fixes.

There are some little things:
■Object Types are now Resource Types
■OVCs are now RCDCs (resource control display configurations)

There are some bigger things:
■An MPR explorer ? you can list (and access) MPRs associated with a particular requestor, or target set, or workflow etc.
■Powershell commands to export, merge, compare and apply configurations (MPRs, schema details, sets etc.) ? so as to facilitate rollout from test to production etc.
■New health events available in the SCOM management pack
■Authentication of a user in the portal (e.g. for self-service) is now done by objectSID and not by sAMAccountName
■Patches after RC1 will be delivered automagically by Microsoft Update
■There is a new request validation activity which can be used to stop users being able to removed anyone but themselves from groups (previously Fred could remove Jane from a group ? assuming Fred basically had this kind of access)
■During password reset, you can insist that users authenticate themselves (to stop people sneaking up to a computer and changing a password while the owner is getting a coffee)
■All mail messages are customizable
■You can disable MPRs
■You can disable declarative provisioning

There were some rather more technical things:
■You can control how many simultaneous workflows can run (in order to tune performance)
■XPath has been changed so that Contains() now works like SQL Server Full text Search ? while some functions have been removed (like BetweenTime, Alltime) ? see next point
■The suggested way that you find information about who had access to what (historically) is now that you work it out using the request history ? more details are provided when examining Requests in order to aid this, and the data on which functions like BetweenTime depended is no long stored
■There are some updates to MAs (newer versions of connected directories supported)


MPRとxSRやAW関連の管理がややこしくなりがちなのでMPR explorerで簡単にできるようになったりするといいなぁと思ったりしてます。

2009年9月17日木曜日

[ILM2007→FIM2010]まずは、単純に設定を移行することができるかどうか?

#大前提ですが、この操作を行うことでFIM2010の他の機能へ影響が出ているのかどうかについては現段階では未検証です。この環境をベースにFIM2010の本来の機能がどう動くのかについては別途検証を行いたいと思います。

CSやMVの中身は今回は考えず、設定情報が移行できるかを検証します。
ポイントは「MAやDLLがそのまま使えるか?」です。


下記のような環境を作って検証を行います。

ILM2007とFIM2010は同一ドメインに参加している別の新規サーバで構築します(ILM2007は32bit、FI2010は64bitのOSのみサポートするため)













同期対象としては人事情報CSVとActiveDirectoryで、一方通行の単純なものを作ります。











■サーバ設定のImport/Exportを試してみる
まず試したのは、ILM2007で設定をExportし、FIM2010でその設定をImportする、という手順ですが、結果としてImport処理時に失敗してしまいます。

通常通りILM2007から設定をExport。












その設定ファイル(XML)をFIM2010へImportします。












見事にエラーで失敗します。















・ログ抜粋
Preparing existing metaverse configuration for update starting...
An error was encountered while trying to update the metaverse configurations.
指定されたオブジェクト エクスポータが見つかりませんでした。 (HRESULT からの例外: 0x80070776)
Error encountered trying to prepare the existing metaverse configuration.
Server configuration import FAILED.



また、ログの中を見るとエラー以外にMetaverseのスキーマを変更した、というようなログが出ているが気になるので念のためSchemaを見てみるが削除はされていなかったようなので一安心。

・ログ抜粋
Metaverse schema compare starting...
Attribute deleted : 'accountName'.
Attribute deleted : 'ad_UserCannotChangePassword'.
Attribute deleted : 'address'.
<中略>
Attribute deleted : 'type'.
ObjectType deleted : 'detectedRuleEntry'.
ObjectType deleted : 'expectedRuleEntry'.
ObjectType deleted : 'function'.
ObjectType deleted : 'synchronizationRule'.
The metaverse schema has been changed.




■MAを個別にImport/Exportしてみる
次に試したのは、MAを個別でExport→Importする手順です。
こちらはうまく行きました。ただし、MVについてはすべて手動で再設定が必要です。

ILM2007で各MAを個別にExport。














関連する下記のファイルをILM2007サーバからFIM2010サーバへコピー。
・ExportしたMAのXMLファイル
・AD_MAのRulesExtensionのDLLファイル
・MVのRulesExtensionのDLLファイル
・HRのCSVファイル

今度はFIM2010サーバで各MAのImport。
AD_MAの接続パスワード部分だけ再度手入力が必要ですが他は[Next]を次々クリックしてMAをImportします。またこの操作でRunProfileも同時にImportされます。










各種ファイルを適正な場所に配置します。
ファイル配置場所
RulesExtensionのDLLファイルFIM2010インストール先フォルダ\Extensions以下
HRのCSVファイルFIM2010インストール先フォルダ\MAData\HR_MA以下



MetaverseのRulesExtension設定はMAのExport/Importでは移行されないので、手動で再設定が必要となります。















他にもMetaverseの設定(スキーマやObjectDeletionRuleなど)を独自で行っていた場合は手動で再設定が必要です。













■動作確認
ここはILM2007と同じ手順で同期を実行させます。

1.AD_MAのFull Import処理を実行し、コンテナオブジェクトをAD_CS上に作成します。
2.次にHR_CSVのFull Import→Full Synchronization処理を実行し、HR_CS上へのエントリの作成およびAD_CSへのプロビジョニングを実行します。
 →実はここで、事前にADから対象のユーザエントリを削除せずにそのまま実行したのでAD_MAのFull Import処理によりAD_CS上にオブジェクトができてしまっていたので、プロビジョニング時に重複エラーがでました。これはプロビジョニング関数の作りなので、本来はConnectorsを見て重複させないような作りにして回避します。
とりあえず今回はそこまでしていないのでDCからユーザエントリを削除して再実行しました。
3.ADへのExport処理を実行
 →めでたしめでたし















■結論(わかったこと)
・サーバの全体設定をそのままExport/Importでは移行できない
・MA単位で個別に設定をExport/Importすることは可能
・ExtensionのDLLファイルは再コンパイルしなくてもそのまま使える

次回はデータを含めた移行を試してみたいと思います。

2009年9月10日木曜日

ILM2007からFIM2010への移行

なんだか最近色々と忙しくて更新頻度が下がってきています(泣)

さて、延期されてから半年ほどたつFIM2010も延期の際に発表されたスケジュール通りに進んでいればそろそろRC1。海外ではILM2007からの移行のアセスメントサービスが立ち上がったりしつつある様子も見え隠れしています。

私もそろそろ試してみよう、、と思いながら時間が取れない日々を過ごしていますが、ぼちぼち情報の整理から始めていきたいと思います。

「移行」といっても環境、設定、データと考えなければいけない要素は色々とありますので、まずそれぞれについてILM2007とFIM2010の違いをまとめるところから始めていきます。

ざっくり下記の表のような違いが両バージョンの間にはあります。(抜けだらけです。検証しながら埋めていきます

対象 ILM2007 FIM2010 マイグレーション方法
動作環境 OS Windows Server 2003 R2 (32bit) Windows Server 2008 (64bit) 別サーバへの新規インストール
DBMS SQL Server 2005 SP2 (32bit) SQL Server 2008 (64bit) 別サーバへの新規インストール
開発環境 Visual Studio 2005 Visual Studio 2008 新規インストール
Portal - WSS3.0 新規インストール
データ CS/MV,MV SchemaMicrosoftIdentityIntegrationServerデータベース MicrosoftIdentityIntegrationServerデータベース デタッチ→アタッチ?
設定 Rules Extension Visual Studio 2005 Visual Studio 2008 リコンパイル
同期ルール MA MA、OSR Export / Import?新規作成
同期実行 Run Profile Run Profile 再作成?


また、環境によっては色々と不具合が出るような話もあるので注意が必要なようです。(たとえばFIM2010のMetaverseのスキーマにはデフォルトでobjectSidという属性があるのですが、ILM2007の環境でADAMとの同期をとるうえでobjectSIDという属性をMetaverseに拡張してしまった、という環境だとコンフリクトがでたりするそうです)

そのあたりも含め、順番に手をつけていきたいと思います。
(仮想環境に環境を作っていたのですが、クローン元のOSのディスク容量が小さすぎたことに気付かないままDCとDBサーバをつくってしまい心が折れています。。作り直しです。。)

2009年9月1日火曜日

7 Laws of Identity

久しぶりの投稿になってしまいました。

マイクロソフトのアイデンティティ管理に関する基盤となる考え方であるアイデンティティの原則(The Laws of Identity)のポスターが同社のアイデンティティ&アクセスアーキテクトのKim Cameron氏のblogで紹介されています。
改めて見てみると初出が2005年であるにも関わらず錆ついていない内容になっています。(「原則」なのでそんなに簡単に変わってしまうと困りますが)

7 Laws of Identity
http://www.identityblog.com/?p=1065
















Genevaの実装が見えてきて、ようやく同社のアイデンティティ&アクセスのVisionであったIdentity Metasystem構想が現実のものになってきた、ということもあり今改めて基盤となっているこの原則を掲載しなおしたのだと思います。

構成要素現状実装次期実装
"InfoCard" identity selectorCardSpaceWindows Cardspace
("Geneva" Cardspace)
"InfoCard" simple self-issued identity provider
Active Directory identity providerADFSActive Directory Federation Services
("Geneva" Server)
"Indigo"WCFWindows Identity Foundation
("Geneva" Framework)



Identity Metasystemとは簡単に言うと、IdPが発行するセキュリティトークンの種類、RPとの間の受け渡し方法などの技術的な要素をユーザやディベロッパーが意識しなくても利用/開発ができるようにするための考え方(アーキテクチャ)です。
たとえば、IdP(STS)が発行するトークンの種類がSAMLトークンであろうがNTトークンであろうがアプリケーション側は意識をすることなく同じIClaimsIdentityクラスでトークンに含まれるクレーム(属性情報)にアクセスすることができます。

このあたりはカンターラ(Liberty Alliance)がやっている相互運用性の取り組みにもつながる話です。
















ちなみに初出はこれです。↓(2006年1月8日/PDFは2005年5月13日)

The Laws of Identity
(http://www.identityblog.com/?p=352)


以下、概要です。

1. User Control and Consent
Technical identity systems must only reveal information identifying a user with the user’s consent.

ユーザーによる制御と同意
個々のアイデンティティ システムでは、ユーザーの同意がなければ、ユーザーの識別情報を開示することはできない。

2. Minimal Disclosure for a Constrained Use
The solution that discloses the least amount of identifying information and best limits its use is the most stable long-term solution.

制限付きアクセスでの最小限の開示
最も安定し、長期にわたって使用できるソリューションとは、開示するアイデンティティ情報を最小限にし、情報へのアクセスを適切に制限するソリューションである。

3. Justifiable Parties
Digital identity systems must be designed so the disclosure of identifying information is limited to parties having a necessary and justifiable place in a given identity relationship.

正当と認められる当事者
デジタル アイデンティティ システムは、特定の状況において識別情報を必要とし、かつ入手できる正当な権利を持つ当事者のみに対して識別情報を開示するように設計されなければならない。

4. Directed Identity
A universal identity system must support both “omni-directional” identifiers for use by public entities and “unidirectional” identifiers for use by private entities, thus facilitating discovery while preventing unnecessary release of correlation handles.

方向付けられた アイデンティティ
普遍的なアイデンティティ システムは、公共のエンティティが使用する“全方位的”な識別子と、プライベートなエンティティが使用する“特定の方向性”を持った識別子の両方をサポートしなければならない。このようにして、公共性を維持しながら、不要な相互関係までサポートすることを回避すべきである。

5. Pluralism of Operators and Technologies
A universal identity system must channel and enable the inter-working of multiple identity technologies run by multiple identity providers.

複数の運用者/テクノロジの共存
普遍的なアイデンティティ システムは、複数のアイデンティティ プロバイダーによって実行される複数のアイデンティティ テクノロジの相互作用を橋渡しし、有効にしなければならない。

6. Human Integration
The universal identity metasystem must define the human user to be a component of the distributed system integrated through unambiguous human-machine communication mechanisms offering protection against identity attacks.

ユーザーの統合
普遍的なアイデンティティ メタ システムは、利用者たるユーザーを分散システムの 1 つのコンポーネントとして定義しなければならない。ユーザー - マシン間の明確なコミュニケーション メカニズムを策定してユーザーを分散システムに統合し、アイデンティティを保護しなければならない。

7. Consistent Experience Across Contexts
The unifying identity metasystem must guarantee its users a simple, consistent experience while enabling separation of contexts through multiple operators and technologies.

特定のコンテキストに依存しない一貫したエクスペリエンス
アイデンティティの統一的なメタ システムは、運用者やテクノロジごとにコンテキストを分離することを可能にしつつも、シンプルで一貫したエクスペリエンスを確保できるものでなければならない。