みなさん、こんにちは。
※ 今回も長文ですが、お時間の許す限りお付き合いいただければと思います。
■ 切っても切れない「認証」という作業
コンピュータは、人間を遥かに凌駕する計算能力を持っていますが、人間なら瞬時に結果が出せるような、単純なことができなかったりします。
「認証」もその一つです。人間なら、知っている人の顔を見ればすぐに誰か分かるのに、コンピュータは、たとえいつも使う人が目の前に座っても、誰だか識別できませんね。ID とパスワードを入力して、ログオンすることで初めて認識してくれます。
コンピュータの個人識別技術が飛躍的な発展を遂げない限り、私たちはこれからも、毎回毎回、手間暇を掛けてコンピュータにログオンする作業をし続けなければなりません。
そこで、この作業を軽減してユーザーの生産性を上げるために、シングルサインオン(SSO)という機能を持ったソフトウェアが存在します。最初に 1 回、シングルサインオン機能に対してログオンしておけば、あとはそこで入力された個人識別情報を、様々なシステムにアクセスした際に自動的に送信することによって、ID やパスワードの入力を省略することができます。
■ マイクロソフトのシングルサインオン製品って?
これまで、たびたび「マイクロソフトのシングルサインオン製品を教えてください」というお問い合わせをいただくこともありました。しかし残念ながら、マイクロソフトはシングルサインオン製品というものを持ち合わせていません・・・と言うと、語弊があるかもしれません。
マイクロソフトは、高まるシングルサインオンのニーズに対して、今までこう言い続けてきました。
「Active Directory にシステムの認証を統合しましょう!そうすれば Windows 統合認証でシングルサインオンが実現できます!」
もちろん、これは真実ですし、究極のシングルサインオンソリューションであることは言うまでもありません。しかし現実には、Active Directory にすべての認証を集約するのは困難で、多くのお客様がこの課題に対して攻めあぐねています。
Active Directory に認証を集約するのが困難な理由は幾つかありますが、大きな障壁の一つになっているのがネットワークの問題です。Active Directory の認証機能は、組織内の専用ネットワークの範囲内に対して機能を提供することを主眼に設計されており、WAN 越えの認証を行おうとすると、なかなか一筋縄ではいきません。
■ クラウド時代に注目されつつある認証技術「AD FS」
一方、クラウドサービスの本格化や、古くは ASP をはじめとする SaaS 型のオンラインサービスの利用が進む中で、せっかく整備した Active Directory のユーザー情報を使って、クラウドやオンラインサービスに認証できないものか?というニーズが出てきました。そこで、Windows Server 2003 R2 から地味に標準搭載され続けていた、AD FS(Active Directory フェデレーションサービス)に陽の目が当たりました。
AD FS に、SAML 2.0 や WS-Trust などの標準規格を盛り込んで、アプリケーションや他のフェデレーションサーバーとの相互接続性を強化し、満を持して登場したのが AD FS 2.0 です。
AD FS による認証のフローは、ちょっと特殊な形になっています。認証情報のストア(ID プロバイダー)とアプリケーション、そしてユーザーの 3 者がネットワーク的に離れている環境でも利用できるようにするために、このような流れを取ります。
そして、認証情報は「トークン」と呼ばれる単位でネットワーク上をやり取りされます。トークンの中には、「クレーム」と呼ばれる、ユーザーの属性情報などの付加情報を含めることができます。
通常、AD FS 2.0 というと、サーバーサイドに配置して、ユーザーに対するトークンの発行や、認証対象のアプリケーションとの信頼関係を保持する役目を果たすためのサーバーコンポーネントのことを指しますが、オプションで、クライアントにインストールすることにより「インフォメーションカード」という形式で認証情報をサーバーに送信できるようになる Windows CardSpace 2.0、さらに、トークン/クレームを解釈して、AD FS 2.0 対応アプリケーションを開発するためのフレームワークである Windows Identity Foundation があります。
■ AD FS 2.0 の実際の動きをデモでご紹介!
百聞は一見にしかずということで、AD FS 2.0 を使った認証のデモビデオをご覧になっていただければと思います。
シナリオはこちらです。
Fabrikam.com 社のユーザーが、取引先である Contoso.com 社の製品発注アプリを利用します。両社間では、あらかじめ AD FS 2.0 サーバーが相互に立っており、それぞれ「フェデレーション信頼」の設定が行われています(フェデレーション信頼が設定されていれば、お互いが発行したトークンを信頼し、アプリケーションから利用できるようになります)。
次のステップとして、Contoso.com は、製品発注アプリを Windows Azure 上に移植しました。その場合でも、アプリケーションの認証ロジックに手を入れることなく、フェデレーション信頼の設定を追加するだけで、Fabrikam.com のユーザーは Azure 上のアプリケーションに認証することが可能です。
※ ビデオは最大化してご覧になることをお勧めします。
→ このビデオの環境では、AD FS 2.0 を使って .NET アプリケーションや Azure 上のアプリケーションに認証していることは分かりますが、シングルサインオンにはなっていません。CardSpace 2.0 の設定画面を見ると、インフォメーションカードが登録されていないことが分かります。
→ 一旦ログオフ後、再ログオンすると、あらかじめ設定されているグループポリシーが適用され、インフォメーションカードが自動的に登録されます。この状態でアプリケーションにアクセスすると、AD FS 2.0 への認証が一瞬で終わり、アプリケーションにシングルサインオンができていることが分かります。念のため申し上げますが、これは IE のキャッシュではありません。
→ AD FS 2.0 は、Active Directory に登録されているデータをソースとしてトークンを作成することができます。ユーザーが所属しているセキュリティグループの情報も、クレームに含めることができます。アプリケーションにアクセスしたユーザーの権限が「一般ユーザー」か「企業管理者」かで、表示するメニューを変えるようにアプリケーションを実装しておけば、後は Active Directory 上のセキュリティグループメンバー変更だけでロールの変更が可能になります。
このように、AD FS 2.0 によって Azure のようなインターネット越しのアプリケーションに対しての認証機能の提供と、CardSpace 2.0 によって簡単にシングルサインオンが実現できることがお分かりいただけたと思います(AD FS 2.0 単体でも、Windows 統合認証を受け付けるようにエンドポイントを構成することで、シングルサインオンは実現できますが、Windows 統合認証が利用可能なネットワーク内からのアクセスに限定されます)。
残念ながら CardSpace 2.0 はまだベータ段階ですが、AD FS 2.0 や Windows Identity Foundation は既に正式版がリリース済みで、皆様にご利用いただく準備はできています。
まずは是非、ご評価いただければと思います。
■ ダウンロード
・AD FS 2.0 日本語版 http://www.microsoft.com/downloads/details.aspx?displaylang=ja&FamilyID=118c3588-9070-426a-b655-6cec0a92c10b
・Windows Identity Foundation 日本語版 http://www.microsoft.com/downloads/details.aspx?familyid=EB9C345F-E830-40B8-A5FE-AE7A864C4D76&displaylang=ja
・Windows CardSpace 2.0 (Beta 2) http://www.microsoft.com/downloads/details.aspx?FamilyID=8f9389b2-ece0-4485-98ad-b093f18838fe&displaylang=en
■ 技術リソース
※現状、英語が中心ですが、続々日本語化予定です。 ・TechNet「AD FS 2.0」 http://technet.microsoft.com/en-us/library/adfs2(WS.10).aspx
・ステップバイステップ「AD FS 2.0 Federation with a WIF Application Step-by-Step Guide」 http://www.microsoft.com/DOWNLOADS/details.aspx?familyid=BB9AB270-473B-4852-B26E-031A88EDD113&displaylang=en
・TechFielders インタビュー「AD FS 2.0 でアプリケーションの世界が変わる」 http://www.microsoft.com/japan/powerpro/TF/interview/42_1.mspx
マイクロソフト株式会社 山崎 淳一