2011年7月26日火曜日

ACSはアクセス制御サービス

Windows Azure AppFabric の July 2011 Release でまたまたダイナミックにサービスが拡張されています。

ポイントは、以下の通りです。

■AppFabric 全体
・ローカライズ
 日本語、ドイツ語、簡体字中国語、繁体字中国語、フランス語、イタリア語、スペイン語、韓国語、ロシア語、ポルトガル語が新しくサポートされ英語を合わせて全部で11の言語がサポートされました。

・複数管理者のサポート
 複数のアカウントでサービスの管理を行うことが出来るようになりました。

■ACS
・入力条件として2つまでのクレームをサポート
 入力トークンの判別条件として2つまでのクレームを利用できるようになりました。
 ※これは別途詳細を書きたいと思います。

・OAuth2.0のレスポンスのエンコードとしてUTF-8をサポート
 これまではUS-ACIIのみでしたがUTF-8が利用できるようになりました。

・クォータ制限の廃止
 Identity Providerなど同一ネームスペース内に作成するオブジェクト数の制限が撤廃されました。



ACSのクレーム変換ルールの変更はルール記述のやり方に結構インパクトがありそうなので別途エントリで紹介したいと思いますので、今回はローカライズについて。


■管理ポータル











■ACSの管理画面















・Identity Provider = ID プロバイダ
・Relying Party = 証明書利用者アプリケーション
・Rule Group = 規則グループ
なんですね。
AD FS2.0とはあわせなかったあたりがww、、な感じです。

2011年7月24日日曜日

MCTS:Forefront Identity Manager 2010, Configuring

少し前にUSのMCTS試験チームからアンケートがあり、FIM2010のMCTS試験が始まることは知っていたのですが、ようやくベータ版試験が提供され始めたようです。(といっても日本のプロメトリックからは申し込めませんが。。。)

71-158, TS: Forefront Identity Manager 2010 beta

7/15から8/4限定の申し込みのようですので、もしベータ試験の提供されている地域に住んでいらっしゃれば申し込んでみては?

ちなみに試験準備ガイドも提供されています。
http://www.microsoft.com/learning/en/us/Exam.aspx?ID=70-158&Locale=en-us#tab3

内容は以下の通りです。
Planning a FIM Implementation and Installing FIM
  • Plan and design FIM topology.
    • This objective may include but is not limited to: identify single point of failure; match topology to performance requirements; capacity planning; design highly available implementations for FIM Service and Portal
  • Install the FIM Service and the FIM Portal.
    • This objective may include but is not limited to: Microsoft SharePoint web configuration; service account permissions; prerequisites; certificates; groups
  • Upgrade Microsoft Identity Integration Server (MIIS)/Microsoft Identity Lifecycle Manager (ILM) to FIM 2010.
    • This objective may include but is not limited to: plan for upgrade; recompiling extensions; upgrading SQL databases; upgrading third-party clients
  • Deploy and manage client components.
    • This objective may include but is not limited to: automated installs; client images; multilanguage support installation; plan for configuration of Microsoft Outlook for group management (Outlook plug-in for approvals and group management); use Group Policy objects (GPOs) to manage FIM client components; registry settings on client machines
  • Implement disaster recovery for FIM 2010.
    • This objective may include but is not limited to: backup and restore; FIM Service, FIM Portal; Sync Service; initial load scenarios; key backup and recovery
Planning and Configuring Core Portal Functionality
  • Plan and configure user and group provisioning.
    • This objective may include but is not limited to: provisioning to Active Directory; deprovisioning; data-driven provisioning and deprovisioning; configure Management Policy Rules (MPR) /workflow/sync rule triples required for provisioning in the portal; expected rule entries; detected rule entries; workflow parameters
  • Plan and configure group management.
    • This objective may include but is not limited to: configure dynamic groups (query-based) in the portal; owner-based groups and approvals; distribution groups; security groups
  • Plan and configure synchronization rules.
    • This objective may include but is not limited to: inbound and outbound sync rules; create objects in metaverse using declarative rules; advanced attribute flows; relationships
  • Plan and configure authorization and action workflows.
    • This objective may include but is not limited to: configure approvals including multiple approvals and escalations; notifications; deploying and configuring custom workflow activities
  • Plan and configure security permissions and Management Policy Rules (MPRs).
    • This objective may include but is not limited to: delegated administration; plan and implement user profile self-service; plan and implement group self-service; temporal objects; sets and set membership
