ラベル Geneva の投稿を表示しています。 すべての投稿を表示
ラベル Geneva の投稿を表示しています。 すべての投稿を表示

2011年4月14日木曜日

AD FS2.0の構築手順まとめサイトの紹介

最近になってようやく日本語のアイデンティティ関連の情報も増えてきました。

例えば日本マイクロソフトでも Technet で翻訳情報などを集めているサイトが大分整理されてきました。
http://technet.microsoft.com/ja-jp/cloud/gg190748.aspx

他にも @kamebuchi さんが AD FS2.0 や AppFabric Access Control Service の情報を発信していたり、と私が Geneva の情報を必死で集めていたころとは大違いです。


今回はそんな中で AD FS2.0 の構築手順を割とリアルにまとめているサイトを紹介します。

http://www.tensi.info/home/kensyo-infra

実はこのサイトを作っているのは知り合いなのですが、ドメイン名の tenshi とは正反対の性格をしている”できる”エンジニアです。
今後色々とコンテンツの拡充を予定しているらしいので要注目です。

2010年12月1日水曜日

「AD FS 2.0 デザインガイド」の日本語版

なかなか日本語リソースが少ないこの領域ですがだんだんドキュメントの翻訳が進んできているようです。

今日も以下のURLで「AD FS 2.0 デザインガイド」の日本語版が公開されています。

http://technet.microsoft.com/ja-jp/library/gg308546.aspx

















コンテンツは以下の構成となっています。
・AD FS 2.0 を展開する前に重要な概念について理解する
・AD FS 2.0 の展開目的を特定する
・展開目的を AD FS 2.0 設計にマップする
・展開を計画する
・フェデレーション サーバー の配置を計画する
・フェデレーション サーバー プロキシの配置を計画する
・付録 A: AD FS 2.0 の要件を確認する

私もAD FS 2.0(当時はGenevaでしたが)を触り始めたころは英語版のマニュアルと格闘していたのですが、その後このデザインガイドの英語版やEuginio Paceさんの「A Guide to Claim-Based Identity and Access Control」やVittorio Bertocciさんの「Understanding Windows CardSpace」を参考にして小難しい概念を理解しようとしていた思い出があります。





































なかなか特殊な分野なのか日本語での書籍は商業的にも難しいのかも知れませんが、このように日本語のオンラインドキュメントが出てきたことで初めの一歩のハードルは下がってきたのかも知れません。
(一部製品のメニューの日本語名とは異なる用語が使われてしまっているので混乱はあるかも知れませんが・・・。元々のメニューの日本語がわかりにくすぎる、という説もw)

2010年7月12日月曜日

ADFS2.0の相互運用性 [7/26更新]

以前ADFS2.0がSAML2.0の相互運用性テストにパスした、という話題がありましたがSAMLに対応した他のSSO製品やサービスとの連携の情報が少しずつ出てきました。


◆他のフェデレーション/SSO製品との相互運用性
Sun OpenSSO

IBM Tivoli Federated Identity Manager

CA SiteMinder

7/26更新
Oracle Identity Federation

また、SAMLに対応しているサービスとの連携については某所で記事を近々公開する予定なので、乞うご期待!
ちなみに、GoogleApps、Salesforce.com、Windows LiveID、Windows Azureとの連携のHow Toを公開予定です。

↓調査・実験の過程の各所の私の足跡(というか残骸)です。待ちきれない方はご参考までに(笑)
GoogleApps

Salesforce.com

2010年6月23日水曜日

TechEd North Americaのセッション資料

6月7日~10日に北米ニューオーリンズで開催されていたMicrosoft TechEdの資料が公開されてます。
さすがに日本とは比べ物にならないくらいのボリュームです。

とりあえずセッションの中からADFS2.0関連、FIM2010関連のものをピックアップして斜め読みをしてみました。


セッションコードタイトル概要(自分メモ)
COS206Microsoft Business Productivity Online Standard Suite (BPOS) v.Next: Identity and Access SolutionsBPOSへのFederation
・OnlineID
・OnlineID+DirSync
・FederatedID+DirSync
OSP311From N to Z: Authentication and Authorization in Microsoft SharePoint Server 2010@SPIdentity
MVP for MOSS
MOSS2010+ADFS2.0
SIA201Understanding Claims-Based Applications: An Overview of Active Directory Federation Services (AD FS) 2.0 and Windows Identity FoundationDavid Chappell
ADFS2.0+WIF+CardSpace2.0のオーバービュー
SIA302Identity and Access Management: Centralizing Application Authorization Using Active Directory Federation Services 2.0MSIT
BPOS連携などのオーバービュー
SIA303Identity and Access Management: Windows Identity Foundation and Windows AzureVittorio Bertocci
Azure上にWIFを使ったアプリケーションをデプロイする際の具体的なTIPSなど
SIA304Identity and Access Management: Windows Identity Foundation OverviewVittorio Bertocci
WIFの概要
SIA305Top 3 Security and Privacy Challenges in Identity Infrastructures and How to Overcome Them with U-Prove U-Prove
概要の説明とCTP
SIA307Identity and Access Management: Deploying Microsoft Forefront Identity Manager 2010 Certificate ManagementFIM2010 CLM
SIA318Microsoft Forefront Identity Manager 2010 Deploying FIMFIM2010のデプロイ
SIA319Forefront Identity Manager 2010: In Production本番環境におけるFIM2010の運用
SIA321Business Ready Security: Exploring the Identity and Access Management Solution Business Ready Securityのオーバービュー
SIA326Identity and Access Management: Single Sign-on Across Organizations and the Cloud - Active Directory Federation Services 2.0 Architecture DrilldownADFS2.0のデプロイ
SIA327Identity and Access Management: Managing Active Directory Using Microsoft Forefront Identity Manager FIM2010の概要



