2011年2月22日火曜日

blog feedを更新しました

ずっと手を付けようと思っていて放置していたマイブログリスト(ナビゲーションの左下)を更新しました。

カテゴリとしては、とりあえず
・Identity関連 : 特に製品に関係なくアイデンティティ関連の情報を発信しているblog
・FIM/ILM関連 : その名の通り、FIMやILM関連の情報を発信しているblog
・AD FS/WIF/ACS関連 : 同じくAD FSやWIF、AppFabric ACS関連の情報を発信しているblog
を用意しました。
日々僕が巡回しているリスト、と思ってもらえればよいかと思います。


最近はめっきりAD FS2.0やFIMなどの割と特定の製品に関するエントリばかりになってしまっていますが、元々は中々日本語でのアイデンティティ管理関連の情報ソースが少ないので、うまく情報を集約できるようなサイトを目指していたので、今後は少しでもその方向にいければなぁ、、と思いつつリソースとパワーが足りない日々だったりします。
(イメージはSalesforce.comに行ってしまった元SunのPat PattersonさんがやっているPlanet Identityみたいな感じ)


2011年2月20日日曜日

AppFabric ACSののセミナに登壇予定

少し先(3/11)になりますが以下のセミナでしゃべります。
登録ページにはまだタイトル未定となっていますが、本当に未定ですww

Windows Azure AppFabric ACS で構築するシングルサインオンシステム
https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032477539&Culture=ja-JP


内容的には安納さんのblogにも紹介されているようにアイデンティティにまつわる用語や標準の整理をさせていただく予定。

もちろん安納さんのパートも必聴です。AppFabric関連の話ってService Busにフォーカスがあたりがちなので、なかなかAccess Control Serviceに絞った話は聴けません。TechEdでもこんなにマニアックなセッションはなかったと思います。


資料は全く未着手なので、そろそろ作り始めようかと。。来週はまるまるシアトルなので。

クレームの発行状態を確認する

AD FS2.0やAppFabric ACSを使った外部認証を有効にしたアプリケーションを開発しているとちゃんとセキュリティトークンが発行されているのか、トークンの中のクレームに何が入っているのかの確認をしたくなります。
もちろんfiddlerを使って実際のHTTPのやり取りの中からPOSTされるSAMLトークンをキャプチャしてSAML 2.0 Debuggerでデコードする、というのもやり方としてはありなのですが、いかんせん生のXMLを見ていく必要がありますし何より手順として少々面倒です。

ということで、私が使っているのがSecurity Token Visualizer Control(STVC)です。PDC等のカンファレンスでVittorioさんが使っているのを見たことがある方もいらっしゃると思いますが、彼がcodeplexに公開しているSAML2.0のトークンを解析して表示してくれるコントロールです。

公開URL:
http://archive.msdn.microsoft.com/TokenVisualizerCtrl

最新版:
SecurityTokenVisualizerControl PDC09 WIF RTM


■環境の構築
※WIF SDKやVisual Studio、IISのアプリケーションプールの設定が正しくされている前提です。

・アーカイブを展開する
では、さっそく使ってみましょう。上記URLからダウンロードしたファイルを実行するとアーカイブの展開および環境のチェック、デプロイが行われるのですが最新版がPDC09とあるように少々古い環境なので最近の環境ではそのままでは使えず、セットアップ過程におけるDependency Checkerでこけてしまいます。これは前提となる環境がVisual Studio 2008だったりするせいなので、アーカイブの展開が終わったらさっさとキャンセルボタンを押してセットアップは省略してしまいましょう。
すると、展開先のフォルダ以下にアーカイブが展開され、「code\Microsoft.Samples.DPE.Identity.Controls\bin\Debug」以下にSecurityTokenVisualizerControl.dllが出来ています。
もちろん同梱されているプロジェクトをVisual Studio 2010でビルドしなおしてdllを再作成してもOKですが、面倒なのでこのdllをそのまま使ってしまいます。

・作成するプロジェクト内でSTVCを利用する
この辺りはVisual Studioを使い慣れている方には当たり前なのでしょうが、上記で解凍したコントロール(dll)をプロジェクトで使えるようにするためにコントロールを参照する必要があります。

ツールボックスを表示して、コントロールの参照から解凍したdllを参照します。
すると、ツールボックス内にSTVCのアイコンが出てきますので、プロジェクトのWebページ上にドラッグ&ドロップします。これでコントロールの配置は完了です。




