Configuring Advanced Portal-Based Scenarios
  • Configure the Resource Control Display Configuration (RCDC) for object and attribute display.
    • This objective may include but is not limited to: RCDC capabilities; validations; attribute permissions; data sources and data binding; form controls
  • Customize the user experience.
    • This objective may include but is not limited to: search scopes; menu navigation items; organizational branding; home page configuration; create and configure email templates; usage keywords
  • Extend the portal schema.
    • This objective may include but is not limited to: resource types; attributes; bindings; schema validation; synchronization filter
  • Plan and configure self-service password reset and registration.
    • This objective may include but is not limited to: authentication workflow for password reset and registration; QA gates; case sensitivity; lockout gates; password reset action workflow activity
  • Write and interpret XPath queries.
    • This objective may include but is not limited to: create valid FIM XPath filters; reference objects and attributes; filters; conditions
Configuring FIM Synchronization
  • Create and configure standard management agents (MAs).
    • This objective may include but is not limited to: SQL Server MA; Certificate Management MA; Active Directory MA; file-based MAs; difference between call-based and file-based MAs; attribute flows; filters; projection rules; join rules; deprovisioning rules
  • Create and configure the FIM Service MA.
    • This objective may include but is not limited to: resource type mapping; Synchronization Rule filter; understand the constraints of the FIM MA; attribute flow
  • Configure the metaverse.
    • This objective may include but is not limited to: plan precedence; extend the schema; object deletion rules
  • Create and automate run profiles.
    • This objective may include but is not limited to: clearing run history; multistep run profiles; run sequencing
  • Implement rules extensions.
  • Install and configure password synchronization and Password Change Notification Service (PCNS).
    • This objective may include but is not limited to: configure Active Directory MA; install services on domain controllers; schema changes related to PCNS; service principal names
Monitoring and Maintaining FIM
  • Migrate the FIM configuration between environments.
    • This objective may include but is not limited to: FIM portal configuration; DLLs and code; synchronization service server configuration; run scripts and automation tools; PowerShell scripts; how to move configurations from development to test to production
  • Perform root cause analysis of provisioning issues.
    • This objective may include but is not limited to: issues with management policy rules, set definitions, workflows, and expected rule entries; misconfiguration of synchronization service server; coexistence of classic provisioning and declarative provisioning; result sequence
  • Perform root cause analysis of issues related to password management.
    • This objective may include but is not limited to: issues with password synchronization and; self-service password reset; requirements for registration; end-to-end process
  • Perform root cause analysis of issues related to data flow and unexpected data.
    • This objective may include but is not limited to: data discovery issues; join issues; filter issues; run profile issues; threshold issues; Stack trace; precedence issues; object deletion rules
  • Perform root cause analysis of permissions issues.
    • This objective may include but is not limited to: MPR definitions; set definitions; portal permission errors; service account permissions; provisioning issues; synchronization service server roles

2011年7月17日日曜日

[ACSv2] Powershell で ACS を管理する - その2 -

前回のポストで紹介した PowerShell のコマンドレットで ACSv2 の Management Service を操作する方法の件ですが、早くも CodePlex にコマンドレットの新版が公開されました。

以下の点が変更されています。

■複数形での指定がなくなった
PowerShell のお作法にのっとり、Get-hogehoge*s* ではなく Get-hogehoge で引数を省略することで対象をすべて取得する

例えば、登録されているIdPをすべて取得する場合、以前のバージョンでは
 Get-IdentityProviders
を使っていましたが新版では特定のIdPの情報を取得する際に使っていた
 Get-IdentityProvider
に -Name で IdP 名を指定せずに使うことになります。

特定の IdP の情報を取得する(旧版と変わらず)
 Get-IdentityProvider -Namespace xxxx -ManagementKey yyyy -Name zzzz
登録されている IdP をすべて取得する(旧版では Get-IdentityProviders)
 Get-IdentityProvider -Namespace xxxx -ManagementKey yyyy

■100以上のエントリ取得に対応
旧版では100以上のエントリが存在している場合は情報の取得ができませんでしたが、新版では改善されているようです。

■ServiceIdentity および ServiceIdentityKey に関するコマンドレットの追加
旧版では ServiceIdentity および ServiceIdentityKey に関する操作が出来ませんでしたが以下のコマンドレットが追加され、操作を行うことが可能となりました。

以下が新しく追加されたコマンドレットです。
種別コマンドレット名概要引数説明
Service IdentityAdd-ServiceIdentityService Identity を追加する-ServiceIdentityService Identity オブジェクト
-NameService Identity 名
-Description説明
Get-ServiceIdentityService Identity 情報を取得する-NameService Identity 名
Remove-ServiceIdentityService Identity を削除する-NameService Identity 名
Service IdentityKeyAdd-ServiceIdentityKeyService IdentityKey を追加する-ServiceIdentityKeyService IdentityKey オブジェクト
-NameService IdentityKey 名
-ServiceIdentityName対象 Service Identity 名
-Key対象鍵(256bit)
-Password *1パスワード
-Certificate *1X.509 証明書
-EffectiveDate *1開始日
-ExpirationDate有効期限
Get-ServiceIdentityKeyService IdentityKey 情報を取得する-IdService IdentityKey の Id
-ServiceIdentityName対象 Service Identity 名
Remove-ServiceIdentityKeyService IdentityKey を削除する-IdService IdentityKey の Id
-ServiceIdentityName対象 Service Identity 名

*1) Key / Password / Certificate はどれかを選択

■Add-系のコマンドレッドの引数にGet-系で取得したオブジェクトを指定可能となった
例えば$RP = Get-RelyingParty -Name xxx ... で取得したオブジェクト($RP)を Add-RelyingParty -RelyingParty $RP ... という形で指定できるようになっています。このことで特定 NameSpace に設定されている Relying Party をそのまま別の NameSpace へコピーすることが出来るようになっています。


■設定のバックアップ/リストア用のサンプルスクリプトの提供
これは直接はコマンドレットではないのですが、セットアップしたフォルダ配下に設定のバックアップやリストアを行うためのサンプルが提供されています。

バックアップ用:ExportNamespace.ps1
リストア用:ImportNamespace.ps1



これで、Web管理画面からできることはあらかた出来るようになってきました。
自動化や手順化をする上では非常に役立つツールだと思います。

2011年7月8日金曜日

[ACSv2] Powershell で ACS を管理する

久しぶりのポストとなってしまいました。

以前 OpenID Provider を ACSv2 に登録するための GUI クライアントを公開しました。
http://idmlab.eidentity.jp/2011/03/acsv2openid-provider.html
http://idmlab.eidentity.jp/2011/04/acsv2-openid.html

その後 ACSv2 が正式にリリースされたことを受けてラボ版とは別に正式リリース版の ACSv2 用の GUI を含め以下のURLで公開をしました。(5月の初めにリリースしましたが blog に書くのを忘れてました)
http://sourceforge.net/projects/acsv2management/files/

ラボ用:ACSv2_Config.ZIP
正式リリース用:ACSv2_Config_for_Prod.zip


そんな中、これも少し前になりますが Vittorio が CodePlex に PowerShell のコマンドレットを公開しています。
http://blogs.msdn.com/b/vbertocci/archive/2011/05/17/announcing-sample-acs-cmdlets-for-the-windows-azure-appfabric-access-control-service.aspx
http://wappowershell.codeplex.com/releases/view/66308#DownloadId=240649