8月の日本開催のセッション予定を見ているとADFS2.0、FIM2010それぞれ1つずつという状態なので、ちょっとさみしい感じです。


とは言え濃い内容になっていることに期待!と言ったところでしょうか。

2010年5月26日水曜日

クレイムベースのアイデンティティ&アクセスコントール本が届きました

先日「早わかり!クレイムベースのアイデンティティ&アクセス管理」というポストで紹介したA Guide to Claims-Based Identity and Access Controlですが、内容的に非常に興味深かったので、著者のEugenio Pace氏に連絡をしてみました。
中々興味深い分野なので今後も継続的にやり取りができると良いなぁ、、と思っています。

やり取りの中で先の文書のハードコピーを頂いたので(しかもサイン入り!)紹介します。

ハードコピー











サイン!












彼のblogエントリには他にもAzure関連のガイダンスなど参考になるものが多くあるので、今後も要ウォッチです。

ついでに、昨日のInfoQにEugenio氏へのADFS2.0とWIFに関するインタビューが載っていましたのでこちらも紹介。



2010年5月6日木曜日

Active Directory Federation Services 2.0のRTWリリース

Ping Identityのblogで4月の終わりにリークされていましたが、AD FS2.0RTWが5月5日にリリースされました。
これで、Identity Metasystemを構成する3つの要素のうち、2つまでが正式にリリースされたことになります。
・Windows Identity Foundation [リリース済み]
・Active Directory Federation Services 2.0 [リリース済み]
・Windows Card Space 2.0 [ちょっと延期中]

Windows Card Space 2.0についてはU-ProveやOpenID対応の関連でちょっと延期されて、2010年Q2にCTPが出てくるようです。


さて、今回のRTW版ですがこれまでのユーザインターフェイスが英語のみだったのがインストーラ、管理コンソールやヘルプも日本語化されています。
ただ、相変わらずWindows Server 2008 without Hyper-Vにはインストール出来ないようです。特にHyper-Vを使うわけではないので、単にバージョンチェックではねているだけだと思いますが・・・

インストーラの画面。日本語になってます。
















管理コンソール。











構成ウィザード。















2010年4月8日木曜日

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

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

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

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

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


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















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


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

2010年3月12日金曜日

色々と気になるニュースなどなど

RSAカンファレンスもありましたし、色々と気になるニュースや記事が色々と

・Claims-based Identity and Access Control Guideのリリース


 しばらく前から気になる記事ではありましたが、このたび正式にリリースされたようです。
 今読んでいるCloud Security and Privacyが読み終わったらじっくり読みたいと思います。

・Windows Identity Foundation Developer Workshopの開催


 残念ながら日本では開催されませんが、3月の終わり~6月の頭にかけて6カ国で開催されます。
 Azure連携も含めWIF三昧なセッションやラボが繰り広げられるようです。

・The Experts Conference 2010の開催


 毎年開催されているディレクトリ、アイデンティティ関連のカンファレンスです。今年は4月の終わりにロサンゼルスで開催されます。
 さすがに今年はAD FS2.0、FIM2010関連のセッションがてんこ盛りです。

・その他気になる情報

 AD FS2.0/OpenID連携を使ってOpenIDでSharePoint2010へアクセス

 上記とも関連しますが、WIF SDKDotNet OpenIDを使ってOpenIDとWS-Federationのクレーム変換を行うカスタムSTSの作り方


なかなか目を通しきれませんが、どれも興味深い情報ばかりなのでがんばってウォッチしていきます。

2010年2月27日土曜日

参加してきました「Tech Fielders の集い 特別編 - おかげさまで Active Directory 10周年 セミナー 」

今週はTechDaysもありましたし、本日のAD10周年イベントもあり盛りだくさんでした。

細かい情報はあとからTechFieldersのサイトに載ると思うので、印象に残った点だけ軽く振り返ってみますが、twitterのハッシュタグ#ad10thを見ていて感じたのは、「フェデレーション/ADFS」と「PowerShell」に対する反応の多さが印象的でした。
PowerShellはともかく、これまでフェデレーションって何に使うの?という反応ばかりでしたが、やはりここにきてクラウド連携と関連してみなさんの興味も急上昇、、という感じなのだと思います。

※安納さんのblogでもご紹介いただきましたが、フェデレーションについてTechFieldersのサイトにコラムを書いているので、ご興味があれば見てやってください。

さて、各セッションについてもざっと流してみます。