・Federation Utilityを実行しSTSへの参照設定を行う
ここはAD FS2.0やACSを使った外部認証を有効にする手順と同じですが、Federation Utilityを使ってSTS参照を有効にします。今回はACSを参照することにします。
※もちろんACS側へのRelying Partyの設定も必要です。














・ちょこっとweb.configを修正する
実はFederation Utilityを実行してもweb.configに手動で設定を行う必要があります。(.NET Framework 4.0を使う場合のみ?)結構はまりポイントなので、うまく動かない場合は一度このあたりの設定を疑ってみる必要があるかもしれません。

<system.web>以下
 <httpRuntime requestValidationMode ="2.0"/>

<microsoft.identityModel>以下
 <service saveBootstrapTokens="true">


これで準備は完了です。

■使ってみる
では、作成したプロジェクトを発行してWebページにアクセスしてみます。

まずはACSで認証されます。




















うまくトークンとクレームが発行されていれば、Webページのコントロールをクリックして展開されるテーブルにトークンの情報が表示されるはずです。













上の方に発行されたクレームの型と値、発行元の情報が、下の方に実際に発行されたSAMLトークンの情報が表示されているのがわかります。


アプリケーションのデバッグはもちろん、AD FS2.0やACSなどの基盤が正しく動作していることの確認を行うためにも使えそうです。(もちろんデモ用途にも)

2011年2月2日水曜日

[FIM2010]一般ユーザ権限でセキュリティグループを管理する

FIM2010の大きな特徴でもあるグループ管理機能も実はデフォルトでは殆ど無効化されているので色々と手を加えてやる必要があります。

以下が一般ユーザでFIMポータルにログインした際の初期画面です。











見ての通り、配布グループについては表示されていますが、セキュリティグループについては表示すらされていません。(実は配布グループについても画面表示はされていても実際に作成をしようとするとアクセスが拒否されてしまうので、そのままでは使えません)

この状態から一般ユーザが自身でセキュリティグループの管理ができる状態にするためには以下のステップを踏む必要があります。
・画面に操作メニューを表示する
・セキュリティグループを管理する権限を付与する

それぞれを解説していきます。

■画面に操作メニューを表示する
まず、画面のカスタマイズです。

FIMポータルの画面の中のユーザメニューに関連する部分は
・ナビゲーションバー
・ホームページ
で構成されています。












それぞれに何を表示するか、についてはAdministratorでログインした場合にポータルの右側に表示される管理メニューより対応するリソースのカスタマイズを行います。


















では、どうすればホームページやナビゲーションバーに各機能が表示されるか?ですが、これは少しわかりにくいのですが、各リソースの「使用法キーワード」に「BasicUI」という文字列を入れることで表示されます。

ナビゲーションバーリソース
















ホームページリソース

















ここまで設定をすると一般ユーザのポータルにもメニューが表示されます。(すぐに画面に反映させたい場合はiisreset等でIISを再起動してください)














次は表示されたメニューを実際に使えるようにします。

■セキュリティグループを管理する権限を付与する
先の配布グループの件もそうなのですが、一般ユーザがセキュリティグループを管理できないのは以下の2点が原因です。
・関連する管理ポリシー規則(MPR)がデフォルトでは無効化されている
・関連する管理ポリシー規則の申請元として定義(許可)されているのがAdministratorsのみである

それぞれを解消して行きます。

まず、管理ポリシー規則の有効化です。
対象となる管理ポリシー規則は「Security Group xxxx」という表示名のものです。検索ウィンドウに「Security」と入れて検索すると対象のもののみが表示できるので便利です。
それぞれの管理ポリシールールを開いて[無効化]のチェックを外して保存すればOKです。








次に、管理ポリシー規則を利用するための権限の付与です。
デフォルト状態を見てみるとセキュリティグループ管理を行うための管理ポリシー規則の申請元として定義されているのは「Security Group Users」というセットです。
このセットの定義をみるとメンバとなっているのはAdministratorsに属するユーザのみとなっているので、ここに一般ユーザも追加することで権限を与えることが可能です。


















さて、それなりに長い道のりでしたがここまで設定を行ってようやく一般ユーザでもセキュリティグループを管理することができるようになりました。
(もちろんFIMで作ったセキュリティグループをActive Directoryへ反映させるには別途管理エージェントの設定や同期規則の設定が必要です)