概要

WIF のロゴ

ID の課題

開発者の多くはセキュリティの専門家ではありません。ユーザーの認証、承認、さらには、ID ごとの機能のカスタマイズなどの仕事を与えられると、どうしても不安な気持ちになるものです。 コンピューター サイエンスのカリキュラムに組み込まれるほど歴史あるテーマでもなく、最近になるまで、ソフトウェア開発ライフサイクルの中で無視され続けてきた経緯があります。

今日、1 つの企業が数十から数百の Web アプリケーション (または Web サービス) を持つことは珍しくありません。その多くは、ユーザーの ID 処理を、企業ごとに異なる独自の手法に依存しており、特定の認証手段に特化した設計がなされています。 アプリケーションごとに ID 機能を構築することのたいへんさを開発者は嫌というほど知っています。IT プロフェッショナルも同様です。そうした経緯を経て完成したいくつものアプリケーションを管理することが、いかに高いコストとなって跳ね返ってくるかを身にしみて感じています。

問題を解決するきわめて有効な手段の 1 つに、ユーザー アカウントをエンタープライズ ディレクトリに集めて一元化することがあります。 一般に、このディレクトリを最も効果的に、かつ効率よく照会する方法を知っているのは IT プロフェッショナルですが、通常、この作業は開発者に一任されているのが今日の現状です。 そして、いざ企業合併、買収、提携などの動きがあると、開発者は複数の API を使用して、いくつものディレクトリにアクセスしなければならなくなります。

Microsoft .NET Framework には、ID 機能をアプリケーションに組み込むさまざまな方法が存在しているうえに、通信フレームワークごとに ID の処理方法に違いがあったり、使用されているオブジェクト モデルやストレージ モデルが異なることもあります。 この状況は ASP.NET でも同じです。何をもって本人性を確認すればよいのか、開発者は混乱することがあります。HttpContext.User プロパティを見ればよいのか、 それとも Thread.CurrentPrincipal を利用するべきだろうか、と考えます。

身の回りにあふれるパスワードは、フィッシング詐欺に格好の機会をもたらしています。 もっと強力な認証手法にアップグレードしたいと企業が考えても、実装方法がアプリケーションごとに異なるという事実がそれを阻んでいるのです。

よりよいソリューションへ

問題の解決に向けて一歩踏み出すためにはどうすればよいでしょうか。1 つ考えられるのは、増える一方のアプリケーションにその都度独自の ID 処理やユーザー アカウント データベースをつなぎ合わせる、という従来のアプローチを見直すことです。 しかし、たとえ一元管理されたエンタープライズ ディレクトリを利用しても、合併、買収、他社との提携などに伴う開発者の負担は解消されません。パフォーマンスが低いとたちまち矢面に立たされます。非効率なクエリでディレクトリに負荷をかけているのが実際には別のアプリケーションだったとしてもです。 この文書で取り上げている要求ベースのソリューションは、ユーザーの ID 情報を参照するために特定のエンタープライズ ディレクトリに接続する必要性から開発者を解放します。 従来と違うのは、ユーザーから送信されたリクエストには、アプリケーションがその仕事をするために必要とするすべての ID 情報が紐付けられている点です。 ユーザーがこれらの要求を携えて到着するころには、そのユーザーの認証は完了しており、アプリケーション側ではユーザー アカウントの検索や管理に頭を悩ますことなく、本来の処理に専念することができます。

アプリケーションから認証の手間を取り除くことによって、開発者、IT プロフェッショナル、さらにはユーザーにさまざまな利点がもたらされます。 たとえば、おのおのが管理するユーザー アカウントの数が少なくて済み、認証が一元化されることで、企業の成長に伴って、より強力な認証方法にアップグレードしやすくなります。他のプラットフォームや組織と ID 処理を連携されることも可能です。

このセクションの各トピックでは、要求ベースの ID モデルの概念と、ID に特化したマイクロソフトの最新フレームワーク Windows® Identity Foundation (WIF) を使用してこのモデルを有効活用する方法について、開発者の方にわかりやすく説明しています。

Windows Identity Foundation の概要

WIF は .NET Framework の一連のクラスであり、要求ベースの ID 処理をアプリケーションに実装するためのフレームワークです。 このフレームワークを使用することによって、この文書で説明している要求ベースのシステムの恩恵を簡単に受けることができます。WIF は、.NET Framework Version 3.5 SP1 を使用している、あらゆる Web アプリケーションまたは Web サービスで利用できます。

WIF は、相互運用可能な ID メタシステムを実現するという業界共通の構想を取り入れたマイクロソフトのフェデレーション ID ソフトウェア ファミリの 1 つにすぎません。 フェデレーション ID は、Active Directory フェデレーション サービス (ADFS) V2 (旧 "Geneva" Server)、Windows CardSpace "Geneva"、WIF という 3 つのコンポーネントから成ります。 この 3 つのコンポーネントが一体となって、マイクロソフトの最新の要求ベースのアクセス プラットフォームのコアを形成しています。 このサーバーおよび CardSpace コンポーネントの詳細については、Geneva Web サイトを参照してください。 Geneva テクノロジの全体像については『Introducing 'Geneva' ('Geneva' の概要)』というホワイト ペーパーに紹介されています。 この文書の執筆時点では、WIF および他の 2 つの製品の先行リリースがダウンロードにて提供されています。

このセクションの各トピックでは、要求ベースの ID モデルとそれによって解決される問題のほか、Windows® Identity Foundation (WIF) を使用して要求ベースの ID モデルを有効活用する方法について説明しています。

  1. ID サイロ

  2. 要求ベースの ID モデル

  3. 基本的なシナリオ

  4. セキュリティ トークン サービス

  5. 証明書利用者

  6. フェデレーションのシナリオ

  7. Windows Identity Foundation の概要