■Active Directory 10年の歩み/MCS待鳥さん、柿沼さん
・設計の移り変わり
 ADを取り巻く環境(NW、HWスペックや価格)の変化に伴いサイト構成(分散配置から集中配置へ)やDCのサイジング(OSの64bit化に伴う保持オブジェクト数の増加など)が変わってきた、というお話。

・ADの使いこなし例
 3つの例を挙げていました。

 1.Excelで簡単アカウント管理&監査
   VBA+ADSIでオブジェクトの管理台帳を!という使い方です。昔私も作りました。ID管理製品を入れるほどの規模ではない企業の場合これで十分なんだと思います。

 2.パスワード変更情報を取り出す
   PCNSを使ってDCへのパスワード変更をフックする例です。意外とみなさんPasswordChangeNotify()関数をご存知ないようで、twitterのTLには感嘆の声が上がっていました。そう言えば以前パスワードフック関連のポストをしたのですが、いまだにアクセス数が上位です。

 3.見えないサーバで個人情報管理
   IPSecを使って簡易的な検疫をしましょう、というお話。簡単に実装できるのでやってみてもよいかもしれません。

■Active Directory 提案のツボ/SE山崎さん
Windows Server使い倒し塾でおなじみの山崎さんのセッションです。既に今日の資料がポストされているので、詳しくはそちらを見てください。

山崎さんもやはりADの今後、というところではADFS2.0とAzure連携というお話をしておられました。

■Active Directory/Group Policyよくある質問/サポートチーム北川さん
ある意味、今回のセミナの目玉の一つだったのではないでしょうか?
普段は切羽詰まった状態でメールや電話でしかお話できない製品サポートチームのリアルな話でした。

よくある障害の事例として、
 1.DCへアクセスできないケース
   名前解決ができない
   ネットワーク上へアクセスできない
   NATしている(SMBがNAT非対応)
 2.sysvolへSMB通信が失敗するケース
   DFS異常など
 3.低速リンクの検出により一部のポリシーがあたらないケース
   ICMPで検出しているので、ICMPがブロックされていると低速リンクとみなされる
が紹介されたり、一部のDCの破損が起きた場合の復旧手順などが紹介されました。

こちらもしばらくしたらblogに本日の情報をアップしてくださるということなので、細かくはそちらに期待です。

■Active Directoryトラブル解決のツボ/ADSIサポートチーム渡部さん
こちらも上記と同じく濃いセッションです。
いつもお世話になっているADSI/ILMサポートチームの「お父さん」こと渡部さんのセッションです。

こちらは製品というよりもADSIやWMIなどの開発がらみも含めた微妙な領域のサポート部隊なので、プログラミングに依存する問題、環境・構成に依存する問題の切り分け~解決までのアプローチについて紹介していました。ある意味もっとも専門性が要求される部隊なのかも知れません。

細かいアプローチについてはblogへの掲載を期待するとして、紹介されていた事例は以下の通りでした。
 1.ADSIで大量のオブジェクトを操作するとエラーがでるケース
   →リソース(ポート)の枯渇の可能性を疑う(netstatで確認)
 2.ADsOpenObject(OpenDsObject)が特定のDCに対して失敗する
   →名前解決の可能性が高い
   →DSQueryで対象のDCのオブジェクト参照を試す
   →直接IPアドレスを指定する
 3.ASP.NETアプリケーションがADを参照しようとすると認証エラーになる
   →NTLM認証はダブルホップ認証ができないので、KerberosでWindows統合認証を構成する必要がある。(ダブルホップ:ブラウザ→IIS→DCという2段階で認証が行われる構成)

■パネルディスカッション/MVPを含む5人の濃い方々・・
話が盛りだくさんでまとめきれませんが、一言で言うと「ここに歴史あり」という感じでしょうか?
NT5.0と言われていた時代からかかわってこられた方々ばかりで、Active Directoryの成長を実際に支えてこられた方々の生の話でしたので、とても面白かったです。

特に印象に残ったのは、
・Active Directoryは10年間基本設計が変わっていないという点が素晴らしい
・今後認証基盤だけではなくアイデンティティ情報のレポジトリとしても活用されていくのではないか?
という2点でした。

既に登壇されたMVP国井さんがblogに本日の様子をアップしているのでそちらも合わせてご覧ください。

■Active Directoryを広めよう!/プロダクトマネージャ岡本さん
製品マーケティングの視点でActive Directoryを紹介していました。

国内の企業の規模別のActive Directory導入率など、普段は見られない貴重なデータを見ることができ、とても参考になりました。
できれば今後はActive Directoryの各コンポーネント別(DS、RMS、CS、LDS、FS)でも集計が取れると面白いかと思ったりしました。

また、今後の各種イベントの情報や、6月26日に出版される新しい書籍「Active Directory ID管理ガイド」の紹介もありました。(以前出ていたActive Directory ID自動管理ガイドの改定版?)




■そして懇親会!
イベント自体すごい人数が参加していましたので、懇親会もかなりの人数が参加されていたのではないでしょうか?

目玉はこのケーキでした。













他にもこんなお土産をいただきました。




















限定の帯付きの「ひと目でわかるActive Directory(2008R2対応)」















限定200個のメダル



