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のマッピングルールを作るところで工夫が必要な様なので。

0 件のコメント: