2010年4月19日月曜日

[FIM]勝手に翻訳:Active Directory Domain Servicesへのユーザプロビジョニング

Technetフォーラムの中には色々と役に立つコンテンツがあるのですが、その中の一つのFIM Expert Cornerを「勝手に翻訳」シリーズとして翻訳(意訳)して紹介していこうと思います。

今回はとりあえずベータ版の頃にこのblogでも紹介したAD DSへのユーザプロビジョニングの方法で、元ネタはフォーラムモデレータのMarkus Vilcinskasさんがポストしたこの記事です。ご本人に翻訳に関する確認をしたところ、快くOKしてくださったので紹介します。

というわけで早速。

■Actice Directoryドメインサービスへユーザをプロビジョニングするにはどうすればよいですか?

ID管理システムの1つの基本的な要件は、外部システムにリソースをプロビジョニングする機能です。
このガイドではForefront Identity Manager(FIM) 2010からActive Directory Domain Services(AD DS)へのユーザプロビジョニングのプロセスの主要な部分を紹介し、読者のシナリオが期待通りに動くかどうかの確認方法、FIMを使用してActive Directoryのユーザを管理するための提案、そして追加の情報ソースのリストを提示します。

・始める前に
このセクションでは、この文書のスコープについて定義します。
一般に、”How Do I"シリーズのガイドは関連するスタートガイドに記載されているFIMでオブジェクトを同期するプロセスに関する基本的な経験を持っている読者をターゲットにしています。

・想定している読者
このガイドは、既にFIMの同期処理のしくみに基本的な理解があり、この特定のシナリオに関するハンズオンや概念的な情報に興味のあるITプロフェッショナル向けに書かれています。

・前提となる知識
このドキュメントは、読者がFIM2010の実行環境へアクセスが可能で、以下のような簡単な同期シナリオを構築した経験があることを想定しています。
・着信同期の入門
・発信同期の入門
このドキュメント内のコンテンツは、これらの入門を拡張することを範囲としています。

・スコープ
このドキュメントで説明するシナリオは、基本的なラボ環境に対応して簡素化されており、コンセプトとテクノロジに理解を与えることにフォーカスされています。
このドキュメントは、読者がFIMを使用してAD DS内のユーザの管理するソリューションを開発することを支援します。

・必要な時間
この文書の中の手順を完了するには90~120分が必要です。
テスト環境の設定は既に完了しているものとし、テスト環境を設定するのに必要な時間は含まれません。

・サポートが必要な場合
このドキュメントの内容に関する質問があったりフィードバックがある場合や議論したい場合は、FIM TechNetフォーラムに気軽に投稿してください。
※訳注)英語です。

・シナリオの説明
架空の会社であるFabrikamは、FIMを使用して企業のAD DSのユーザアカウントを管理することを計画しています。
このプロセスの一環として、FabrikamはAD DSにユーザをプロビジョニングする必要があります。
最初のテストを開始するためにFabrikamはFIMとAD DSで構成される基本的なラボ環境をインストールしました。
このラボ環境上で、FabrikamはFIMポータル上で手動で作成したユーザを用いてシナリオをテストします。
このシナリオの目的は、あらかじめパスワードが定義された有効なユーザをAD DS上へプロビジョニングすることです。

・シナリオの設計
このガイドを使用するには、3つのコンポーネントが必要です。
1. Active Directoryドメインコントローラ
2. FIM Synchronizationサーバ
3. FIM Portalサーバ

次の図は、必要な環境の概要を示します。












すべてのサーバを1台のサーバ上で実行することが可能です。
 注)
 FIMのセットアップに関する情報はFIMインストレーションガイドを参照してください。

・シナリオコンポーネントの一覧
このガイドのシナリオで使用するコンポーネントは下表のとおりです。

組織単位FIM Objectsユーザをプロビジョニングする先として使用する組織単位
ユーザアカウントADMAAD DSに接続するのに必要な権限を持つActive Directory上のユーザアカウント
FIMMAFIMに接続するのに必要な権限を持つActive Directory上のユーザアカウント
管理エージェントと実行プロファイルFabrikam ADMAAD DSとデータ交換を行うための管理エージェント
Fabrikam FIMMA FIMとデータ交換を行うための管理エージェント
同期ルールAD User Outbound Synchronization Rule AD DSにユーザをプロビジョニングするための同期ルール
セットAll Contractors従業員タイプ属性の値が契約社員であるすべてのオブジェクトのための動的メンバシップを持つセット
ワークフローAD Provisioning WorkflowFIMユーザをAD発信同期規則に適合するために使用するワークフロー
管理ポリシーAD Provisioning Management Policy Rule リソースがAll Contractorsセットのメンバになった時に起動される管理ポリシー
FIMユーザBritta SimonAD DSにプロビジョニングするユーザ