まぁ何にせよ大盛況でしたし、とても役に立ちました。
関係者の皆さんは大変だったと思います。本当にお疲れさまでした!

2010年2月24日水曜日

アイデンティティ視点で見るTechDays2010

昨日(2月23日)、今日(24日)とMicrosoft TechDays 2010に参加してきました。
基本的にデベロッパー向けのイベントなんですが、今回はAzureにフォーカスされているということもあり、クラウドを取り巻く開発・管理・インフラ、、という形でインフラ屋さんにとっても非常に役に立つ話が盛りだくさんでした。

と言いつつ、アイデンティティ視点ということで私が特に注目して聴いたのが、
・T1-304 Windows Identity Foundation によるクラウド連携認証基盤の構築
・T1-309 Windows Azure Platform AppFabric によるオンプレミス/クラウド ハイブリッド アプリケーションの構築
・T4-401 オンプレミス & クラウドにおける Identity 連携の全体像
の3つです。
※セッション一覧はこちらから

内容的に言うと、オンプレミスで用意するIdP(ADFS2.0、AD)とアプリケーション側でクレームをハンドリングするためのライブラリであるWIF(Windows Identity Foundation)、間をつなぐMicrosoft Federation GatewayやAzure Platform AppFabricのアクセスコントロールサービス、というオンプレミスからクラウドにまたがるアイデンティティ&アクセス管理についてを横断的に見てきた、という感じでしょうか。

大きなテーマとしては企業がクラウド上のサービスを使うに当たっての大きな課題であるオンプレミスとクラウドにまたがったシステムをいかに「セキュア」で「便利」に構築するか?その時にベースとなるアイデンティティはどうなるのか?という点をAzureに特化した際の一つの解が示されたと思います。

マイクロソフトの全体的なアイデンティティの方向性については以前紹介したKim Cameron氏のblogアーキテクチャジャーナルに書かれている通りですが、クラウドの台頭というパラダイムシフトによりビジョンの実現に向けて製品への実装が加速した、という感じでしょうか。


詳細はエバンジェリスト安納さんがblogでActive Directoryの歴史と共に語ってくれていますが、以下のような仕組みが製品として提供されてこようとしています。

・企業内のアイデンティティ情報をクラウド(もしくは社外)と連携するための仕組み
 →Active Directory Federation Services 2.0 ( ADFS2.0 )
・Azureの場合に代表してフェデレーションする窓口
 →Microsoft Federation Gateway ( MFG )
・Azure上のサービスのアクセス権管理をする
 →Windows Azure Platform AppFabric/アクセスコントロールサービス
  ※基本的にはWebサービス(WCF)を使う場合の権限管理
・認証/認可モデルの変化(クレームベースのセキュリティモデルへの変更)に伴うアプリケーションの対応※まさにIdentity Metasystem!
 →Windows Identity Foundation ( WIF )































個人的にはMFG、AppFabricのACSは全然触っていないので、少し触ってみようかな?と思えました。
※そう言えばAD Connectorってどこへ行ったんだろうか?

尚、とってもわかりにくいキーワードであるフェデレーションやクレームベースのセキュリティについてTech Fieldersのサイトにコラムを書いたので、よろしければご覧ください。

・TechFieldersインタビュー AD FS 2.0 でアプリケーションの世界が変わる
・TechFieldersコラム システム管理者のためのフェデレーション講座

まぁ何にせよTechDays関係者の皆さんお疲れさまでした!

2010年2月17日水曜日

FIM/ADFS関連の情報を扱うページ一覧

このblogを始めたきっかけともなったFIM2010ですが、MIISやILMを含め日本語の情報が非常に少ないのが現状です。
そんなわけで英語のサイトも含め色々と探して情報を収集している日々なのですが、そろそろ見ているサイトの数も管理しきれないくらい多くなってきたので、自分自身の整理の意味も込めて一覧を書いておこうと思います。

おそらく皆様のお役にも立つとも思います。
※尚、製品そのもののページは入れていません。

【FIM/ILM関連のページ】

◆マイクロソフトの日本語サイト
サイト名URL解説
FIM TechCenterhttp://technet.microsoft.com/ja-jp/ilm/default.aspx
フィールドSEあがりの安納ですhttp://blogs.technet.com/junichia/エバンジェリスト安納さんのblog
管理者は見た!~AD と ILM 一家の秘密~http://blogs.technet.com/jpilmblg/default.aspxAD/ILMサポートチームのblog
Windows Sedrver使い倒し塾http://blogs.technet.com/windowsserverjp/default.aspx


◆マイクロソフトの英語サイト
サイト名URL解説
Technetフォーラム Identity Lifecycle Managerhttp://social.technet.microsoft.com/Forums/ja-JP/identitylifecyclemanager/threads
Technetフォーラム Identity Lifecycle Manager 2http://social.technet.microsoft.com/Forums/ja-JP/ilm2/threads
Bobby and Nima's Forefront Identity Manager Bloghttp://blogs.technet.com/doittoit/default.aspx
Identity Managementhttp://blogs.technet.com/identitymanagement/default.aspx製品チームのblog
Identity Management Extensibilityhttp://blogs.msdn.com/imex/default.aspxFIM SDKなどでFIMを拡張する
Anthony Hohttp://blogs.technet.com/aho/default.aspxFIMのパスワードリセット関連
Craig McMurtry's WebLoghttp://blogs.msdn.com/craigmcmurtry/
Mark Gabarra's Bloghttp://blogs.msdn.com/markgabarra/
Shawn's MIIS/ILM/FIM Code Experimenthttp://blogs.msdn.com/therabournidentity/
Darryl Russi's Bloghttp://blogs.msdn.com/darrylru/default.aspxサイジングとかパフォーマンスとか


