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

2011年12月13日火曜日

Windows Azure Active Directory


Azure 方面では大幅アップデートでお祭り状態?になっているみたいですが、ひっそりとアイデンティティ関連に関してもアナウンスがされています。
詳細はこれから徐々に出てくると思われますが、現状出ている情報から見えるところだけとりあえず。


まず、タイトルが「Windows Azure Active Directory」になっています。
http://www.windowsazure.com/en-us/home/tour/access-control/

少しずつ本文から抜粋します。
Windows Azure Active Directory is a cloud service that provides identity and access capabilities for applications on Windows Azure and Microsoft Office 365. Windows Azure Active Directory is the multi-tenant cloud service on which Microsoft Office 365 relies on for its identity infrastructure. 


Windows Azure 上のアプリケーションおよび Office365 用のアイデンティティ&アクセス機能を提供、とあります。
これまで、似たようなサービスではありましたが、全く別の基盤として稼働してきた AppFabric ACS と Office365 のアイデンティティ・プラットフォームでしたが、ついに統合?されることになりそうです。(単なるブランド統合だけかもしれませんが)

【参考】
これまでの Office365 のアイデンティティ・プラットフォーム。
ACS と同様に AD FS2.0 とのフェデレーションが出来ましたがあくまで Offce365 専用。

































こんな記述もあります。
You can enable single sign-on, security enhanced applications, and simple interoperability with existing Active Directory deployments using Access Control Service (ACS), a feature of Windows Azure Active Directory

AppFabric ACS の位置づけが明確に Windows Azure Active Directory の一機能とされています。

こんな記載もあるので、やれることとしては既存の Active Directory と一緒に使うことによって SSO などを実現、とあるのでそれほど変わらないのかと。
You can quickly extend your existing on-premises Active Directory authentication to your cloud applications through ACS. By using your existing user directory as the authoritative identity provider, users are authenticated to your cloud applications with their existing accounts.   


標準技術への対応に関する記述は以下の通り。OpenID 2.0 との記載は以前からありましたが、OpenID Provider の追加は非サポートでした。今後はどうなるのかちょっと期待。
Integrated and customizable Home Realm Discovery so users can choose their identity provider with support for Windows Live ID, OpenID 2.0, Google, Yahoo, Facebook, and enterprise providers such as Windows Active Directory.


その他ですが、最近の Azure 界隈はかなり OSS に寄っている気がします。以下の記述を見ても Ruby の記述があるあたりが OSS 開発者を強く意識しているのかな?と思います。
ACS is compatible with virtually any modern web platform, including .NET, PHP, Python, Java, and Ruby, and has out-of-the-box support for popular web identity providers including Windows Live ID, Google, Yahoo!, and Facebook. 


今回はまだリリースされている情報が少ないので、機能面ではあまり見えておらず、単なるリブランディングなのか?とも思えますが、引き続き要ウォッチです。

A Guide to Claim-Based Identity and Access Control 2.0 の eBook 版がリリース


以前のポストでも紹介したとおり、先日第2版もリリースされたお馴染み Claims Guide ですが、このたび eBook 版がリリースされています。
MSDN のサイトで公開されていたものです)

PDF でダウンロード出来るのでお手元のモバイル端末へ入れておくのが吉かと。
http://www.microsoft.com/download/en/confirmation.aspx?id=28362



2011年9月16日金曜日

Claim-Based Identity and Access Control の第2版がリリース

ずっとベータ版だった Microsoft Patterns & Practices の A Guide to Claim-Based Identity and Access Control の第2版がリリースされました。
※ちなみに第1版は書籍化もされ Amazon でも購入可能です。
 また、日本語化されて technet で公開されています。
 http://technet.microsoft.com/ja-jp/library/gg457904.aspx


以下のURLで参照およびサンプルコードのダウンロードが可能です。
 http://msdn.microsoft.com/en-us/library/ff423674.aspx


さて、気になる内容ですが大幅に増強されています。
以下が第1版、第2版それぞれの目次です。

第1版

























第2版
























大きくは、
・Windows Azure Access Control Service
・SharePoint
・RESTful Web Service
・Windows Phone
といったキーワードに関する記述が新たに増えています。

