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

2010年11月9日火曜日

TechEd Europe 2010 の Identity系セッション

TechEd Europe 2010がが今週(11/8-12)でベルリンで開催されています。
















さすがに日本での開催とは規模が違い、多くのIdentity関連のセッションが用意されています。
少しピックアップしてみました。これからセッション資料やビデオなども公開されるようなので公開されたら見て紹介してみたいと思います。
Office365のAD FS2.0を使ったフェデレーションなんかは今後日本でもニーズが出てきそうなので要チェックかと思います。

ARC303 - Architecting Claims-Aware Applications (with the Windows Identity Foundation and Active Directory Federation Services)
Claims, Tokens and (possibly) Federation are the new ways to model authentication, access control and personalization for distributed applications. The possibilities for these technologies are vast, but there are some well-established patterns to fit typical security scenarios. These include guidelines for the usage of claims, identity providers, resource security token services, federation gateways and multi-tenancy. This talk walks you through common application architectures and illustrates how to use the Windows Identity Foundation (WIF) and Active Directory Federation Services (ADFS) to tap into the power of claims-based security

COS302 - Office 365: Identity and Access Solutions
This session provides a preview of the identity and access solutions in the next generation of the Business Productivity Online Standard Suite (Office 365). The session will focus on how authentication works for both web apps and rich client apps, how to enable single sign-on (SSO) using corporate AD credentials and AD FS 2.0 to Office 365 services, and the different SSO deployment options for Office 365 services.

OFS308 - Deploying Microsoft SharePoint Server 2010 with Claims Authentication
This session will walk you step-by-step through the process of configuring a SharePoint web application to use SAML claims and ADFS v2. It will cover some basic usage scenarios, and describe specifically how they impact sites using SAML claims and how to implement common changes in a SAML claims environment. The session will also include some basic troubleshooting steps to help you understand why users may not be able to log on to a SAML claims site

SIA203-IS - Interactive Discussion on Identity Futures with Microsoft Program Managers
What does Identity mean to you? Do you want to influence the future of Microsoft's Identity offerings? This highly interactive, discussion-based session provides a unique opportunity to share real-world requirements and understand how your priorities align with those of other TechEd attendees. Members of Microsoft's Identity and Access product team will be on hand to absorb your feedback first-hand, and to guide participants through a fast-paced discussion covering a wide range of topics

SIA301-IS - Under the Hood: What Really Happens During Critical Active Directory Operations
Come and discuss critical Active Directory-Operations. Are you fully aware what “critical” operations in AD really do? In this interactive session we will talk about those operations, understanding what they are doing and how to distinguish whether operations are critical to your environment or not. Ulf has been working in the field for more than 13 years, and has a lot of notes and examples to share. We will talk about how to approach challenges, and study scenarios that show how other companies managed the associated risks and prepared for rollbacks. We have some common scenarios for everyone but please bring your own questions as well, as we want this talk to be as interactive as possible

SIA303-LNC - Common Identity Across On-premises, Private and Public Cloud
See how Forefront Identity Manager is used to provide self-service delegated management of on-premises and private cloud datacenter resources. You will learn how Forefront Identity Manager, Active Directory Federation Services and Windows Identity Foundation are being integrated to provision users and provide access to application services in the cloud (Azure and BPOS), and also how to configure FIM to ensure that quality identity data is available to these applications, and how users can perform self-service claims management

SIA305 - Windows Identity Foundation and Windows Azure for Developers
Claims-based identity provides an open and interoperable approach to identity and access control that can be applied consistently, both on-premises and in the cloud. Come to this session to learn about how Windows Identity Foundation can be used to secure your Web Roles hosted in Windows Azure, how you can take advantage of existing on-premises identities, and how to make the best of features in our cloud offering, such as certificate management and staged environments. This is an ideal session for developers

SIA306 - A Dozen Years AD - Discuss Previous and Future Design Decisions
Active Directory has evolved over the years, along with security recommendations and best practices. But has our corporate design changed that much? Is it required? What should we change, and what should we retain? Ulf B. Simon-Weidner is a long standing, internationally recognized expert in Active Directory, and in this session he will discuss Active Directory Designs of the past, present and future

SIA311 - Deploying and Managing Forefront Identity Manager 2010
Forefront Identity Manager 2010 is a powerful product that includes many features across multiple platforms. Deploying and managing FIM requires broad domain knowledge in technologies like Active Directory, SharePoint, Exchange, SQL, Windows Communication Foundation, Workflow Foundation and ILM 2007. This session covers the basic approaches, “tips and tricks”, and common problems faced by customers. It includes best practices for managing and deploying FIM, based on the knowledge and experience of the product team and work done with Microsoft IT. This is the session for attendees who plan to deploy, configure or administer FIM