◆その他サイト
サイト名URL解説
Always on the clockhttp://sophiakunii.spaces.live.com/MVP国井さん
1dent1ty cHa0shttp://www.identitychaos.com/ensynch所属のMVP
Identity Management Crisishttp://www.idmcrisis.com/
Jorge 's Quest For Knowledge!http://blogs.dirteam.com/blogs/jorge/default.aspxMVP
missmiishttp://www.wapshere.com/missmiis/Technet Forumでも活躍しているCarolさんのblog
The new Puttyq.comhttp://puttyq.com/blog/MVP
ILM Best Practiceshttp://www.ilmbestpractices.com/blog/blogger.htmlMVP
CSHARKhttp://c--shark.blogspot.com/FIM関連のツールとか
Apollo Jackhttp://www.apollojack.com/
IdM for Realhttp://bobbradley.spaces.live.com/default.aspx
Microsoft IDMhttp://www.microsoftidm.com/MVP
MMSUGhttp://tech.groups.yahoo.com/group/MMSUG/MIISのYahooGroup
microsoft.public.metadirectoryhttp://www.archivum.info/microsoft.public.metadirectory/NewsGroup
Identity Management at CERN https://espace.cern.ch/idm/default.aspxCERNのIdM。。天使と悪魔以外でCERNの名前を聞くとは思ってもみませんでした(笑)



【AD/ADFS関連のページ】

◆マイクロソフトの日本語サイト
サイト名URL解説
Active Directory TechCenterhttp://technet.microsoft.com/ja-jp/activedirectory/default.aspx
Shigeya Tanabe's bloghttp://blogs.technet.com/stanabe/エバンジェリスト田辺さん


◆マイクロソフトの英語サイト
サイト名URL解説
Kim Cameron's Identity Webloghttp://www.identityblog.com/言わずと知れたChief Architect of Identity
Ask the Directory Services Teamhttp://blogs.technet.com/askds/default.aspxADサポートチーム
“Geneva” Team Bloghttp://blogs.msdn.com/card/default.aspx
Vibro.NEThttp://blogs.msdn.com/vbertocci/default.aspx
ADFS Documentation Bloghttp://blogs.technet.com/adfs_documentation/default.aspx
Eugenio Pacehttp://blogs.msdn.com/eugeniop/default.aspx


◆その他サイト
サイト名URL解説
des on Federated Identity … less is morehttp://identity-des.com/
ZULFIQAR'S WEBLOGhttp://www.zamd.net/default.aspx
Matias Woloski’s Bloghttp://blogs.southworks.net/mwoloski/
Jackson's Identity Management & Active Directory Reality Tour Travelblog http://jacksonshaw.blogspot.com/



【その他、マイクロソフト関連のIdentity関連の情報を扱うページ】

サイト名URL解説
Mike Jones: self-issuedhttp://self-issued.info/Identity関連のニュースなど
identityjunkie.comhttp://blog.identityjunkie.com/MVP
Identity Sanderhttp://identitysander.wordpress.com/Identity関連のニュースなど

2010年1月16日土曜日

ADFS2.0 & WIF on AzureでオンプレミスとクラウドのSSO その3

意外とご好評を頂いた?このシリーズも今回で最終回です。

いよいよ今回は、
3.Azure上のアプリケーションを作成・発行する
4.シングルサインオンしてみる
をお送りします。


初回にも書きましたが、Azure上でもオンプレミスと同じコードが動きますが、環境面での違いを吸収するために少々設定が必要になります。

環境面での違いをまとめると、下記のようになります。

ポイントAzureオンプレミス
証明書のインストール方法サービス毎に証明書をアップロードIISへの設定
Webサイトへの証明書のバインド方法プロジェクト側(WebRole)で使う証明書を指定IISのサイトの設定
WIFコンポーネントの呼び出し方法プロジェクトにWIFコンポーネントをパッケージングして一緒にデプロイアプリケーションサーバにインストールされているWIFコンポーネントへアクセス


では作業を始めます。
流れとしては、
・Azure上へサービスを作成する
・証明書を準備する
・Azure上へ証明書をアップロードする
・アプリケーションを作成する
・Azure上へデプロイ/実行する
・ADFS2.0にRelyingPartyを設定する
・Azure上のアプリケーションの動作を確認する
・オンプレミスアプリケーションとのSSO動作を確認する
となります。

少々ステップが多くなりますが、順番に見ていきます。