ACSv2 が正式にリリースされた時にも書きましたが結局 OpenID Provider をサポートした、と言っても Web の管理画面から管理をすることが出来ないので、上記 GUI や Powershell を使って ACS の Management Service を直接操作するしか方法がありません。

GUI の操作は以前紹介したので、今回は PowerShell のコマンドレットを使って ACS を操作する方法を紹介します。


■ ACS の Management Service の基本概念
その前にまずは ACS の Management Service を操作するときの基本的な考え方を整理しておきます。

基本は WCF Data Services を使って ACS Management Service を操作するので、サービス参照をしてクライアントを生成して用意された API を実行していく、というスタイルです。

また、サービスを使う際は ACS の Management Service 用のユーザとパスワードで事前に認証を受けておきます。
流れは、
1.認証:[マネージメントサービスのエンドポイント]/v2/OAuth2-13 へユーザ名とパスワードを POST し、 SWT(Simple Web Token)を取得する
2.認可:取得した SWT を HTTP の Authorization ヘッダに Bearer トークンとして付加してアクセス
です。

その後は実際のメソッドを実行して各種操作(例えば作成した IdP に RP を紐付ける場合であれば AddToRelyingPartyIdentityProviders )を行う、という形です。


■ Powershell コマンドレットのセットアップ
ただ、毎回これを実行するのはかなり面倒なので、上述の GUI や Powershell が活躍するわけです。今回は Powershell 版の使い方です。

まずは CodePlex からダウンロードしたモジュールをセットアップしますが、前提となるソフトウェアは、
・Powershell
・.NET Framework 3.5 SP1
・Windows Identity Foundation Runtime
・ADO.NET Data Services Update for .NET Framework 3.5 SP1
です。

これらがインストールされているマシンにダウンロードしたモジュールを解凍、セットアップファイルを実行するとコマンドレッドが組み込まれます。

(セットアップ画面)














■ 用意されているコマンドレッド
以下のコマンドレットが用意されています。Web 画面を知っていれば各パラメータが何を指しているのかは理解できると思います。
利用するときは Add-PSSnapin ACSManagementToolsSnapIn を実行してスナップインを組み込みます。

種別コマンドレット名概要引数説明
共通Get-AcsManagementTokenManagementServiceへアクセスするためのトークンを取得する-NameSpaceACSv2のネームスペース名
-ManagementKeyManagement Service用のパスワード
IdPAdd-IdentityProviderIdentity Providerを追加する-type定義済みかカスタムか
-PreconfiguredIpType定義済みの場合のタイプ
-NameIdP名
-AllowedRelyingParties紐付けるRP
-LoginLinkTextホームレルムディスカバリ時のリンク文字列
-FbAppIdFacebookの場合のApplicationID
-FbAppSecretFacebookの場合のApplicationSecret
-WsFederationMetadataws-federationのmetadata
-Protocolプロトコル
-SignInAddressサインインアドレス
-SigningCertificateトークン署名の証明書
-NameSpaceACSv2のネームスペース名
-ManagementKeyManagement Service用のパスワード
-MgmtTokenGet-AcsManagementTokenで取得したトークン
Get-IdentityProviderIdentity Provider情報を取得する-Name取得対象のIdP名
-NameSpaceACSv2のネームスペース名
-ManagementKeyManagement Service用のパスワード
-MgmtTokenGet-AcsManagementTokenで取得したトークン
Get-IdentityProviders登録されている全Identity Provider情報を取得する-NameSpaceACSv2のネームスペース名
-ManagementKeyManagement Service用のパスワード
-MgmtTokenGet-AcsManagementTokenで取得したトークン
Remove-IdentityProviderIdentity Providerを削除する-Name削除対象のIdP名
-NameSpaceACSv2のネームスペース名
-ManagementKeyManagement Service用のパスワード
-MgmtTokenGet-AcsManagementTokenで取得したトークン
RPAdd-RelyingPartyRelying Partyを追加する-NameRP名
-RealmACSがトークンを発行する先のURI
-ReturnUrlACSがトークンを返却する先のURI
-ErrorUrlエラーが発生した時のリダイレクト先URI
-TokenFormatACSが発行するトークンのフォーマット(種類)
-TokenLifetimeトークンの有効期間
-AllowedIdentityProviders紐付けるIdP
-RuleGroupName紐付けるRuleGroup名
-SigningSymmetricKeyトークン署名の対象鍵
-SigningCertトークン署名の証明書
-EncryptionCertトークン暗号化の証明書
-NameSpaceACSv2のネームスペース名
-ManagementKeyManagement Service用のパスワード
-MgmtTokenGet-AcsManagementTokenで取得したトークン
Get-RelyingPartyRelying Party情報を取得する-Name取得対象のRP名
-NameSpaceACSv2のネームスペース名
-ManagementKeyManagement Service用のパスワード
-MgmtTokenGet-AcsManagementTokenで取得したトークン
Get-RelyingParties登録されている全Relying Party情報を取得する-NameSpaceACSv2のネームスペース名
-ManagementKeyManagement Service用のパスワード
-MgmtTokenGet-AcsManagementTokenで取得したトークン
Remove-RelyingPartyRelying Partyを削除する-Name削除対象のRP名
-NameSpaceACSv2のネームスペース名
-ManagementKeyManagement Service用のパスワード
-MgmtTokenGet-AcsManagementTokenで取得したトークン
RuleAdd-DefaultPassThroughRulesデフォルトのパススルールールを追加する-GroupName対象のグループ名
-IdentityProviderName対象のIdP名
-NameSpaceACSv2のネームスペース名
-ManagementKeyManagement Service用のパスワード
-MgmtTokenGet-AcsManagementTokenで取得したトークン
Add-Ruleルールを追加する-GroupName対象のグループ名
-Description説明
-IdentityProviderName対象のIdP名
-InputClaimType入力クレームのタイプ
-InputClaimValue入力クレームの値
-OutputClaimType出力クレームのタイプ
-OutputClaimValue出力クレームの値
-NameSpaceACSv2のネームスペース名
-ManagementKeyManagement Service用のパスワード
-MgmtTokenGet-AcsManagementTokenで取得したトークン
Get-Ruleルール情報を取得する-Id取得対象ルールのID
-NameSpaceACSv2のネームスペース名
-ManagementKeyManagement Service用のパスワード
-MgmtTokenGet-AcsManagementTokenで取得したトークン
Get-Rules登録されている全ルール情報を取得する-GroupName対象のグループ名
-NameSpaceACSv2のネームスペース名
-ManagementKeyManagement Service用のパスワード
-MgmtTokenGet-AcsManagementTokenで取得したトークン
Remove-Ruleルールを削除する-Rule削除対象のルール名
-NameSpaceACSv2のネームスペース名
-ManagementKeyManagement Service用のパスワード
-MgmtTokenGet-AcsManagementTokenで取得したトークン
Rule GroupAdd-RuleGroupルールグループを追加する-Nameルールグループ名
-NameSpaceACSv2のネームスペース名
-ManagementKeyManagement Service用のパスワード
-MgmtTokenGet-AcsManagementTokenで取得したトークン
Get-RuleGroupルールグループ情報を取得する-Name取得対象のルールグループ名
-NameSpaceACSv2のネームスペース名
-ManagementKeyManagement Service用のパスワード
-MgmtTokenGet-AcsManagementTokenで取得したトークン
Get-RuleGroups登録されている全ルールグループ情報を取得する-NameSpaceACSv2のネームスペース名
-ManagementKeyManagement Service用のパスワード
-MgmtTokenGet-AcsManagementTokenで取得したトークン
Remove-RuleGroupルールグループを削除する-Name削除対象のルールグループ名
-NameSpaceACSv2のネームスペース名
-ManagementKeyManagement Service用のパスワード
-MgmtTokenGet-AcsManagementTokenで取得したトークン
CryptoAdd-TokenEncryptionKeyトークン暗号化キーの追加-Nameキー名
-Certificate証明書
-RelyingPartyNameRP名
-NameSpaceACSv2のネームスペース名
-ManagementKeyManagement Service用のパスワード
-MgmtTokenGet-AcsManagementTokenで取得したトークン
Add-TokenSigningKeyトークン署名キーの追加-Nameキー名
-Key証明書パスワード
-EffectiveDate開始日
-ExpirationDate有効期限
-Certificate証明書
-MakePrimaryプライマリ設定
-RelyingPartyNameRP名
-NameSpaceACSv2のネームスペース名
-ManagementKeyManagement Service用のパスワード
-MgmtTokenGet-AcsManagementTokenで取得したトークン
Get-ServiceKeyサービスキー情報を取得する-Nameキー名
-NameSpaceACSv2のネームスペース名
-ManagementKeyManagement Service用のパスワード
-MgmtTokenGet-AcsManagementTokenで取得したトークン
Get-ServiceKeys登録されている全サービスキー情報を取得する-NameSpaceACSv2のネームスペース名
-ManagementKeyManagement Service用のパスワード
-MgmtTokenGet-AcsManagementTokenで取得したトークン
Remove-ServiceKeyサービスキーを削除する-Nameキー名
-NameSpaceACSv2のネームスペース名
-ManagementKeyManagement Service用のパスワード
-MgmtTokenGet-AcsManagementTokenで取得したトークン




■ 利用例
登録されている IdP 一覧を取得してみます。

SnapInの組み込みPS C:\Windows\system32> Add-PSSnapin ACSManagementToolsSnapIn;
定数(ネームスペース、パスワード)の登録PS C:\Windows\system32> $acsNamespace = "sso-test";
PS C:\Windows\system32> $mgmtKey = "xxxx";
アクセストークンの取得PS C:\Windows\system32> $mgmtToken = Get-AcsManagementToken -namespace $acsNamespace -managementKey $mgmtKey;
IdP一覧の取得PS C:\Windows\system32> Get-IdentityProviders -MgmtToken $mgmtToken
結果Id : 10000009
Name : Windows Live ID
Realm : https://accesscontrol.windows.net/
WebSSOProtocolType : WsFederation
LoginLinkName : Windows Live? ID
IssuerName : uri:WindowsLiveID
SignInEndpoint : https://login.live.com/login.srf
SignOutEndpoint :
EmailDomain :
ImageUrl :
FedMetadataUrl : https://nexus.passport.com/federationmetadata/2007-06/federationmetadata.xml
ClaimTypes : {}
Keys : {Windows Live ID Signing Key, Windows Live ID Signing Key}
RelyingParties : {}
MgmtToken : http%253a%252f%252fschemas.microsoft.com%252fws%252f2008%252f06%252fidentity%252fclaims%252frole%3
dAdministrator%26http%253a%252f%252fschemas.microsoft.com%252faccesscontrolservice%252f2010%252f07
%252fclaims%252fidentityprovider%3dhttps%253a%252f%252fsso-test.accesscontrol.windows.net%252f%26A
udience%3dhttps%253a%252f%252fsso-test.accesscontrol.windows.net%252fv2%252fmgmt%252fservice%252f%
26ExpiresOn%3d1310076551%26Issuer%3dhttps%253a%252f%252fsso-test.accesscontrol.windows.net%252f%26
HMACSHA256%3dBKS2yqeR11sE%252fBj5wzoxSUY41mwMhMwfUb7ThCZ9bO4%253d
SystemReserved : True



いかがでしょうか?
一括登録や Web の管理画面では登録できないようなカスタムプロバイダを登録する場合など、コマンドラインで操作できると非常に楽ですね。

2011年6月11日土曜日