・シナリオのステップ
本ガイドのシナリオは以下のブロックで構成されます。





















・外部システムの設定
このセクションでは、FIMの外部に作成する必要のあるリソースに関する手順を示します。

・組織単位を作成する
プロビジョニングされるサンプルユーザのコンテナとして組織単位が必要です。

ステップ1
AD DS上にFIMObjectsという名前の組織単位を作成します
注)組織単位を作成するための情報については組織単位を作成するを参照してください


・Active Directoryのユーザアカウントを作成する
本ガイドのシナリオのために2つのActive Directoryユーザアカウントを作成する必要があります。
・Adma - Active Directory管理エージェントのためのユーザアカウント
・Fimma - FIMサービス管理エージェントのためのユーザアカウント
両方とも通常のユーザアカウントを作成すれば問題ありません。
各アカウントの固有の要件はこのドキュメントで後述します。

ステップ2
先の説明に基づき、2つのActive Directoryユーザアカウントを作成します
注)ユーザアカウントを作成するための情報についてはユーザアカウントを作成するを参照してください


・FIM Synchronizationサービスの設定
このセクションの設定を行うためにはFIM Synchronizationサービスマネージャを起動する必要があります。

・管理エージェントを作成する
本ガイドのシナリオのために2つの管理エージェントを作成する必要があります。
・Fabrikam ADMA - AD DSのための管理エージェント
・Fabrikam FIMMA - FIMサービスのための管理エージェント

・Fabrikam ADMAを設定する

AD DS用の管理エージェントを設定する際、管理エージェントがAD DSとデータ交換を行う際に利用されるアカウントを決定する必要があります。
一般ユーザを使うべきですが、AD DSからデータをインポートするために、DirSyncコントロールに対して変更を検出する権限を持っている必要があります。
また、AD DSに対してデータのエクスポートするためにはターゲットOUに対して十分な権限を持っている必要があります。
この点に関する詳細情報はADMAアカウントを設定するを参照してください。

AD DSにユーザを作成するにあたり、技術的には対象のオブジェクトのDN属性さえ流し込めれば問題ありませんが、オブジェクトの検出をしやすくするためには、加えて姓、名、表示名を出力する方が良いと言えます。

AD DSではディレクトリサービスにログオンするのにsAMAccountName属性を使うのが一般的です。もしこの属性の値を指定しなかった場合、ディレクトリサービスがランダムな値を生成しますが、それら生成された値はユーザフレンドリではありませんので、AD DSへのエクスポートを行う際の典型的なシナリオではこの属性のユーザフレンドリな値を設定します。

ユーザがAD DSへログオン出来るようにするためには、同じくエクスポートロジックの中でunicodePwd属性にパスワードを設定する必要があります。

unicodePwd属性に設定する値がターゲットのAD DSのパスワードポリシーに合致していることを確認する必要があります。


AD DSのアカウントのパスワードを設定する際、同様にアカウントを有効化する必要があります。それを実現するためにuserAccountContorol属性を使用します。

userAccountControl属性に関する詳細はActive Directoryのアカウントを有効化/無効化するためにFIMを利用するを参照してください。


下表に必要となるシナリオ固有の設定を示します。

管理エージェント設定ページ設定
Create Management AgentManagement agent for: Active Directory Domain Service
Name: Fabrikam ADMA
Connect to Active Directory ForestSelect directory partitions: “DC=Fabrikam,DC=com”
Containersをクリックし、Select Containersダイアログを表示し、FIMObjects OUのみが選択されていることを確認する
Select Object Types既に選択されているObject typesに加えてuserを選択する
Select AttributesShow Allをクリックする
以下の属性を選択する
  displayName
  givenName
  sn
  sAMAccountName
  unicodePwd
  userAccountControl


ステップ3
前述の説明に従い管理エージェントを作成する
注)詳しくはヘルプの中の以下のトピックスを参照してください
  ・管理エージェントを作成する
  ・Active Directoryフォレストに接続する
  ・Active Directory管理エージェントを使用する
  ・ディレクトリパーティションを設定する
重要)ExpectedRulesList属性に設定するための着信同期規則が存在している必要があります



・Fabrikam FIMMAを設定する