◆Azure上へサービスを作成する

 プロジェクトを開き、New ServiceからHostedサービスを作成します。
 注)ここで作成したサービス名を証明書にも使うので記録しておきます。
   今回は「pasvfed」という名前を使いました。







 サービスを追加し、Hosted Servicesを選択します。













 以下のパラメータでサービスを作成します。

項目設定値備考
Service Labelpasvfed
Public Service Namehttp://pasvfed.cloudapp.net
RegionAnywhere US何故かAnywhere AsiaだとDr. Watsonが出たので



◆証明書を準備する

 証明書を作成するのにネイティブ暗号化APIモジュール(CAPICOM)を使用します。
 もちろん上記リンクからダウンロードしても良いのですが、Identity Training Kitに入っているので今回はそちらを使いました。(CAPICOMそのものよりも後で出てくる証明書作成のバッチファイルが欲しかったので)
 ※ちなみにCAPICOMは<Identity Training Kitインストールフォルダ>\Labs\WindowsAzureAndPassiveFederation\Source\Setup\Scripts以下にあるcapicom_dc_sdk.msiです。

 インストールが終わったら証明書の作成とインストールを行います。
 インストールは同じく<Identity Training Kitインストールフォルダ>\Labs\WindowsAzureAndPassiveFederation\Source\Assets以下にある、CreateCert.cmdを使います。

 まず、Visual Studioコマンドプロンプトを管理者で実行します。




















 CreateCert.cmdのあるフォルダへ移動して、以下を実行します。

xxxx:\> CreateCert.cmd pasvfed

 このとき、引数に先程Azure上で作成したサービスの名称を渡します。

 実行すると、秘密キーのパスワードの作成、秘密キーのパスワード入力を求められるので「abc!123」を入力します。
 ※CreateCert.cmdをそのまま使う場合、パスワードはabc!123である必要があります。
  詳しくはバッチファイルの中を見るとわかります。























 その後、証明書インストール時にセキュリティの警告が出るのが「はい」をクリックします。





















 コマンドが成功するとcertsフォルダの中に、
 ・pasvfed.cloudapp.net.cer
 ・pasvfed.cloudapp.net.pfx
 ・pasvfed.cloudapp.net.pvk
 という3つのファイルが出来上がります。


◆Azure上へ証明書をアップロードする

 先程作成した証明書をAzure上へ予めアップロードしておきます。手順としてAzureのサービスのCertificatesからManageをクリックします。







 作成した証明書(pfxファイル)を選択肢、パスワードに先ほど指定した「abc!123」を指定し、uploadを行います。










 成功するとInstalled Certificatesにアップロードした証明書が表示されます。


◆アプリケーションを作成する

・プロジェクトの作成

 オンプレミス側で実行したのと同様にVSを管理者として起動し、新しいプロジェクトを以下の通り作成します。

項目備考
プロジェクト名pasvfedAzure上のサービス名と合わせます
プロジェクトの種類Visual C# → Cloud Serviceもちろん言語は任意
テンプレートWindows Azure Cloud Service
追加するロールASP.NET Web Role
ロール名Webもちろん任意
































・SSLの設定

 次に、WebロールのSSL設定を行います。
 ソリューションエクスプローラからpasvfed→Roles→Webを右クリックしてプロパティウィンドウを表示します。


















 Certificatesメニューを開き、「Add Certificate」をクリックし、以下の通り証明書を設定します。

項目備考
Namepasvfed
Store LocationLocal Machineデフォルト
Store NameMyデフォルト
Thumbprint右側のボタンをクリックして先ほど作成したpasvfedという名前の証明書を選択する









 次に追加した証明書を使うようにエンドポイントの設定を行います。Endpointsメニューを開き、以下の様に設定します。

項目備考
HTTP無効
HTTPS有効

NameHttpsInデフォルト

Port443デフォルト

SSL certificate namepasvfedドロップダウンリストから選択


















・参照設定の追加

 Webロールのプロジェクトの参照設定にオンプレミスと同様にMicrosoft.IdentityModelを追加します。
 1点異なるのが、Microsoft.IdentityModelのプロパティに以下のパラメータを設定する必要がある点です。

 ・ローカルコピー:True
 ・特定バージョン:False


















 これは、Azure上のアプリケーションからWIFコンポーネントへアクセスできないため、
、ローカルコピーを有効にして強制的にプロジェクトパッケージにコンポーネントを含めるために行う設定です。


・STSへの参照を設定

 これはオンプレミスと全く同じ手順です。
 Webロールを右クリックして出てくるAdd STS referenceからWizardを開き、以下の設定を行います。※オンプレミスと異なる点はApplication URIのみです。

ステップ設定項目設定値備考
WelcomeApplication configuration locationプロジェクトのweb.configファイル初期状態で指定されているので変更不要
Application URIhttps://pasvfed.cloudapp.net発行先となるURIを指定
Security Token ServiceSecurity Token Service (STS) optionUse an existing STS既に作成したADFS2.0をSTSとして指定
STS WS-Federation metadata document locationhttps://adfs20.eidentity.local/FederationMetadata/2007-06/FederationMetadata.xmlADFS2.0のMetadataのエンドポイントを指定
STS signing certificate chain validation errorCertificate validation optionDisable certificate chain validationSTSが自己署名入り証明書を使っているため、証明書チェーンの確認を無効化する
Security Token encryptionSecurity Token encryption optionNo encryption