AD FS2.0やWIF ExtensionのSAMLプロトコルへの対応度合

ちょっと真面目にAD FS2.0やWIF Extension for SAML2.0がSAML2.0プロトコルにどこまで対応しているのか?を検証してみようと思います。
今回は手始めにSAML2.0プロトコルのおさらいです。

参考資料
・Conformance Requirements for the OASIS Security Assertion Markup Language (SAML) V2.0
 http://docs.oasis-open.org/security/saml/v2.0/saml-conformance-2.0-os.pdf
・SAML 2.0 アイデンティティ連携技術
 http://wiki.projectliberty.org/images/9/94/080215_JapanSIG_Technical_Seminar.pdf


■SAML2.0の構成
まずはSAMLの構成要素を簡単に紹介します。
構成要素概要
アサーションIdPが発行するトークンでありユーザ情報が記載されたもの
プロトコルアサーションを要求する方法
バインディングプロトコルを通信に乗せる方法(HTTPやSOAP)
プロファイルプロトコルとバインディングとアサーションを組み合わせる方法
メタデータプロトコルやサービスエンドポイントが記載されたもの


この中でSAML2.0に対応したコンポーネントが実際に何ができるか、を決めるのがどのプロファイルに対応しているか?となります。
抜粋すると以下の様なものが規定されています。
・Web SSO
・Enhanced Client/Proxy SSO
・Identity Provider Discovery
・Single Logout
・Name Identifier Management
・Artifact Resolution

また、SAML2.0に対応した各コンポーネントの動作を規定するオペレーショナルモードというものも定義されています。
同じく抜粋すると以下の様なものが規定されています。
・IdP - Identity Provider
・IdP Lite - Identity Provider Lite
・SP - Service Provider
・SP Lite - Service Provider Lite
・ECP - Enhanced Client/Proxy


■SAML2.0プロファイルとオペレーショナルモード
先のプロファイルとオペレーショナルモードの対応をまとめてみます。
この表を見ることでAD FS2.0やWIF Extensionは何ができるのか?がわかります。

プロファイル内容プロトコル(メッセージ)バインディングIdPIdP LiteSPSP LiteECP
Web SSOブラウザを利用してシングルサインオンを実現するプロファイルAuthNRequestHTTP Redirect
ResponseHTTP POST
HTTP Artifact
Enhanced Client/Proxy SSO携帯端末等、Cookieを利用できない端末でシングルサインオンを実現するプロファイルECP to SP,SP to ECP to IdP,IdP to ECP to SP,SP to ECPPAOS
Identity Provider DiscoverySPがAuthNRequestを送付するIdPを決定するためのプロファイルCookie setter/getterHTTP
Single LogoutSingle Logoutプロトコルを実現するプロファイルLogoutRequest,LogoutResponseHTTP Redirect
SOAP
Name Identifier ManagementNameIDを変更するためのプロファイルManageNameIDRequest,ManageNameIDResponseHTTP Redirect××
SOAP××
Artifact ResolutionSI/IdP間でのArtifactを用いてアサーションを安全にやり取りするためのプロファイルArtifactResolve,ArtifactResponseSOAP



AD FS2.0やWIF ExtensionはオペレーショナルモードとしてIdP Lite、SP Liteをサポートしていますので、基本的には
・Web SSO
・Enhanced Client/Proxy SSO
・Identity Provider Discovery
・Single Logout
・Artifact Resolution
のプロファイルに対応しているはずです。

逆に言うとName Identifier Managementプロファイルには対応していないので、一旦IdPとSPで紐付けてしまったName Identifierを変更することはできない、という話になります。

次回(いつになるかは未定)はSAML2.0の仮名の機能を試してみようと思います。MSDNフォーラムを見ていると若干AD FS2.0のマッピングルールを作るところで工夫が必要な様なので。

2011年6月7日火曜日

TechEd 2011 Japan の延期と TechEd 2011 North America の Identity 系セッションまとめ