SIA313 - Cloud Security: The Practical Meaning of Security, Identity and Access Revealed!
The CLOUD is coming. But let’s face it, you must have asked yourself if it possible to hack the claims? How can we prevent this? One thing is sure: moving from on-premises applications to the cloud is like moving from a home generator to the electricity grid. We put our trust in the external identity providers, but are we really sure that all of the security issues have been addressed? We focus on the application in the cloud, but is this really the application that we need to protect? New solutions bring new possible attack vectors, and not only from the outside! Come and see what can happen when the users, or even the administrators, become the bad guys.During this intensive and extremely practical session, presenters will guide you through the threats and challenges related to the industry standard- based services delivered by ADFS v2. Only real-life scenarios! Many practical demos!

SIA316 - Exploring the Possibilities of Forefront Identity Manager 2010: Meeting Business Requirements Through Customization
Forefront Identity Manager 2010 provides a sophisticated platform for enforcing policy in an organization. Often it is necessary to extend FIM to enable some business policies, and this is your opportunity to learn about techniques for extending FIM to meet your specific business requirements. This session introduces the recommended patterns for creating custom web service clients and workflow activities, and includes code examples for each that accomplish common scenarios, such as group management and authorization workflows. The session is designed for developers who are already familiar with FIM, and plan to extend FIM.

SIA318 - Windows Identity Foundation in the Real World
Are you wondering how customers are adopting Windows Identity Foundation (WIF) in the real world? What challenges do they face? What solutions are they implementing? This session presents a series of best practices collected, and lessons learned, during the implementation of large WIF solutions in the real world. We have included a series of practical demonstrations that illustrate how to address important aspects of WIF-based solutions, such as monitoring, scalability, testing, and claim and record management, among many others. Additionally, we will present three case studies that demonstrate how customers are leveraging these solutions to facilitate the implementation of WIF in the enterprise.

SIA320 - Impact of Cloning and Virtualization on Active Directory Domain Services
Customers are looking to further virtualize their environments: file servers, web servers, DNS servers and even their domain controllers. It is clear that virtualization provides many benefits in areas such as deployment, disaster-recovery and lowering TCO. However, while virtualization offers many powerful capabilities and greatly simplifies repetitive tasks, it is a technology that must be handled with care when used in conjunction with Active Directory. In this session we will review fundamental concepts within Active Directory and the impact of cloning & virtualization upon domain controllers, domain members and Windows in general. We will also discuss how to best leverage virtualization, and how to both mitigate problems and to avoid occurrences in the first place.

SIA321 - Explore Secure Collaboration Using Identity Federation in Forefront UAG Service Pack 1
Supercharge your federation solution with Forefront UAG SP1! Learn how UAG can simplify migration to a claims-aware environment, enabling secure, seamless access to all your applications. We will cover what is new in UAG SP1 and look at secure collaboration scenarios and federation via AD FS 2.0. We will demonstrate federation with legacy applications, by translating claims to Kerberos, and enforcing authorization at the edge level

SIA402 - Active Directory Federation Services - How do they really work?
Secure applications must be able to “trust” the identity of users who are accessing the resources. It is simple to establish that trust when Active Directory Windows authentication is used. And if the application needs further identity information about the user in order to qualify its response, the additional properties can be read from the Active Directory. When the application resides outside your realm, maybe in the Cloud or within a partner organization, how do we establish trust? This is where Active Directory Federation Services (ADFS) provides a method of linking trust between disparate parties. One organization authenticates the user and creates an industry standard token that contains the Identity of the user in the form of claims. The receiving organization accepts the user’s identity and responds with the appropriate resources because of the established trust. Come to this deep dive, demo rich session and learn how to setup and leverage the true power of ADFS v2

SIA403 - How to (un)Destroy your Active Directory
As a consultant with 10 years of experience in troubleshooting ADDS and as MVP for Directory Services, I prepared an ADDS with the top 10 errors - all at the same time. During this session we will fix it step-by-step, while explaining the reason why this happened and how it can be avoided next time

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年10月20日水曜日

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

AD FS2.0(Active Directory Federation Services 2.0)はクラウド連携というビッグキーワードも手伝ってかなり注目されているのか、最近は色々なところでセミナーやデモを見かけるようになってきました。

ただ、シングルサインオンのデモって非常に地味なんですよね。
ターゲットのアプリケーションにアクセスして、一瞬AD FS2.0へリダイレクトされて統合Windows認証でそのまま元のページへトークンをPOST、ログイン完了という流れにどうしてもなってしまうので、本当にAD FS2.0を使っているかどうかが全然見ている人には伝わりません。

私もデモをする時に同じ悩み?を持ち、ブラウザの統合Windows認証をオフにしたり、インターネットオプションの「ローカル イントラネット」からAD FS2.0のサーバやドメインを削除したりしましたが、ベーシック認証が走ってしまったりしてやはりあんまりうまくありませんでした。
とにかくデモ映えするには明示的にAD FS2.0のログインページにIDとパスワードを入力する、というステップがあった方が良いと思ったので、デフォルトでフォーム認証を使うようにしてみました。