・Web.configの編集

 Add STS referenceでWeb.configは書き換わるのですが、Azure上にアップロードした証明書の参照に関する設定を一部手動で追加する必要があります。
 場所は、タグの内で、以下を追加します。

<servicecertificate>
 <certificatereference x509findtype="FindByThumbprint" findvalue="xxxxxx">
</servicecertificate>

※ThumbprintはWebロールに設定した証明書のものを使用


・Default.aspxのコーディング

 いよいよ実装ですが、コードはオンプレミスと全く同じものを使います。














 ここまででアプリケーションの実装は完了です。次はいよいよAzure上へのデプロイです。


◆Azure上へデプロイ/実行する

 ソリューションエクスプローラからpasvfedプロジェクトを右クリックして「発行」をクリックします。

 自動的にパッケージファイルが作成されたフォルダとブラウザが開き、Azureのサイトへ移動されます。

 プロジェクトからサービスを開き、Production環境のDeployボタンをクリックします。
 ※今回は直接Production環境へデプロイします。これは、Azure上のアプリケーションはローカル、ステージング、プロダクションのそれぞれの環境でURIが変わるため、Passive Federationではアプリケーション→STS→アプリケーションとリダイレクションで遷移させる際に実行環境によって遷移先が変わってしまうためです。本当はHOSTヘッダをみて遷移先を変えるなどの工夫をするのですが、STSにADFS2.0を使う場合はそのあたりの作り込みが出来ない?ので、私は開発環境、ステージング環境もそれぞれRelying Partyとして登録しています。(ただの調査不足かも知れませんが)













 先ほど出来上がったパッケージファイルと構成ファイルをアップロードします。
 ラベルは適当な文字列でOKです。



























 デプロイが完了したらRunをクリックしアプリケーションを実行します。












 ステータスがInitializingになると、しばらく時間がかかるのでその間にSTSの設定をしておきましょう。












◆ADFS2.0にRelyingPartyを設定する

 これは前回オンプレミスで作成したのと同様の手順です。今回作成したアプリケーションのFederationMetadata.xmlを読み込ませると自動的にRelyingPartyのURIとしてpasvfed.cloudapp.netが設定されます。






◆Azure上のアプリケーションの動作を確認する

 そんなことをしているうちに、AzureのサービスのステータスがReadyになります














 準備が出来たら、ブラウザでhttps://pasvfed.cloudapp.net/へアクセスしてみます。
 オンプレミスと同じようにSTSへリダイレクトされ、ログインするとAzure上のアプリケーションが表示されます。

























◆オンプレミスアプリケーションとのSSO動作を確認する

 最後に、本当にオンプレミスとシングルサインオンになっているかを試してみます。

 最初にオンプレミスへアクセスします。
 するとSTSへリダイレクトされ、オンプレミスアプリケーションが表示されます。














 そのまま、オンプレミス上の「Azureアプリケーション」というハイパーリンクをクリックします。すると今度はSTSへのログオンすることなく、Azure上のアプリケーションが表示されます。











 ということで、今回作成した環境で本当に基礎的なクレームベースのWebアプリケーションではありますが、オンプレミスとクラウドのアプリケーションのシングルサインオンが実現出来ました。

 他にも色々とやりたい事が尽きないのですが、是非今度はOpenSSOとADFS2.0のフェデレーション環境下でオンプレミスはOpenSSO、AzureはWIF/ADFSという環境でのシングルサインオンとかにも手を出したいところです。

2010年1月14日木曜日

ADFS2.0 & WIF on AzureでオンプレミスとクラウドのSSO その2

前回のポストがtwitterで意外と反響がありましたので、取り急ぎ続きを、、ということで今回は「2.オンプレミスのアプリケーションを作成・発行する」をお送りします。


実際の流れは下記の通りです。(今回はWindows7上のIIS7.5をアプリケーションサーバとして利用しています)

1.WIFを使ったClaimベースのWebアプリケーションを作成する
2.STSへのRelying Partyの設定
3.動作確認


では、それぞれのステップについて手順を見ていきます。


1.WIFを使ったClaimベースのWebアプリケーションを作成する
 ADFS2.0を使ったPassiveFederationを行う場合、アプリケーション(Relying Party)はSSLが有効化されている必要があるため、手順書は省略しますがあらかじめローカルのIISでSSLが使える状態にしてく必要があります。(今回、アプリケーションのデプロイ先をDefault Web Siteにしましたので、あらかじめ作成した自己署名入り証明書をhttpsバインドに設定しました)

 では、早速アプリケーションの実装を行います。必要となるのは以下のステップです。
 ・参照設定の追加
 ・STS参照の追加
 ・アプリケーションの実装
 ・アプリケーションの発行

 まずはVisual Studioを管理者として実行します。(STS参照の追加をするためには管理者権限が必要です)




















 次に新しいプロジェクトを以下の通り作成します。