例年であればそろそろ夏の最大イベント:TechEd の話題が出てくる頃なのですが、今年は流石にすんなりとはいかないようです。

- TechEd Japan 開催延期のお知らせ
http://www.microsoft.com/japan/teched/2011/default.aspx


とは言え、Office365の正式リリースが 6/28 に決定したり、と世間は動いているので先月(5/15-19)にアトランタで開催されていた TechEd 2011 North America のセッションから Identity 関連のセッションを抜き出してみました。
ほとんどのセッションのスライドと動画がダウンロードできるので来年前半の TechEd Japan の開催が待ちきれない人はあらかじめ資料を見ておくと良いかもしれません。

さすが本国、ということでおなじみの Vittorio や Mark Wahl もたくさんセッションを担当しています。

Impact of Cloning and Virtualization on Active Directory Domain Services
http://channel9.msdn.com/Events/TechEd/NorthAmerica/2011/SIM406

Identity & Access and Cloud: Better Together
http://channel9.msdn.com/Events/TechEd/NorthAmerica/2011/SIM205

Active Directory Federation Services 2.0 Deep Dive: Deploying a Highly Available Infrastructure
http://channel9.msdn.com/Events/TechEd/NorthAmerica/2011/SIM401

Microsoft Identity and Access Strategy
http://channel9.msdn.com/Events/TechEd/NorthAmerica/2011/SIM203

Cross-Organization Collaboration Using Microsoft SharePoint 2010 and Active Directory Federation Services 2.0
http://channel9.msdn.com/Events/TechEd/NorthAmerica/2011/SIM319

Developer's View on Single Sign-On for Applications Using Windows Azure
http://channel9.msdn.com/Events/TechEd/NorthAmerica/2011/SIM322

Using Windows Azure Access Control Service 2.0 with Your Cloud Application
http://channel9.msdn.com/Events/TechEd/NorthAmerica/2011/SIM324

Technical Overview of Microsoft Forefront Identity Manager 2010 R2
http://channel9.msdn.com/Events/TechEd/NorthAmerica/2011/SIM332

Preparing Identities for Cloud Services with Microsoft Forefront Identity Manager
http://channel9.msdn.com/Events/TechEd/NorthAmerica/2011/SIM358

Active Directory Federation Services,Part 1: How Do They Really Work?
http://channel9.msdn.com/Events/TechEd/NorthAmerica/2011/SIM402

Active Directory Federation Services,Part 2: Building Federated Identity Solutions
http://channel9.msdn.com/Events/TechEd/NorthAmerica/2011/SIM403

Optimizing Microsoft Forefront Identity Manager 2010
http://channel9.msdn.com/Events/TechEd/NorthAmerica/2011/SIM315

Using Active Directory with Microsoft Office 365
http://channel9.msdn.com/Events/TechEd/NorthAmerica/2011/SIM320

User Identity and Authentication for Desktop and Phone Applications
http://channel9.msdn.com/Events/TechEd/NorthAmerica/2011/SIM323

Deep Dive Windows Identity Foundation for Developers
http://channel9.msdn.com/Events/TechEd/NorthAmerica/2011/SIM325

2011年6月3日金曜日

Kantara Initiative Seminar 2011 に参加しました

先日お知らせした通り、本日 Kantara Initiative Seminar 2011 が開催されました。

私は Microsoft のアイデンティティ関連技術のオーバービューを話させていただきました。

スライド



他の方の資料も合わせてイベントサイトに既にアップロードされているので見逃した方はダウンロードしてみてください。

また、@hirokiさんが Togetter で一連のつぶやきをまとめてくれたので、現場の雰囲気は以下より参照できるかと思います。
http://togetter.com/li/143786


今回のセミナでは標準仕様に関するコアな技術の話から、実際の事例の話まで非常に幅広いテーマで話が聞けたため、とても役に立つものでした。
次回にも期待していきたいと思いますので、まだ参加したことのない方は是非とも参加してみてください。