FIM Service用の管理エージェントを設定する際、管理エージェントがFIM Serviceとデータ交換行う際に利用されるアカウントを決定する必要があります。
一般ユーザを使うべきですが、FIMをインストールする際に利用したアカウントと同一のアカウントである必要があります。
Windows PowerShellを使用したFIM管理エージェントのアカウント設定のクイックテストにはFIMのセットアップ時に使用したアカウントの検出と確認を行うためのスクリプトが含まれています。

下表はシナリオ固有の設定を行う上で最も重要な点を示します。


管理エージェント設定ページ設定
Create Management AgentManagement agent for: FIM Service Management Agent
Name: Fabrikam FIMMA
Connect to Database以下の設定を行う・Server:localhost・Database:FIMService・FIM Service base address:http://localhost:5725管理エージェント用に作成したアカウントを設定する
Select Object Types既に選択されているObject typesに加えてPersonを選択する
Configure Object Type Mappings既に選択されているObject type mappingに加えてData Source Object TypesPersonMetaverse Object Typespersonをマッピングする
Configure Attribute Flow既に存在する属性フローに加えて以下の属性フローを設定する
Object Type: Person
Object Type: person
Account NameaccountNameDirect
DisplayNamedisplayNameDirect
ExpectedRulesListexpectedRulesListDirect
FirstNamefirstNameDirect
LastNamelastNameDirect


ステップ4
前述の説明に従い管理エージェントを作成する
注)詳しくはヘルプの中の以下のトピックスを参照してください
  ・管理エージェントを作成する
  ・Active Directoryフォレストに接続する
  ・Active Directory管理エージェントを使用する
  ・ディレクトリパーティションを設定する
重要)ExpectedRulesList属性に設定するための着信同期規則が存在している必要があります

※訳注)ステップ3と内容が同じなのは原文のコピー&ペーストによるミスだと思われます。


・実行プロファイルを作成する

本ガイド内のシナリオのために必要な実行プロファイルは下記の通りです。

管理エージェント実行プロファイル
Fabrikam ADMA1.Full Import
2.Full Synchronization
3.Delta Import
4.Delta Synchronization
5.Export
Fabrikam FIMMA1.Full Import
2.Full Synchronization
3.Delta Import
4.Delta Synchronization
5.Export


ステップ4
前述の説明に従い各管理エージェントの実行プロファイルを作成する
注)詳しくはFIMヘルプの中の管理エージェント実行プロファイルを作成する、を参照してください
重要)provisioning設定が有効になっていることを確認してください。スクリプトを使って確認するにはWindows PowerShellを使ってprovisioningを有効にするを参照してください。





とりあえず前半部分でした。
次回は続きを載せたいと思います。

2010年4月8日木曜日

早わかり!クレイムベースのアイデンティティ&アクセス管理

先日マイクロソフトのPatterns&PracticesチームからリリースされたA Guide to Claims-based Identity and Access Controlを読み進めているのですが、ある意味シンプルなんだけどある意味とっつきにくい「クレームベースのアイデンティティ&アクセス管理」をとてもわかりやすく説明した例があったので紹介します。

以前Tech Fieldersコラムにフェデレーションの話を書いた時は入国審査を例にクレームベースのセキュリティについて説明しましたが、この今回紹介する例の方がより正確でシンプルで良いと思いました。

舞台は同じく空港なのですが、以下のようなメタファを用いています。

用語メタファ
セキュリティトークン搭乗券
クレーム名前、便名、座席ランク
STS(セキュリティトークンサービス)チケットカウンター
RP(アプリケーション)搭乗カウンター


これらを使って見事に認証、トークンの発行、トークンの確認とクレームによる認可を表現しています。















(1)利用者がチケットカウンター(STS)で認証される
   →パスポートの顔写真と本人の顔の一致をもって「認証」する
(2)チケットカウンターが搭乗券(セキュリティトークン)を発行する
   →搭乗券の中には利用者の名前、便名、座席ランク(トークン)が書かれている
   →チケットカウンターが発行したことを証明するために磁気テープで署名されている
(3)利用者が搭乗券(セキュリティトークン)を搭乗カウンター(RP)に提示する
   →搭乗カウンターは提示された搭乗券が磁気テープ(署名)を見て正しいものかを確認する(信頼された発行元かどうかの確認)
   →搭乗券の中の便名、座席ランクを見て利用者を案内(認可)する


私はこの例はかなりしっくりきました。
みなさんはいかがでしょうか?