手順は若干強引ですが、AD FS2.0も単なるWIF(Windows Identity Foundation)を使ったASP.NETアプリケーションである、という点に着目してログインページのweb.configファイルを直接編集します。

デフォルトインストールだと「C:\inetpub\adfs\ls\web.config」が編集対象となります。

編集箇所は59行目から始まるmicrosoft.identityServer.webセクションのlocalAuthenticationTypesです。
デフォルトだと

 <add name="Integrated" page="auth/integrated/" />
 <add name="Forms" page="FormsSignIn.aspx" />

という順番でまずIntegratedつまり統合Windows認証が使われるようになっていますが、これを

 <add name="Forms" page="FormsSignIn.aspx" />
 <add name="Integrated" page="auth/integrated/" />

という形でFormsつまりフォーム認証を優先する形に行を入れ替えてみます。

■編集の結果
 <microsoft.identityServer.web>
  <localAuthenticationTypes>
   <add name="Forms" page="FormsSignIn.aspx" />
   <add name="Integrated" page="auth/integrated/" />
   <add name="TlsClient" page="auth/sslclient/" />
   <add name="Basic" page="auth/basic/" />
  </localAuthenticationTypes>

これでファイルを上書き保存するとフォーム認証が優先されるのでAD FS2.0の認証ページにリダイレクトされた際にIDとパスワードを入力するフォーム認証画面が表示されます。
※web.configのバックアップは忘れずに!
















これで少しはイメージのしやすいデモが出来ると思います。

2010年9月23日木曜日

FIMの本、WIFの本

洋書ですが要チェックな本を紹介します。

まずはFIMの本です。先日も紹介した本ですが、MVPのDavid Lundellさんの作です。

FIM Best Practices Volume 1: Introduction, Architecture And Installation Of Forefront Identity Manager 2010




















分散でのFIMの構成方法など非常に詳しく記載されているので、実際の業務環境にFIMを導入する際には非常に役に立つ本だと思います。
オンデマンド印刷の形で販売されているので一般書店やAmazonには流通しないと思いますので、ここで購入する形になります。
オーダーしてから2週間程度で届きました。

もちろん日本語なら青本も必携ですが。


次にWIF本です。
こちらはMicrosoftのVittorio Bertocciさんの作でAmazon.co.jpでも購入できます。

目次を見るとWIFそのものの動きに関する章からASP.NETでのプログラマ向けの章、Windows AzureやWCFへの組み込みの話まで非常に有用な内容が目白押しです。
ちなみに9月初旬に発売されているのですが、まだ手元には届いていません。。。














2010年8月17日火曜日

TechEd2010 見どころセッション

いよいよTechEdが来週に迫ってきました。今年はクラウド一色と言っていいほどAzureやOnline Servicesのセッションが目白押しです。

中でもクラウド x アイデンティティ = フェデレーションということでAD FS 2.0関連のセッションは個人的には要注目だと思っています。

■AD FS 2.0関連のテクニカルセッション

8/25 15:20~16:30
T1-304 次期 Microsoft Online Services の ID およびアクセス管理 ~ AD FS 2.0 によるシングル サインオンの実現 1 ~

8/26 16:55~18:05
T3-304 AD FS 2.0 のアーキテクチャと Windows Azure 連携の実装 ~ AD FS 2.0 によるシングル サインオンの実現 2 ~


また、一つだけですがFIM関連のセッションもあります。AD FSなどのIdPの情報鮮度を保つためには重要な機能です。

■FIM関連のテクニカルセッション

8/27 16:55~18:05
T3-302 ポリシー ベースで ID 管理を実現する! ~ Forefront Identity Manager 2010 実践的構築手法 ~



後、僭越ながら私もBoF(Birds of a Feather)とLT(ライトニング・トーク)で登壇させていただきます。いずれもAD FS 2.0とWIF(Windows Identity Foundation)関連ですが、デモも交えていろいろとお見せできれば、と思っています。

■BoF (Birds of a Feather)

8/27 10:55~12:05
BOF-09 Silverlight と WIF (Windows Identity Foundation) のアプリケーション連携

Silverlightアプリケーションの認証を外部AD FS2.0で実施するにあたり WIF をどのように使うか?という点を実際のコードや環境を交えて解説したいと思います。
ポイントは IdP を2つ用意して異なる企業間での認証連携を行うところ、および意外と面倒くさいSilverlightアプリケーションの認証の解説だと思っています。

ちなみにSilverlightSquare@hr_saoさんとのコラボです。

■LT (ライトニング・トーク)

8/27 16:55~18:05
LT-03 Azure 上のアプリケーションとのシングル サインオン!

こちらは本blogでも紹介したネタ(これこれ)をベースにデモを中心に動きを解説したいと思います。
出来ればWindowsクライアントじゃない端末を使ってデモが出来れば、、と色々と画策中です。

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年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月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年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という環境でのシングルサインオンとかにも手を出したいところです。