項目備考
プロジェクト名onpremise_pasvfedもちろん任意
プロジェクトの種類Visual C# → Webもちろん言語は任意
テンプレートASP.NET Webアプリケーション



 プロジェクトが起動してきたらソリューションエクスプローラよりWIFへの参照を追加します。追加するコンポーネントはMicrosoft.IdentityModelです。
















 次にSTSへの参照を追加します。
 同じくソリューションエクスプローラからソリューションを右クリックして出てくる「Add STS reference」メニューをクリックします。
 ※Add STS referenceが出てこない場合は管理者としてVisual Studioを実行してみてください。





















 Federation Utilityが起動してきますので、以下の通り値を設定します。
 STS側でも自己署名入りの証明書を使っているので途中証明書チェーンの確認で警告が出ますが続行してください。














ステップ設定項目設定値備考
WelcomeApplication configuration locationプロジェクトのweb.configファイル初期状態で指定されているので変更不要
Application URIhttps://windows7.eidentity.local/onpremise_pasvfed/発行先となるURIを指定
Security Token ServiceSecurity Token Service (STS) optionUse an existing STS既に作成したADFS2.0をSTSとして指定
STS WS-Federation metadata document locationhttps://adfs20.eidentity.local/FederationMetadata/2007-06/FederationMetadata.xmlADFS2.0のMetadataのエンドポイントを指定
STS signing certificate chain validation errorCertificate validation optionDisable certificate chain validationSTSが自己署名入り証明書を使っているため、証明書チェーンの確認を無効化する
Security Token encryptionSecurity Token encryption optionNo encryption



 ユーティリティが終了するとソリューションエクスプローラにFederationMetadata.xmlが追加されているのと、Web.configの内容がSTSを参照する形に変更されます。


















 次はいよいよアプリケーションの実装を行います。
 今回はSTSによって発行されるセキュリティトークンからname属性のClaimを取り出して画面上のラベルに表示する、というアプリケーションを実装します。



















 実装するコードは下記の通りです。Page_load時にトークンからClaimを取り出してClaimTypeがnameならば値を画面上のラベルに表示します。


using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Microsoft.IdentityModel.Claims;
using System.Threading;

namespace onpremise_pasvfed
{
  public partial class _Default : System.Web.UI.Page
  {
    protected void Page_Load(object sender, EventArgs e)
    {
      IClaimsIdentity caller = (IClaimsIdentity)Thread.CurrentPrincipal.Identity;

      foreach (Microsoft.IdentityModel.Claims.Claim c in caller.Claims)
       {
        if (c.ClaimType == Microsoft.IdentityModel.Claims.ClaimTypes.Name)
        {
          lbl_claim_name.Text = c.Value;
           break;
        }
      }

    }
  }
}




 ここまでくると後はアプリケーションの発行だけです。今回はローカルIIS上にアプリケーションを発行しました。
 ここまででアプリケーションの実装・発行は完了です。


2.STSへのRelying Partyの設定
  ・FederationMetadata.xmlの読み込み
  ・Claimのマッピングルールの設定

 今度はSTS側への設定です。基本的にADFS2.0のSTSはレルム指定をしたホワイトリスト型なので、あらかじめ上記で作成したアプリケーションを指定してRelying Partyを定義しておく必要があります。

 ADFS2.0の管理コンソールを開くと、「Required: Add a trusted relying party」というタスクが表示されているので、クリックしてAdd Relying Party Trust Wizardを開始します。



















 Wizardに設定する項目は下記の通りです。


ステップ設定項目設定値備考
Select Data SourceSelect an option that this wizard will use to obtain data about this relying partyImport data about the relying party from a file
Federation metadata file locationアプリケーション側のFederationMetadata.xmlファイル必要であれば予めADFSサーバへプロジェクトディレクトリ以下のFederationMetadata.xmlファイルをコピーしておく
Specify Display NameDisplay Namehttps://windows7.eidentity.local/onpremise_pasvfed/
Choose Issuance Authorization RulesRelying party's issuance authorization rulePermit all users to access this relying party



 Wizardが終わると、Claimマッピングのルールエディタが起動しますので、ルールを追加していきます。


















 Add Ruleボタンをクリックすると、Add Transform Claim Rule Wizardが起動してきますので、下記の通り値を設定します。


ステップ設定項目設定値備考
Choose Rule TypeClaim rule templateSend LDAP Attribute as ClaimsActive Directoryの属性をクレームにマッピングします
Configure Claim RuleClaim rule nameonpremise_pasvfed任意です
Attribute storeActive Directory
LDAP AttributeSAM-Account-Nameペアでマッピングさせます
Outgoing Claim TypeName



 これで一応アプリケーションもSTSも準備が整いましたので、最後に動作確認を行います。

3.動作確認

 早速アプリケーションにアクセスしてみます。ブラウザから「https://windows7.eidentity.local/onpremise_pasvfed/」にアクセスします。











 STSであるadfs20.eidentity.localへリダイレクトされますので、ドメインユーザで認証を受けます。


















 再度リダイレクトされ、アプリケーションが表示され、claim(name)が正しく取得できていることが分かります。


















 今回はオンプレミス環境でWIF/ADFS2.0を使ったClaimベースのWebアプリケーションを実装しましたが、次回はいよいよAzure上で同様のアプリケーションを実行してみます。