現在開催中の//build/での Windows 8 の発表にあった Windows LiveID での OS ログインや、LiveID に絡めることで デバイス間でのトークンのローミングを実現する Credentials Vault など今後も色々な機能が続々とリリースされることになりそうなので、要注目です。

2011年5月14日土曜日

フェデレーション関連情報まとめ

今日は品川方面では 2011 Microsoft Community Open Day が開催されていたようですね。本当は昨日から東京入りしている予定だったのですが、急遽予定が変わってしまったので、参加できず残念です。。

ただ、割とリアルタイムに twetter で time line を見ていたので、なんとなく雰囲気は伝わってきました。やっぱり便利ですね、twitter 。
あとは、まだ全部見たわけではないのですが、 ustream のアーカイブも公開されているようなので順番に見ていこうと思います。

横山さんのセッション

小鮒さんのセッション

村嶋さんのセッション

山内さんのセッション


で、本題ですが私は MVP としては Identity Lifecycle Manager がコンピテンシーなのでプロビジョニング関連が本職?と思いきや最近のエントリを見ても AD FS2.0 や AppFabric ACSv2 やらとフェデレーション関連の話題が多くなっています。
もちろんライフサイクル管理にしてもアイデンティティ情報のやり取り(紐付=フェデレーション)も大きな意味ではアイデンティティ管理なのでどちらが欠けても問題が起きるので実際の運用を行う上では今後はもっと注目を集めることになるのかもしれません。

そして最近はやはりクラウド、というキーワードで「疎結合」なシステム間でのアイデンティティ情報のセキュアなやり取りに注目があつまり、改めてフェデレーションに注目が集まっているのだと思われます。

ただ、やはり私もそうでしたがフェデレーションは言葉としても意味がよくわかりませんし、概念から入ってもわかりにくく、みなさん苦労をしているようです。
そういう意味で少しでも情報を整理することで私を含め理解を深められれば、ということでこれまでもこれからもフェデレーションに関する情報は発信していきたいと思います。

ということで、良い機会なのでこれまで書いてきたフェデレーション関連の情報をまとめておきます。

■ AD FS 2.0 関連
AD FS2.0 RTW のモジュールアップデート

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

[AD FS]RTWのパッケージが更新されてます

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

AD FS2.0 のデモをする時のひと工夫

[Silverlight+WIF+ADFS2.0] TechEd Japan 2010 BoF-09の資料公開など

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

Active Directory Federation Services 2.0のRTWリリース

ADFS2.0 RCリリース

クラウド時代のID管理へ? ~ADFS2.0がSAML2.0相互運用性テストにパス~

Geneva ServerのSTSとしての動作を確認

"Geneva"の正式名称発表




■ AppFabric ACS v2 関連
Windows Azure AppFabric ACSv2 でのホームレルムディスカバリ問題対策

新AppFabric ACSでサードパーティIdPと認証連携

ACSv2 正式リリース:OpenIDはどうなった?

[ACSv2]OpenID Providerを登録する

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

ACSでWindowsLiveIDを使う場合に割と普通にはまるポイント




■ クラウドとの SSO 関連
ディレクトリ同期ツールを使って Office365 へのユーザ同期を行う

AD FS2.0 で Office365 への認証連携を行う

Office365とAD FS2.0の認証連携

Office365のアイデンティティ管理

IDaaSに関して考えてみる

FIM2010 Google Appsへのプロビジョニング その2

FIM2010 Google Appsへのプロビジョニング その1

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

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

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

次期 Windows Live が OAuth 2.0 をサポート




■ その他フェデレーション
クレームの発行状態を確認する

【祝】日本語化!クレーム ベース ID およびアクセス コントロールのガイド

TechEd Europe 2010 の Identity系セッション

PDC2010でのアイデンティティ関連セッション

@IT記事:Windowsで構築する、クラウド・サービスと社内システムのSSO

TechEd2010 見どころセッション

TechEd North Americaのセッション資料

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

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

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

プロトコルとトークン形式



意外と多いですねw

2011年5月6日金曜日

次期 Windows Live が OAuth 2.0 をサポート

ACSv2 を使って Windows Live で認証をしても有効なクレーム情報が取得できない(仕様)という件を以前紹介しました。

しかし、今回 Internet Identity Workshop #12 / IIW12 の中で次期 Windows Live が OAuth 2.0 をサポートすることが発表されました。

 Windows Live チームのブログ

