2011年7月28日木曜日

FIM 2010R2 ベータ版リリース

昨年冬頃からクローズド・ベータの評価をしていた Forefront Identity Manager 2010 ( FIM 2010 ) の次期リリースである FIM 2010 R2 のベータ版が connect サイトにアップロードされています。(利用するには登録が必要です)

今回のリリースでは、以下の点が強化されています。
・レポーティング
・Webベースでのセルフ・サービス・パスワード・リセット(SSPR)
・FIMデータベースのパフォーマンス改善
・FIM Add-In の Outlook 2010 サポート
・Sharepoint 2010 のサポート
・トラブルシューティングの改善

また、同時に Extensible Connectivity 2.0 Management Agent (ECMA2)のベータ版もリリースされています。
これはクローズド・ベータのころは EZMA と呼ばれていたものなのですが、要はカスタム MA を開発するためのフレームワークです。( MIIS/ILM 時代の XMA、FIM2010 の Management Agent for Extensible Connectivity )

機能としては以下の様なものが挙げられています。
・file-base の import/export
・call-base の import/export
・カスタムパラメータを柔軟に設定可能
・Synchronization Manager上で簡単に設定するためにデザインモードおよびパッケージモードの2つのモードで動作
・LDAPとデータベースの拡張スキーマをサポート
・一括エクスポートとインポートをサポート
・複数のパーティションをサポート
・Visual Studio用のプロジェクトテンプレートを提供

最近なかなか実際に試す時間が取れていないのですが、新機能が沢山あるのでいろいろと試さねば、、です。

2011年7月27日水曜日

ACSのクレームルール拡張

前回のエントリにも書いた通り、July 2011 リリースで ACS のクレームマッピングが拡張されています。

具体的には Identity Provider(IdP) から ACS に渡ってくるトークンを変換する際に、2つのクレームの値を条件として出力ルールを記載することが可能になりました。

といっても、何のことかよくわからないと思いますので ACS がトークンをどのように扱うのか?についておさらいしておきます。

ACS の基本的な機能として、IdP が発行したトークンを Relying Party(RP) が理解できる形へ変換する、いわゆる Federation Provider 機能があります。














このトークン変換を行う際に利用されるのが規則グループです。
ACS は IdP からトークンが渡ってくるとトークンからクレームを取り出し、規則グループの条件に従って、RPへ出力するトークンへクレームを再構成します。

条件としては、入力側のクレームについて
・発行元
・タイプ
・値
を指定することになります。
この条件に合致した時に出力側のクレームのタイプと値を決める、という形の処理を行います。

例えば、「Googleが発行したクレームでemailaddressの値がxxxx@gmail.com」なら「roleの値にadminをセットしたトークンを発行する」といったことが出来ます。


今回の ACS の拡張に話を戻すと、この入力側の条件が2つ設定できるようになったというのが拡張の内容です。

つまり、「Googleが発行したクレームでemailaddressの値がxxx@gmail.com、且つnameの値がNaohiro Fujieだったら」という様な条件を記載することが出来るようになっています。(ちなみに2つの条件として設定できるクレームの発行元は同一もしくは片方は ACS が他のルールで出力した結果である必要があります)


実際にやってみます。
設定した条件は、
・条件1
 ・トークン発行元:Google
 ・タイプ:emailaddress
 ・値:xxxx@gmail.com
・条件2
 ・トークン発行元:Google
 ・タイプ:name
 ・値:Naohiro Fujie
に合致したら、
・タイプ:role
・値:管理者
を出力するという設定にします。


まずは規則グループの設定です。
■条件1の設定
















■条件2の設定














■結果の設定












実際に出力されたトークンを Security Token Visualizer で見てみると、条件に合致した結果、role に「管理者」という値がセットされていることがわかります。







これを組み合わせるとかなり複雑なトークン変換を行うことが出来るようになり、例えば RP 側でのアクセス制御をより詳細に設定するようなことも出来る様になるはずです。

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 の管理画面では登録できないようなカスタムプロバイダを登録する場合など、コマンドラインで操作できると非常に楽ですね。