このことにより、ユーザが作成したサイトで Windows Live 上のユーザ属性情報を使用することが出来るようになりそうです。

先のポストの Kim Cameron 氏の件は残念ですが、こちらのアナウンスは非常に楽しみです。

2010年12月26日日曜日

ACSでWindowsLiveIDを使う場合に割と普通にはまるポイント

若干わかる人にしかわからないタイトルになっていますが、内容的にはFAQになりそうなポイントなのでいつも通り解説していきます。
環境を作る上での詳細な手順は以前紹介した内容割と普通さんの日記を参照してください。


■問題が発生する状況
AppFabric Access Control Service(ACS)を使って外部認証するアプリケーション(RP)を作りたい。※ACSはLab版
・認証(IdP)はWindows LiveIDを使いたい。

■問題
・Windows LiveIDで認証された後、クレームが取得出来ない(様に見える)
・Googleで認証するとうまくクレームの取得ができる

単純なWIFを使ったアプリケーションでPage_Loadで画面上にPage.User.Identity.Nameの値を表示するもの。











Googleで認証されると取得できる。













■原因は何か?
先に結論を言ってしまいますが、アプリケーションが使いたいクレームをWindows LiveIDが提供していないことが原因です。
通常クレームを使うアプリケーションは取得したクレームから利用者を特定するためにWIFによってプロパティに設定されるPage.User.Identity.Name変数を利用します。

しかし、この変数はClaimType=http://schemaes.xmlsoap.org/ws/2005/05/identity/claims/nameという型でクレームが発行されていないとセットされないので、Identity Providerがname属性のクレームを発行していないと変数には何も入りません。

ACSのClaim Ruleを見てみるとIdPにWindows LiveIDを選択するとInput Claim Typeにはnameidentifierの1種類しか選択できないことがわかります。













実際に発行されたトークンの中身を見てみてもnameidentifier以外のクレームは発行されていません。
トークンの中身を見るにはいくつか方法があるのですが、ここではCodePlexに公開されているSecurityTokenVisualizerを使います。(詳しい使い方は後日紹介します)











Googleで認証するとうまくいくのはGoogleがname属性を提供しているからです。













■ではどうしたら良いのか?

そもそも何故Windows LiveIDではnameidentifier以外の属性を発行していないのでしょうか?また、nameidentifier属性に入っている値は何を意味するのでしょうか?nameidentiferに入っている値から他の属性の値を取得することはできないのでしょうか?

答えはMSDNフォーラムにありました。

-----------------------------
For LiveId, the NameIdentifier is an unreversable hash of the user's Live PUID and is therefore not usable to get more information. This behavior is due to Windows Live privacy requirements. Currently one possible workaround is to manually add mapping rules to map the hash code to a specific username on ACS labs portal.
-----------------------------
要するに、
・nameidentifier属性にはWindows Live IDのPUID※のハッシュ値が入る
 ※account.live.comに表示される固有ID
・この値から他の属性の取得はできない
・これはWindows Liveのプライバシー上の理由からである
・ワークアラウンドとしては各nameidentifier属性に入るハッシュ値とユーザ名を手動でマッピングするしかない
ということです。

インターネット上のアイデンティティという話をするとどうしても避けて通れないプライバシーの問題に行き当たるようです。SAML2.0の仮名と同じ考え方ですが、特定のRPでしか使えない識別子を割り当てることによりそのユーザが他にどのようなRPを使っているかの特定、また他のRPへは提供されている属性を識別子をキーに収集して本人の同意がない形でアイデンティティを見える化されてしまうことを防ぐための仕様です。(これもまた別の機会に解説します)


結果的にフォーラムにもあるワークアラウンドを用いる形になりますが、何もACS側のマッピングにユーザの属性を個別にマッピングする必要はなく、「認証」と「ユーザ属性の管理」を分離して考えて、
・認証:Windows Live ID
・ユーザ属性の管理:アプリケーション
で実施するのが現実的だと思います。

具体的にはWindows Live IDで認証された後、取得できるPUID(のハッシュ値)をアプリケーション側のユーザテーブルと紐付けて、初めてのPUIDならユーザ情報を登録し、すでに存在するPUIDなら登録済みのユーザ情報をベースにアプリケーションを開始する、という流れになります。(Googleなど他の属性も取得できるIdPを使う場合はある程度の情報はユーザテーブルに初期値として登録してあげればよい)

このあたりはそのうちサンプルアプリケーションを作って公開でもしようかと思います。

2010年11月8日月曜日

PDC2010でのアイデンティティ関連セッション

少し時間が経ってしまいましたが先日のPDC2010のアイデンティティ関係のセッション(といっても一つだけでしたが)の概要を紹介したいと思います。

セッションはおなじみのVittorio Bertocciによるもので
Identity & Access Control in the Cloud
というタイトルのものです。
PDCのオフィシャルサイトで動画とスライドが公開されています。(同時通訳も公開されているので日本語でも聞くことができます。たぶん英語で聞いたほうがわかりやすいとは思いますが・・・。後、動画を見るとわかりますがタブレットでスライドにリアルタイムで絵をかきながらプレゼンを進めていたり、デモが多いのでスライドだけをダウンロードしても何もわからないと思います)

内容ですが、メインテーマは「アプリケーションをクラウドに移行するにあたって認証やアイデンティティをどうするか?」というもので、以下のステップで解説をしています。
1.オンプレミス・アプリケーションの認証
2.Windows Azure上のアプリケーションの認証
3.複数の企業が存在する場合
4.ソーシャルプロバイダで認証
5.他のアプリケーション用の認証
6.モバイルの例


それぞれを簡単に解説します。
1.オンプレミス・アプリケーションの認証
  自社内にデータセンタがあり、アプリケーションがある
  本人認証はActive Directoryを使うことによりアプリケーションから分離できる













2.Windows Azure上のアプリケーションの認証
  アプリケーションをWindows Azure上に持っていく
  STS(AD FS2.0)をDirectoryの上に乗せる=IdPとなる
  Claim-Basedという考え方が必要となる
  アプリケーション側にClaimを解釈する仕組み(Windows Identity Foundation=WIF













3.複数の企業が存在する場合
  HomeRealm Discoveryが必要になる
  →IdPのリストを表示することで対応する
  企業ごとにIdPを持っているのでトークンのフォーマットが異なる
  →中間にFederation Providerを配置し、トークンの変換を行う
   Microsoftが用意したのがAppFabric Access Control Service(ACS)である














4.ソーシャルプロバイダで認証
  Facebook、Google、WindowsLive、Yahoo!を例として取り上げる
  課題は、それぞれプロトコルが違う(facebook api,openid,live api...)ことである
  WIFのようなライブラリが個々のプロトコル(しかも頻繁に変わる)をサポートするのではなく、Federation Providerでプロトコルを変換する














5.他のアプリケーション用の認証
  OAuthの話
  ACSが呼び出し元となるFacebook上のアプリケーションにアクセストークンを渡す
  Facebook上のアプリケーションがAzure上のアプリケーションにトークンを渡すことでリソースを利用する













6.モバイルの例
  モバイル(Windows Phone7)上で動くSilverlightアプリケーションの認証をACS経由でFacebookで行い、Azure上のサービスを利用する
















尚、スライド上で出てくるデモについては今週ベルリンで開催されるTechEd Europeでさらに詳細に解説されるようです。
また、Windows Phone7でのデモについてはVittorioのblogで公開されています。



全体を通じて感じたことですが、PDCというDeveloper対象のイベントの性質上もあるのかも知れませんが、Identity Federationの訴求ポイントが「ソーシャルプロバイダとの連携機能を持つACSを使ったAzure上のアプリケーションを開発することにより、5億人もいるFacebookユーザをターゲットすることができる」というビジネスチャンスの拡大にあった点が印象的でした。













現状日本においてはIdentity FederationはあくまでIT管理者をターゲットに「いかにセキュアに自社のアプリケーションをクラウドに持っていくか」という点が訴求ポイントになっていることが多いと思われる中でこれは非常に印象が強かったポイントでした。(しかもマイクロソフトが公式に発言している点で)
日本では「クラウド上でアプリケーションを展開する」という段階のハードルをまずは超える必要があるからだと思われますが、新しいACSのリリースされるタイミングで同様の考え方も広がってくると面白いと思います。

2010年9月1日水曜日

@IT記事:Windowsで構築する、クラウド・サービスと社内システムのSSO

そういえば@ITさんでAD FS2.0を使ったクラウド・サービスとのシングル・サインオンを
中心としてアイデンティティ管理関連の記事を連載中です。
それなりにページビューもあるそうなので、皆様興味やニーズはあるんでしょうね。

先ほど何気にGoogleで「クラウド SSO」と検索したらその記事とこのblogが上位に来ていました。













某社のプレス発表も見えてますが。。



ちなみに現段階で公開されている記事の内容とURLは以下の通りです。

第1回 クラウド・コンピューティングとアイデンティティ管理の概要
http://www.atmarkit.co.jp/fwin2k/operation/adsf2sso01/adsf2sso01_01.html
 1.クラウド・コンピューティングの基礎と課題
 2.クラウドでのセキュリティ対策とアイデンティティ管理の役割
 3.クラウドがアイデンティティ管理システムにもたらす変化

第2回 クラウド・コンピューティング時代の認証技術
http://www.atmarkit.co.jp/fwin2k/operation/adfs2sso02/adfs2sso02_01.html

 1.アイデンティティ連携(フェデレーション)の要素技術
 2.マイクロソフトのアイデンティティに関するビジョン
 3.アイデンティティ・メタシステムの実装


第3回はまだ公開されていませんが、「クラウドサービスの活用例」として実際人AD FS2.0を使って各種クラウド・サービスとのシングル・サインオンを実装する手順を紹介する予定です。
対象サービスとして、
・Google Apps( GMail )
・Windows Live
・Salesforce.com CRM
・Windows Azure上にデプロイしたWIFを使ったASP.NETアプリケーション
・force.com


良ければ見てやってください。

2010年8月11日水曜日

新AppFabric ACSでサードパーティIdPと認証連携

現在ラボ公開された新AppFabricのACSがGoogleやFaceBookなどのサードパーティIdPに対応したということで早速試してみました。


その前にAppFabricの新機能ですが、主要な点として
・WIF(Windows Identity Foundation)との統合
・Windows Live ID、Google、Yahoo、FaceBookをIdPとしてサポート
・同じくAD FS2.0をIdPとしてサポート
・OAuth WRAP、WS-Trust、WS-Federationプロトコルのサポート
・SAML1.1、SAML2.0、SWT(Simple Web Token)トークンのサポート
・カスタマイズ可能なホームレルムディスカバリ(どのIdPで認証されるか)の統合
・ACS設定をODataベースで管理可能
・ACS設定を行うWebポータルを用意
というものが挙げられています。



今回上記の中で特にサードパーティのIdPとの連携を試してみたいと思います。

仕組みとしては、下記の図のような形になります。














では、早速試してみます。
まずは、AppFabricのラボポータルへアクセスします。

https://portal.appfabriclabs.com/


まずはLiveIDで認証された後、通常のWindows Azureなどと同じように名前空間の登録やリージョンを設定し、プロジェクトを作成します。













次に、作成したプロジェクトのAccess Control Serviceの設定を行います。
プロジェクト内のAccess Control Serviceを選択すると下記の画面が出てくるので、[Manage]をクリックします。













実はこのACSの管理ポータル自体もACSをIdPとして設定されたアプリケーションなのでサインインするためのIdPの選択画面が出てきます。初めてのアクセスだとWindows Live IDしか設定されていないので、ここはWindows Live IDでサインインします。

すると、Access Control Service自体の設定を行うアプリケーションが出てきます。
ここで以下の項目の設定が可能です。
Trust Relationship
・Identity Providers
 →IdPの設定を行します。
・Relying Party Applications
 →RP(アプリケーション)を設定します。
・Rule Groups
 →Claimのマッピングルールを設定します。

Service Settings
・Certificates and Keys
 →証明書などの設定を行います。
・Service Identities
 →名前空間内のサービスIDなどの設定を行います。

Application Code
・Application Integration
 RPのアプリケーションにACSを統合する際に使用するパラメータ等があります。
















それぞれ順番に設定を行って行きたいと思います。

1.Identity Providers
 Add Identity Providersをクリックすると以下の画面が出てきます。














 今回はAD FS2.0とGoogleを試してみます。

 まず、AD FS2.0ですが[Add]をクリックすると表示名とFederationMetadataを設定する画面が出てきますので、それぞれ設定を行います。
 注意点ですが、現状FederationMetadataを使ってしか設定ができないので、ACSからFederationMetadataが取得できる状態、つまりインターネット上に公開してあるAD FS2.0が必要です。
















 [save]をクリックするとIdentity ProviderとしてAD FSが作成されます。

 続いてGoogleを設定します。こちらは特別な設定項目は存在せず自動的に設定が行われます。(Image URLという項目がありますが、これはログイン画面に特別なイメージを表示したい場合のみ指定します)

 設定が終わるとIdP一覧が以下のようになっているはずです。











2.Relying Party Applications
 次はRPとなるアプリケーションの設定です。Add Relying Party Applicationをクリックし、アプリケーションの設定を行います。

 設定項目は、下記の通りです。
 ・name:表示名
 ・Realm:アプリケーションのURL
 ・Return URL:認証後、トークンをポストするアプリケーションのURL
 ・Token format:トークンのタイプ
 ・Token encryption:トークンの暗号化設定
 ・Token lifetime:トークンの有効期間
 ・Rule groups:Claimマッピングルールのグループ

 今回はローカルIISで動かすASP.NETアプリケーションを考えていますので、
 ・name:test-rp
 ・Realm:http://localhost:20000/
 ・Return URL:http://localhost:20000/
 ・Token format:SAML 2.0
 のみを設定します。
















 [Save]をクリックして設定を保存します。


3.Rule Groups
 次はClaimのマッピングルールの設定です。

 先ほどRPを設定するときにCreate New Rule Groupがデフォルトで指定されているので先ほどのRP用のRule Groupが「Default Rule Group for test-rp」という形で自動的に作成されています。

 そのグループを開き、[Generate Default Rules]というボタンをクリックすると現在設定されているIdPに関して自動的にパススルーするルールが作成されます。















 最後に忘れずに[Save]をクリックすればRule Groupの設定は完了です。


4.Certifications and Keys
 次はトークン署名に使う証明書の設定です。

 自己発行証明書でも構わないので.pfxファイルをアップロードします。
 これがACSが発行するトークンの署名に利用されます。

 設定項目は以下の通りです。
 ・Name:表示名
 ・Used for:利用用途(トークンの署名もしくは暗号化)
 ・Type:証明書のタイプ
 ・Certificate:証明書

 今回は以下の通り設定します。
 ・Name:My Cert
 ・Used for:Token Signing
 ・Type:X.509 Certificate
 ・Certificate:作成したpfxファイルとパスワード

 [Save]をクリックし設定を完了します。
















ここまででACS側の設定は完了です。
ここからはRPとなるアプリケーションを作成していきます。

Visual Studio 2010を管理者として起動し、ASP.NET Webアプリケーションを作成します。
※今回は.NET Framework3.5をベースにプロジェクトを作成しましたが、.NET Framework4.0をベースに作る場合は後でWeb.configにhttpRuntime requestValidationMode="2.0"を書いてあげる必要があります。

実装・設定するのは以下の3点だけです。
1.URLの設定
  →今回Visual Studioのデバッグ用アプリケーションサーバとしてテストを行いましたのでポート番号を固定し、ACS上のURLと整合性を取ります。
2.STS参照の追加
  →ACSのFederationMetadataの読み込みを行い、このアプリケーションの認証はACSが行うように設定します。
3.Claimを表示するコード
  →今回は単純にわたってきたClaimをラベルに表示させます。



1.URLの設定

 ソリューションのプロパティからVisual Studio開発サーバのポートを先ほど指定した20000に設定します。














2.STS参照の追加














 以下の設定を行います。
 アプリケーションURL:http://localhost:20000
 STS Federation Metadata:https://[プロジェクト名].accesscontrol.appfabriclabs.com:443/FederationMetadata/2007-06/FederationMetadata.xml
 ※ACSポータルのApplication Integrationにエンドポイントアドレスは記載されています。

















3.Claimを表示するコード

 画面にラベルを張り付けてテキストにname属性を表示するコードを書きます。

 ここでは単純にPage_Loadに
  lbl_name.Text = Page.User.Identity.Name
 とコードを書いています。
















いよいよ実行です。
今回はVisual Studioの開発サーバを使うので、そのままF5を押してデバッグ実行です。

まず、ホームレルム(認証を受けるIdP)を選択する画面にリダイレクトされますので、AD FS2.0を選んでみます。





















AD FS2.0のログイン画面にリダイレクトされ、認証を受けるとアプリケーションに戻り、name属性が表示されます。









































次はGoogleを選択してみます。
Googleのログイン画面にリダイレクトされ、認証を受けるとアプリケーションに戻り、name属性が表示されます。









































いかがでしょうか?
当然RPを増やしていけばAppFabric ACSが発行(変換)したトークンを使いまわせるのでシングルサインオン環境の構築も容易です。

要望があるとすれば、現状ではAD FS2.0をIdPとする時にFederationMetadataを読み込む形でしかIdP設定ができないので、どうしてもインターネット上にAD FS2.0を公開する必要が出てきてしまいます。これを手動での登録、もしくはFederationMetadata.xmlのアップロードという形での対応ができればよりイントラ~インターネットの連携がしやすくなるのでは?と思います。

あとは早くラボではなく正式にリリースがされるのを期待しています。

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関係者の皆さんお疲れさまでした!

2008年12月12日金曜日

ASP.NETでOpenID対応サイト作成

PerlやPHPでのOpenID対応サイトの作り方は結構あるので、ASP.NETで作ってみました。
OpenIDのライブラリはGoogleが公開しているものを以下からダウンロードしました。
http://code.google.com/p/dotnetopenid/downloads/list

開発環境は、
OS:WindowsXP Pro SP3
IDE:Visual Studio 2005 Professional Edition
.NET Framework:2.0.50727
です。

以下の手順で作成・確認します。
1.Visual Studioで新規Webアプリケーションを作成








2.参照設定にGoogleからダウンロードしたライブラリ(DLL)を設定









3.ツールボックスにダウンロードした部品(OpenIdLogin)を追加し、Webページに追加








ツールボックス→右クリック→アイテム選択→参照より先ほどのDLLを追加する。








Webページ上へOpenIdLoginをドラッグ&ドロップする。










4.認証状態を表示するための部品(ラベルなど)をWebページに追加








ページがロードされたときに状態をラベルに表示するため、以下のコードを追加する。(Default.aspx.vb)

Partial Class _Default
Inherits System.Web.UI.Page

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Lbl_UserID.Text = User.Identity.Name
lbl_IsAuthenticated.Text = IIf(User.Identity.IsAuthenticated, "True", "False")
End Sub

End Class


5.フォーム認証を使う様に環境を設定

WebサイトメニューよりASP.NET構成を開き、Webサイト管理ツールより、
セキュリティ→認証の種類の選択のリンクをたどり、ユーザがサイトにアクセスする方法を「インターネットから」へ変更する。









6.ビルド、テスト

実行すると、認証前の状態ではUserIDは空白、IsAuthenticatedはFalseになっているので、先日紹介したWindowsLiveのOpenIDを入力してLoginをクリックする。









WindowsLiveの認証ページへリダイレクトされるので、パスワードを入力してサインインする。









認証が成功すると、UserIDにOpenID、IsAuthenticatedにTrueが返される。











とりあえずということもあり単純にログインおよび状態の表示のみをしましたが、その他の機能もそのうち使ってみたいと思います。

2008年10月29日水曜日

Windows Live IDがOpenIDをサポート

なかなか時間がとれずILM"2"に触れていないのでニュースから。



関連URL:
http://winliveid.spaces.live.com/blog/cns!AEE1BB0D86E23AAC!1745.entry?wa=wsignin1.0

早速試してみました。 Windows Live IDはすでに取得しているので、https://login.live-int.com/beta/ManageOpenID.srfへアクセスしてサインイン(右)



LiveIDに紐付されたOpenIDが表示されます(初回はエイリアスを登録します)









このOpenIDをコピーして、サンプルRPサイトへアクセス。
http://openidenabled.com/ruby-openid/trunk/examples/consumer

先程のOpenIDを入力してVerify。




Windows Live IDの認証ページへ




















Verification of http://openid.live-int.com/xxxx succeeded.
と表示されればめでたしめでたし。