説明

フェデレーテッド・リソースにアクセスするためのトークンの提供

【課題】エクストラネットおよびフェデレーテッド・アクセスを可能にし、Windows(登録商標)トークンをDMZ内で動作するアプリケーションに供給することを可能にすること。
【解決手段】フェデレーテッド・パートナーに配置された単一のアクティブ・ディレクトリ、イントラネットに関連付けられたDMZに配置されたウェブ・サーバ、およびインターネット接続を介してウェブ・サーバに結合された、ウェブ・サーバにサイン・オンすることができる、フェデレーテッド・パートナーに配置されたクライアントを含む、コンピュータ・ユーザを認証するシステム。

【発明の詳細な説明】
【技術分野】
【0001】
(関連出願の相互参照)
本願は、その内容が参照によって本明細書に組み込まれている、2004年12月7日出願の米国特許仮出願第60/634356号の利益を主張するものである。
【0002】
本発明は、全般的には通信ネットワークに関し、より詳細には、ウェブ・アプリケーションのパッシブ・クライアント・シングル・サイン・オンに関する。
【背景技術】
【0003】
近年、インターネットは、組織が互いに通信し、相互作用するための最も重要なツールの1つになってきた。インターネットを介するユーザによる、または関連するネットワーク内もしくはフェデレーテッド(federated)ネットワーク内のユーザによる、ネットワーク・リソースへのアクセスが、増加しつつある。通常のネットワークの外部に広がったユーザ・グループに対処するためのユーザ・ディレクトリの提供は、経時的に、これらのディレクトリを維持する努力と共に増加する傾向がある。セキュリティの理由から、特定の組織内のユーザは、しばしば、別の組織のリソースへのアクセスを許可される前に、認証される必要がある。ユーザ認証(authentication)を容易にするための別の機構が開発されてきた。そのような機構の1つが、Web Services(WS)−Federationである。WS−Federationは、拡張マークアップ言語(XML)セキュリティ・トークンを使用することによって、企業間の境界を横切ってアイデンティティの共有を可能にする。これらのXMLトークンは、SAML(Security Assertion Markup Language)またはXrML(Extensible Rights Markup Language)などのフォーマットを使用する。
【0004】
通常、セキュリティ・トークン内のクレイム(claim:申告)は、一対の企業間を流れる。しかし、セキュリティの理由から、ウェブ・クライアントまたはネットワーク・パートナーがアクセスするリソースが、セキュリティ境界の外側に配置される場合がある。セキュリティ境界の確立は、セキュリティを保つために、シャドウ・ディレクトリと、トークン転送機構を要求する場合がある。この配置は、ユーザによるマルチプル・サイン・オンを要求する。通常のトークン交換では、トークンのオリジネータを、アイデンティティ・プロバイダと呼ぶ。アイデンティティ・プロバイダは、ユーザのアイデンティティおよび認証を所有する。トークンの消費者を、リソース・プロバイダと呼ぶ。リソース・プロバイダは、任意の個数のウェブ・サービスまたは他のアプリケーションを提供することができる。暗号による信頼を、2つの当事者間で確立することができ、その結果、リソース・プロバイダが、セキュリティ・トークンのオーソリティとしてアイデンティティ・プロバイダを認証することができる。
【0005】
【特許文献1】米国特許出願第09/886146号
【特許文献2】米国特許出願第10/029426号
【特許文献3】米国特許出願第10/436880号
【発明の開示】
【発明が解決しようとする課題】
【0006】
エクストラネットおよびフェデレーテッド・アクセスを可能にし、Windows(登録商標)トークンをDMZ内で動作するアプリケーションに供給することを可能にすることが必要とされている。
【課題を解決するための手段】
【0007】
本発明は、コンピュータ・ユーザを認証するシステムに関する。このシステムは、フェデレーテッド・パートナーに配置された単一のアクティブ・ディレクトリ、イントラネットに関連付けられたDMZに配置されたウェブ・サーバ、およびインターネット接続を介してウェブ・サーバに結合された、ウェブ・サーバにサイン・オンすることができる、フェデレーテッド・パートナーに配置されたクライアントを備える。
【発明を実施するための最良の形態】
【0008】
この説明は、添付図面に鑑みて次の説明を読むことからよりよく理解される。添付図面で、同一の符号が、同一の部分を指定するのに使用されている。
【0009】
添付図面に関して下で示す詳細な説明は、この例の説明として意図されたものであり、この例が構成したりまたは使用したりすることのできる唯一の形態を表すことを意図してはいない。この説明は、この例の機能と、この例を構成し、および動作させるためのステップのシーケンスとについて記述している。しかし、同一のまたは同等の機能およびシーケンスを、異なる例によって達成することもできる。
【0010】
この例を、本明細書でインターネット・システムに実装されるものとして説明し、図示するが、説明されるシステムは、制限ではなく例として提供される。当業者が諒解するように、この例は、さまざまな異なるタイプのネットワーク・システムでの応用に適する。
【0011】
作成され、企業ネットワーク(corporate networks)で現在使用されている多数の既存ウェブ・アプリケーションがある。これらのアプリケーションの多くは、アプリケーションへのアクセスを制限するのに伝統的なWindows(登録商標)許可制御機構(authorization mechanisms)を使用する。アプリケーションでは、これは、Windows(登録商標)SID(Security Identifier)(ユーザSIDおよびグループSID)を使用するWindows(登録商標)ベースのアクセス制御リスト(「ACL」)に対するアクセス検査をWindows(登録商標)トークンを用いて行えるようにするためにSIDを含むWindows(登録商標)トークンを受け取ることを意味している。企業イントラネットからアクセスするだけでなく、インターネットから、およびパートナーの企業のネットワークからアクセス可能になるように、アプリケーションを移動させる傾向が増大している。これらのアプリケーションを移動させる負担を最小にするために、Windows(登録商標)許可制御(authorization )を使用し続けることを可能にする最小限の変更(modification)が行われる。これを達成する第1ステップは、通常、アプリケーションを、関連するネットワークをアクセスから隔離するDMZに移動することを要求する。DMZに課せられる通常のセキュリティ制約のゆえに、余分のシャドウ・アカウント(extra shadow accounts)を利用しない限り、現在のWindows(登録商標)認証機構を使用して、DMZ内のアプリケーションでWindows(登録商標)トークンを作成することは、通常は不可能である。
【0012】
シャドウ・アカウントとは、実際の企業ユーザまたはパートナー・アカウントをシャドウイングするアカウントであり、たとえば、企業従業員は、企業ネットワーク内にアカウントを有し、DMZ内に追加のシャドウ・アカウントを必要とする。シャドウ・アカウントは、通常、Windows(登録商標)許可制御を可能にするために提供される。通常、シャドウ・アカウントは、これを更新したり、維持したりするのに管理者にかなりの労力を要求する。
【0013】
トークンは、通常、ユーザを認証するのに使用される。ADFS(Active Directory Federation Service)(登録商標)は、データを交換するためのDMZ内のアプリケーションに対する認証および許可制御のためにADFSトークンを供給する認証システムの例である。ADFSは、Windows(登録商標)トークンと異なるトークンを供給する。許可制御を提供するWindows(登録商標)トークンを、通常、NTトークンと称する。提供される例は、エクストラネットおよびフェデレーテッド・アクセスを可能にすることができ、Windows(登録商標)トークンをDMZ内で動作するアプリケーションに供給することを可能にすることができる。全体的な効果は、通常のセキュリティ手段または通常使用される制約と干渉しないこととすることができる。セキュリティ・トークンを転送する方法は、その内容が参照によって本明細書に組み込まれている2004年11月19日に出願された米国特許出願第10/993745号および2005年5月13日に出願された米国特許出願第TBD号(弁理士整理番号312159.01)に記載されている。
【0014】
シングル・サイン・オン(「SSO」)の第1の例は、コンピュータ・ユーザに、そのユーザが複数のアプリケーションにアクセスするときであっても、単一のアイデンティティを用いて、およびセッション当たり単一のログインによって、さまざまなリソースにアクセスする能力を与えることができる。第1の例は、追加の許可制御データを備えたADFSトークンを供給することができ、その結果、Windows(登録商標)認証を実行できるようにするWindows(登録商標)NTトークンを構成できるようになる。シングル・サイン・オンは、ユーザのアクティブ・ディレクトリ・アカウントがない状態でのウェブ・エージェントでのNTトークンの作成を可能にすることができる。したがって、第1の例では、認証データがトークンで供給されるので、シャドウ・アカウントを除去することができる。ウェブ・シングル・サイン・オン(「WebSSO」)は、ブラウズ可能ウェブ・サイトだけに適用できる、SSOのサブセットである。ブラウズ可能ウェブ・サイトは、インターネットの人気に起因して、現在、SSOの支配的な形とみなされているのも当然である。
【0015】
WebSSO設計は、インターネット上のウェブ・サービスが使用するプロトコルおよびトークン・フォーマットを提供するように構成することができる。この方法の全般的な説明は、企業アカウントについて、企業アカウント・フォーレストからのSIDが、企業ネットワーク内のFS(Federation Server)によってADFSトークン内に入れられるということである。次に、このSIDが、DMZ内のFSによってフィルタリングされ、その後、ウェブ・サーバ(WS)のADFSウェブ・サーバ・エージェントによって拡張される。次に、ADFSウェブ・サーバ・エージェントが、これらのSIDからトークンを作る。ADFSトークンが、この過程の各ステップで認証されることに留意されたい。
【0016】
フェデレーテッド・パートナー・アクセスまたはフェデレーテッド・リソース・サイン・オンの第2の例について、フェデレーテッド・パートナーは、DMZ内のアプリケーションにアクセスするために、Windows(登録商標)トークンも必要とする場合がある。従来のフェデレーテッド・パートナーには、シャドウ・アカウントが、通常、必要である、というのは、フェデレーテッド・パートナーのWindows(登録商標)(商標)フォーレストからのSIDが、リソースDMZでは役に立たないからである。通常、あるネットワークのSIDは、別のネットワークにとって無意味である。この第2の例は、ウェブ・サーバが、アクティブ・ディレクトリ305からアカウント情報を転送するトークンを構成することによって、シャドウ・アカウントなしのフェデレーテッド・ユーザに対して従来のWindows(登録商標)ベース認証を使用することを可能にすることができる。フェデレーテッド・パートナーに対するWindows(登録商標)トークンを作るのに使用される処理を、下でさらに説明する。
【0017】
さらに、ウェブSSOは、コンピュータ・オペレーティング・システムのアイデンティティおよびアクセス管理機能を容易にする傾向がある。たとえば、本明細書で提示するシングル・サイン・オンの例は、シャドウ・アカウントを除去することによって、シャドウ・アカウントに関連するオーバーヘッドを減らす傾向がある。
【0018】
図1に、コンピュータ・オペレーティング・システム104の一部として、シングル・サイン・オン107およびフェデレーテッド・リソース・サインオン108を示す。コンピュータオペレーティングシステム104に、通常、そのオペレーティング・システムのうちでネットワーキングを容易にすることができる部分105が含まれる。使用可能なネットワーキング機能105のうちで、シングル・サイン・オン(「SSO」)106機能を、下で説明する例で、提供することができる。具体的に言うと、シャドウ・アカウントの除去を可能にするシングル・サイン・オン(「ウェブSSO」)107、およびシャドウ・アカウントの除去を可能にするフェデレーテッド・リソースへのアクセスを可能にするサイン・オン108を説明する。ウェブSSO 107の第1の例は、フェデレーテッド・リソース・サイン・オン108の第2の例と独立に動作することができる。
【0019】
エクストラネット・リソースにアクセスするためのトークン
ウェブ・シングル・サイン・オンは、通常、孤立して動作するコンピュータには存在しない。ウェブSSOは、1つまたは複数のネットワークを形成するように連携して動作する複数のプロセッサ・ベース・デバイス上に、またはコンピューティング・デバイス101、102、103上に提供することができる。ネットワークを構成するコンピューティング・デバイスに、通常、サーバ103、PC 102、ラップトップ・コンピュータ101、および類似物が含まれる。任意の台数のこれらのコンピューティング・デバイスに、ウェブSSO機能を与えることができ、その結果、これらが、ネットワークの機能のセキュリティおよび滑らかな動作を維持しながら、SSO機能を提供するネットワークへのアクセスを試みる1つまたは複数のクライアント・コンピュータと共に動作できるようになる。フェデレーテッド・リソースへのアクセスを可能にする方法を、オペレーティング・システム104内に置くこともできる。フェデレーション・アクセス方法は、必ずしも、SSO機能と同一位置にある必要はなく、互いに独立に存在することができる。
【0020】
図2に、ウェブSSOを実装するさまざまなネットワークの例を示す。ウェブSSOを実施する際に、通常は、SSO実施形態に特に重要になる可能性がある3つのネットワーク・コンポーネント(またはプレイヤ)がある。さまざまな構成でこれらのコンポーネントを展開する(利用可能に準備する)ことによって、さまざまなウェブSSO構成を可能にすることができる。
【0021】
まず、ウェブ・サイトにアクセスするためにユーザが実行するプログラムとすることのできるウェブ・クライアント(ユーザ)208〜211が存在する可能性がある。この例に、インターネットにアクセスできる、普通のアプリケーションまたはブラウザが含まれる。
【0022】
第2のコンポーネントは、通常は、ユーザがアクセスするリソースを含むサービスである、ウェブ・サイト(リソース所有者)212である。この例には、ユーザがアクセスすることができるさまざまなアプリケーション、ウェブページ、またはウェブ・サイトを含めることができる。SSO状況では、企業などの組織が、インターネット上のクライアント210がアプリケーションにアクセスできるように、DMZ内にウェブ・サイト212を展開する(利用可能に準備得する)ことを望む可能性がある。この例では、企業が、許可制御を変更するためにアプリケーションをリワークすることなく、アプリケーションをイントラネット203からDMZ 202に移動できる場合がある。しかし、DMZへのアプリケーションの移動は、過去において、従来の許可制御標準規格またはアクセス制御リストを介して信頼を確立するためにシャドウ・アカウントを設けることを必要とした。
【0023】
最後に、通常は、ウェブ・サイト・リソースへのユーザ・アクセスを制御するためのアイデンティティおよび属性を定義するサービスであるアカウント・ストア(アカウント・アドミニストレータ)204〜207コンポーネントがある。この例に、LDAPベース・ディレクトリ、SQLベース・データベース、および類似物を含めることができる。リソースは、イントラネット201、DMZ 202、またはインターネット218に常駐することができる。
【0024】
ウェブSSOを実装するシステムは、異なるWebSSOシナリオを可能にするために3つの前に述べたコンポーネントを展開する(利用可能に準備する)ときに、柔軟性を提供する。この3つのコンポーネントのさまざまな構成は、B2E 217構成、フェデレーテッドB2B 214構成、フェデレーテッドB2C 215構成、およびエクストラネット216構成を可能にする。エクストラネット・リソースへのアクセスにトークンを使用することの第1の例を、エクストラネット構成216に示す。フェデレーテッド・リソースへのアクセスにトークンを使用することの第2の例を、フェデレーテッドB2C 215構成およびフェデレーテッドB2B 214構成に示す。第1および第2の例を、下でさらに説明する。
【0025】
B2E(Business to Enterprise)217は、通常、サイト自体の会社の従業員211が、その企業のアカウント・ストア207からの従業員アイデンティティを使用して、ウェブ・サイト212にアクセスすることを可能にする。従業員は、イントラネットからまたはvpnを必要とせずにそのウェブの外部から、このサイトにアクセスすることができる。フェデレーテッドB2B(Federated business to business)214は、通常、パートナー企業の従業員208が、彼らの(パートナー企業の)アカウント・ストア204からのアイデンティティを使用してウェブ・サイト212にアクセスすることを可能にする。フェデレーテッドB2C(Federated business to consumer)215は、通常、インターネット上の消費者209が、外部消費者アカウント・ストア(Passportなど)205からのアイデンティティを使用してウェブ・サイト212にアクセスすることを可能にする。B2Bは、通常、ある種の提携協定(partnering arrangement)を有する異なる企業の間のe−commerceを指し、個人または企業が別の企業の製品またはサービスを購入するB2Cまたはbusiness−to−consumer関係と対照的である。エクストラネット216は、通常、消費者またはアドホックなパートナー210が、ウェブ・サイトの企業自体によって彼らに発行されたアカントで、そのサイトにローカルなエクストラネット・アカウント・ストア206で管理されるアカウントを使用して、ウェブ・サイト212にアクセスすることを可能にする。
【0026】
このシナリオ214〜217のそれぞれで、ウェブ・サイト212は、異なるアカウント・ストア204〜207を効果的に信頼する。ウェブ・サイト212は、ローカル・アカウント・ストア206および207を直接に信頼し、パートナーまたは消費者のアカウント・ストア204および205を間接的に、フェデレーションを介して信頼する。フェデレーテッド信頼は、通常は、2つのアカウント・ストア所有者の間のビジネス・レベル契約を必要とする。したがって、1つのウェブ・サイトが、図示のように構成を混合して、調和させることができる。
【0027】
セキュリティは、ウェブSSO構成で維持される。WebSSOは、通常は、安全な方法で各構成によって提示される異なる信頼シナリオを実装するためにアカウント・ストアおよびウェブ・サイトによって使用される認証(authentication)と許可制御(authorization)のインフラストラクチャを提供する。B2Eの例217では、従業員211が、内部サイトおよびDMZ企業ウェブ・サイトならびにアウトソーシングされたベネフィッツ・サイト(benefits site)に、その従業員の企業アクティブ・ディレクトリ・アンデンティティ207を使用するシングル・サイン・オンを用いてアクセスすることができる。B2Bの例214では、WebSSOは、第1の組織が、第2の組織によってそれ自体のアクティブ・ディレクトリ204内で定義されて維持されるアイデンティティを使用して、DMZ 202内のSharePointサイト206を第2の組織の従業員208とフェデレーテッド(連携)させることを可能にすることができる。
【0028】
上で使用された用語の定義を、提供される例をユーザが理解するのを助けるために、次の段落でも提供される。しかし、これらの定義は、これらの例の実践を開示される構造に制限することを意図されたものではない。提供される例が、さまざまなネットワーク構成に適用できるものであり、1製造業者の設計、標準規格、または特定の実施形態に制限されないことを理解されたい。
【0029】
フェデレーションは、通常、ユーザ・アイデンティティおよび権利付与(entitlements)を組織の間で可搬にするのに使用される契約、標準規格、および/または協力テクノロジを有する異なる組織(たとえば、異なる自律的アイデンティティ・ドメインまたは領域)の連携(association)を指す。この形では、ある領域のユーザは、複数のログオン・イベントなしで、異なる領域のウェブ・アプリケーションにアクセスすることができる。
【0030】
フォーレスト(forest)は、より密接に関係する組織をリンクするのに使用することができる。ドメインは、しばしば、組織とそのメンバを表すのに使用される。ツリーは、通常は、ドメインまたは子ドメインのコレクションである。1つの企業内など、密接に関係するビジネス・エンティティを管理するために、各めいめいのツリー(tree)を、ドメイン・フォーレスト(forest)内で相互接続することができる。フォーレスト内のツリーは、通常、両方向の信頼関係によって接続される。ツリーが、一緒にグループ化され、フォーレスト内で1つのネットワーク・システムとして実装されると、フォーレスト境界が、信頼(たとえば、セキュリティ)境界になり、ドメイン・グループに対する管理上の分離の単位になる。
【0031】
非武装地帯(「DMZ」)は、通常はローカル・エリア・ネットワーク(「LAN」)とインターネットの間の境界で確立される周辺(perimeter)セキュリティ・ネットワークを指す場合がある。そのようなDMZは、LAN上のサーバをインターネット上の悪意のあるユーザから保護する役目を果たす。通常、ファイヤウォールが、LANとDMZの間にある。DMZに、プロキシ・サーバ、ウェブ・サーバ、および仮想プライベート・ネットワーク(「VPN」)サーバが含まれる場合がある。プロキシ・サーバは、通常、LAN上の情報にアクセスする外部ユーザにセキュア・アクセスを提供し、通常は、クライアント・コンピュータにトランスペアレントに見える。プロキシ・サーバは、特定のリソースへのアクセスを許さないようにプログラムすることができる。ウェブ・サーバは、通常、インターネット上の誰もがアクセス可能である。VPNサーバは、通常、インターネットを介するLANへのセキュア・アクセスを可能にするリモート・アクセス認証サーバ(remote access and authentication servers)である。ネットワークへのセキュア・アクセスは、従来のKerberosシステムなどのさまざまなセキュリティ・プロトコルによって提供することができる。セキュリティ・プロトコルとは、ネットワークおよびシステムが、これらのネットワークおよびシステムのリソースにアクセスするユーザ、コンピュータ、およびアプリケーションを認証できるようにするプロトコルである。セキュリティ・プロトコルは、さまざまな形の暗号化を使用して、ユーザの信任証(credentials)およびネットワーク通信の、プライバシ、信憑性(authenticity)、および保全性(integrity)を保証する。
【0032】
図3は、エクストラネット・リソースへのアクセスにトークンを使用し、シャドウ・ディレクトリが除外されることを可能にする、ウェブSSO中のセキュリティを維持するのに通常使用されるシステム・コンポーネントを示すブロック図である。ウェブSSOは、次のコンポーネントを提供することによってセキュリティを維持することができる。
【0033】
第1に、アクティブ・ディレクトリのセキュリティ・トークン・サービス・プロキシ301を提供する。これらのサービスは、アクティブ・ディレクトリ305に含まれるアイデンティティおよび属性に関する、ウェブに対して適切なセキュリティ・トークン(web-appropriate security tokens)を作る。アクティブ・ディレクトリ305は、イントラネット313内にあり、DMZ 314内のプロキシ化されたサービス309によって保護されている。ウェブ・サーバ(「WS」)320は、アプリケーションをクライアントまたはウェブ・クライアント311から使用可能にするために、DMZ内に展開(使用可能に準備)される。DMZ内にWSを展開(使用可能に準備)することは、通常、DMZイントラネット境界をまたぐことによるセキュリティ問題を引き起こさずにWSとFSRとの間で信頼が確立されるようにするために、DMZ内にFSR 309を展開(使用可能に準備)することを要求する。FSP−A 321は、FS A 308のプロキシ・サーバである。
【0034】
第2に、ウェブ・サイト信頼を管理するフェデレーション・サービス302が、さまざまなアカウント・ストア所有者との信頼を定義し、制御する機構をリソース所有者に与える。フェデレーション・サービスは、参照によってその内容を本明細書に組み込まれている2001年6月20に出願された特許文献1および2001年12月21に出願された特許文献2に記載されている。
【0035】
第3は、ウェブ・アプリケーションのSSOエージェント・プロセス・セキュリティ・トークン303である。これらのエージェント(ISAPIエクステンションおよびトークン/クレイム・ライブラリ)は、セキュリティ・トークンを、アクセス制御のためにIISアプリケーションによって使用される、Windows(登録商標)NT(Microsoft Corporation社の商標)Impersonationコンテクスト・ロールまたはASP.Netロールに変換することができる。代替実施形態では、セキュリティ・トークンを処理する同等のエージェントに置換することができる。セキュリティ・クレイムは、参照によってその内容を本明細書に組み込まれている2005年4月29日に出願された米国特許出願第11/119236号にさらに詳細に記載されている。
【0036】
第4に、インターオペラブル・ウェブ・サービス・プロトコルまたはパッシブ・クライアント・プロトコル304を提供する。アカウント・ストアおよびウェブ・サイトは、通常、直接には通信せず、セキュリティ・トークンが、これらの間で、ウェブ・サービス・フェデレーション・パッシブ・クライアント・プロトコルなどのプロトコルを使用して、クライアントによって、それらの間に伝えられる。このタイプのプロトコルは、SAMLトークンおよびXrMLトークンを含むウェブ・サービス−セキュリティXMLセキュリティ・トークンを交換する。代替案では、他の同等のプロトコルおよびトークン交換を使用することができる。例示的なインターオペラブル・ウェブ・サービス・プロトコルが、参照によってその内容を本明細書に組み込まれている2003年5月12に出願された特許文献3にさらに詳細に記載されている。
【0037】
第5に、複数のアプリケーションを含むウェブ・サーバを提供する。このウェブ・サーバは、通常、サーバFSR 309を信頼する。
【0038】
ウェブ・シングル・サイン・オン(「SSO」)は、複数のアプリケーションにアクセスするときであっても、ユーザに、単一のアイデンティティ、およびセッションごとに単一のログオン、を用いてコンピュータ・リソースにアクセスする能力を与えることができる。ウェブ・シングル・サイン・オン(「WebSSO」)は、通常、ブラウズ可能ウェブ・サイトだけに適用される、シングル・サイン・オンのサブセットとみなされる。しかし、インターネットの人気に起因して、ウェブ・シングル・サイン・オンが、SSOより普及する傾向がある。
【0039】
ネットワークは、そのファイヤウォールの外側にDMZゾーンを設けることができる。リソースは、このDMZゾーン内に展開(利用可能に準備)されることになる。例示的実施形態によれば、企業ユーザは、シャドウ・アカウントなしでシングル・サイン・オンを使用する伝統的なWindows(登録商標)認証および許可を使用することによって、DMZリソースにアクセスする。このシナリオでは、企業は、DMZゾーンを有し、そこに、その企業が、企業ユーザがアクセス可能なリソース(たとえば、SharePointサーバ)を展開(利用可能に準備)する。
【0040】
図4は、エクストラネット・アクセスに関する全体的な処理フローを示すブロック図である。エクストラネットDMZアクティブ・ディレクトリ(「AD」)406は、コープネット(corpnet)アクティブ・ディレクトリ404への1方向Windows(登録商標)信頼(trust)を有する。ログオン・サーバ/フェデレーテッド・サーバ(「LS−R/FS−R」)409が、エクストラネット・リソース領域に展開(利用可能に準備)され、ログオン・サーバ/フェデレーテッド・サーバ(「LS−A/FS−A」)407が、コープネット・アカウント領域またはイントラネット401に展開(利用可能に準備)される。エクストラネット・リソース領域とコープネット・アカウント領域の間のフェデレーション信頼は、両側で「Windows(登録商標)RealmTrust」信頼としてフラグを立てられ、これは、エクストラネット領域が、コープネット領域ADストアからのユーザに伝統的なWindows(登録商標)認証および許可制御を使用するアプリケーションを有することを意味する。ウェブ・サーバ(「WS」)で動作する信頼するアプリケーションは、フェデレーション・サーバ(「FS−R」)で「Windows(登録商標)RealmTrust」としてフラグを立てられ、これは、そのアプリケーションが、ローカルNTアクセス・トークンを作るためにユーザSIDを受け入れることを意味する。
【0041】
クライアントは、DMZに展開(利用可能に準備)されたウェブ・サーバWSで動作する伝統的なウェブ・アプリケーションにアクセスする。クライアントは、インターネットまたはイントラネットに位置することができる。最終目標は、WSでNTアクセス・トークンを作り、その結果、通常のNT許可制御を、アクセスされるリソースのアクセス制御リスト(「ACL」)に対して使用できるようにすることである。これは、ユーザ許可制御属性(SID)がある形でWSに配布されることを意味する。
【0042】
図5および図6は、インターネット上のクライアントがエクストラネット・リソースにアクセスするのにトークンを使用する方法を示す流れ図である。Windows(登録商標)信頼を確立するためのトークン交換のフローは、Windows(登録商標)ネットワークまたはその同等物に典型的な形で維持される。しかし、トークンの構成および内容(content)は、シャドウ・アカウント内ではなくトークン内にセキュリティ識別子(「SID」)を設けることによって変更されている。認証について、SIDは、既に存在し、アプリケーションが、アプリケーションのドメイン内のシャドウ・アカウントからSIDを取り出す必要はない。
【0043】
第1に、インターネット上のクライアントが、(HTTP GETを介して)DMZ内に位置する所望のアプリケーションを有するウェブ・クライアントからのリソースURLにアクセスする(ブロック501)。このクライアントは認証クッキーを有しないので、このクライアントはLS−R/FS−Rにリダイレクトされる。第2に、LS−Rは、クライアント・ホーム領域を決定し、クライアントをLS−A−EXTにリダイレクトする(ブロック502)。
【0044】
クライアントが、コープネットに位置する場合に、クライアントは、LS−A−EXTではなくLS−Aにその要求を送信する。この実施形態には、少数のオプションがある。たとえば、特殊なDNS構成をコープネットDNSサーバで使用し、その結果、LS−A−EXT名がLS−AのIPアドレスに解決されるようにすることができる。代替実施形態で実行されるもう1つの可能性は、LS−A−EXTに2つのNIC(一方のNICはコープネットに面し、他方はインターネットに面する)を有し、どちらのNICがLS−A−EXTへの接続に使用されているかに基づいてクライアントのローカリティを決定することである。この場合に、LS−Aは、FS−AにすべてのユーザSIDを与える統合認証を使用する。
【0045】
あるいは、クライアントがインターネットに位置する場合に、LS−A−EXTが、ユーザ信任証(ユーザ名およびパスワードまたはクライアント証明書)を収集し、これらを信任証検証または検査のためにFS−Aに送信する(ブロック503)。FS−Aは、ユーザ信任証を検証する。信任証が検証された後に、FS−Aは、ローカルNTアクセス・トークンからのユーザSIDのコレクションを有する(ブロック504)。
【0046】
前のステップでユーザSIDを入手したので、FS−Aは、そのSIDをグループ・クレイムに変換し、ユーザADアカウントからのLDAP属性を使用してカスタム・クレイムを入手する(ブロック505)。次に、リソース領域がWindows(登録商標)RealmTrustであるならば、FS−Aは、ユーザのアカウント・グループSIDを入手する(ブロック506)。次に、FS−Aは、Advice要素内の属性およびアカウント・グループSIDとして変換されたWebSSOクレイムを運ぶSAMLトークンを発行する(ブロック507)。さらなる詳細については、Advice要素のフォーマットに関するセクション「SIDパッキング」を参照されたい。FS−Aは、このSAMLトークンをインプロセスでLS−Aに渡すか(事例3a)、このトークンをLS−A−EXTに送り返す(事例3b)(ブロック508)。LS−A/LS−A−EXTは、このSAMLトークンをクッキーとしてクライアントに書き込み、そのクライアントをLS−R/FS−Rにリダイレクトする(ブロック509)。
【0047】
FS−Rは、SAMLトークンを受信し、検証する(ブロック510)。トークンの検証に成功すると、FS−Rは、トークンから入手したクレイムに関する普通のクレイム変換を実行する。次に、アカウント領域がWindows(登録商標)RealmTrust領域であるならば、FS−Rは、SAML Advice要素からのユーザSIDを処理する(ブロック511)。具体的に言うと、FS−Rは、受信したSIDをフィルタリングする(下のセクション「SIDフィルタリング」で説明するように)。FS−Rは、Advice要素内に属性およびフィルタリングされたアカウント・グループSIDとしてWSに適切に変換されたクレイムを運ぶSAMLトークンを、WSに発行する(ブロック512)。図6の流れ図に継続して、FS−Rは、制御をLS−Rに返し、このLS−Rは、生成されたSAMLトークンをクッキーとしてクライアントに書き込み、このクライアントをWSにリダイレクトする(ブロック613)。
【0048】
WSのWebSSO ISAPIエクステンションが、トークンを受信し、クライアントがアクセスを試みていたオリジナルURLにリダイレクトする(614)。このリダイレクトでは、ISAPIエクステンションが、WebSSOトークンをクッキーとして書き込む。
【0049】
WSのWebSSO ISAPIエクステンションは、クッキーとしてトークンを受信し、検証のためにWebSSOサービスに渡す(ブロック615)。このサービスは、トークンを検証し、SIDを入手し、このSIDをWebSSO認証パッケージに渡す(ブロック616)。このパッケージは、SIDを拡張して、WSが参加しているドメインにリソース・グループSIDを追加する(ブロック617)(下のセクション「グループ拡張」を参照されたい)。SIDの結果のコレクションを使用して、NTアクセス・トークンを作る(ブロック618)。ブロック615〜618は、セキュリティの理由から、NTサービスおよびLSA認証パッケージが、WebSSOトークンの検証に使用され、その後、そのトークンからのSIDをNTアクセス・トークンに変えることを示している(ブロック619)。SIDコレクションは、将来の使用のために、認証パッケージ内でキャッシングされ、入ってくるアカウントSIDのハッシュによってキーイングされる(ブロック620)。NTアクセス・トークン・ハンドルは、将来の使用のために、WebSSO ISAPIエクステンション内でキャッシングされ、SAMLトークンのハッシュによってキーイングされる(621)。
【0050】
クライアントに書き込まれたクッキーは、シングル・サイン・オン体験を達成すること、および繰り返される動作で、通常では手間のかかる動作を防ぐこと、に使用される。ブロック508(図5の)で書き込まれるクッキーは、クライアントがリソース領域からアカウント領域にリダイレクトされるときに使用され、その結果、ユーザ信任証検査およびクレイム/SID抽出を避けることができる。ブロック510(図5の)で書き込まれるクッキーは、クライアントがリソース・アプリケーション・サーバによってリソース領域FS−Rにリダイレクトされるときに使用され、その結果、クレイム変換およびSIDフィルタリングを避けることができる。ブロック614で書き込まれるクッキーは、クライアントがWSと通信するときに次のように使用される。
【0051】
WebSSO ISAPIエクステンションは、(クッキーで送信されたSAMLトークンをハッシュ化し、そのハッシュに対応するキャッシュ・エントリを見つけることによって)そのキャッシュ内でキャッシングされたNTトークンを検索することになり、したがって、ユーザは、即座に成りすますことができる。キャッシングされたNTトークンが見つからない場合には、WebSSO ISAPIエクステンションは、クッキーからのSIDをWebSSO認証パッケージに渡し、このWebSSO認証パッケージは、そのキャッシュを検索して、入ってくるSIDのハッシュと等しいキーを有するエントリを見つけ、その結果、リソース・グループSID拡張を避けることができるようになる。WebSSO認証パッケージは、そのキャッシュ内でSIDを見つけない場合に、上のブロック615〜621で指定されたようにNTアクセス・トークンを作ることになる。
【0052】
リソース・グループ拡張プロセスの代替の例は、WSではなくFS−Rでグループを拡張することである。この方法では、FS−Rは、すべてのSIDを使用してクライアントにクッキーを書き込み、他のリソースがWSと同一のドメインに参加しているならば、そのクライアントが次に他のリソースにアクセスするときにそのSIDを使用する。しかし、これは、すべての展開されたアプリケーショ・ンサーバに関するドメインのFS−Rに関する知識を要求する。これを達成する方法の1つは、アプリケーションで準備され、FS−Rに送信される、wctxパラメータの一部としてドメイン名を含めることである。このパラメータは、認証されず、したがって、WSは、そのWSが参加しているもの以外のドメイン名を置くことができる。
【0053】
もう1つの代替の例が、信頼するアプリケーションが追加されるときに信頼ポリシでWSのドメインを構成することであるが、この手法は、通常、より多くの管理を要求する。
【0054】
信任証検査(Credentials Verification)
次の説明は、上でステップ503(図5の)で説明した信任証検査プロセスを詳説するものである。このプロセスでは、FS−Aが、2タイプのユーザ信任証、すなわち、ユーザ名およびパスワードと、クライアント証明書を検証する。ユーザ名およびパスワードは、公表されたLogonUser APIを介して検証される。その結果は、通常はすべてのユーザSID(FS−Aが参加しているドメインのアカウントSIDおよびリソースSID)を含むNTアクセス・トークンである。ユーザ名は、UPNフォーマット(user@somewhere.com)またはSAMアカウント名フォーマット(somewhere\user)とすることができる。クライアント証明書は、通常、次のデータ構造体の証明書を収容するプロトコル・サブミット・バッファを備えるLsaCallAuthenticationPackage呼び出しを介してWebSSO認証パッケージにクライアント証明書を渡すことによって検証される。
【0055】
【表1】

【0056】
この呼び出しは、通常、信頼されない呼び出し元から許可されるので、FS−Aは、TCB特権を保持する必要がない。しかし、パッケージは、ユーザ・セキュリティ属性を返すので、パッケージは、呼び出し元がFSである場合に限ってこの呼び出しを許可することができる。この目的のために、FSセットアップは、通常、ローカル・マシン・グループADFSGroupを作成し、FSアカウントをこのグループに入れる。認証パッケージは、呼び出し元がそのNTアクセス・トークン内にADFSGroup SIDを有することを検査する。
【0057】
WebSSOパッケージは、内部LsalCallPackage呼び出しを介して、検査のために、証明書をWindows(登録商標) TLS/SSL Security Service Provider(登録商標)に、渡す。検査に成功すると、WebSSOパッケージは、ユーザUPN、ユーザ・アカウント・ドメイン名、およびユーザトークン・グループ(SID)を次のデータ構造体で返す。
【0058】
【表2】

【0059】
グループ拡張
次の説明は、上でステップ617で説明した信任証検査プロセスを詳説するものである。FS−Aは、アカウントおよびリソース・グループ拡張を、そのために実装された新しいAuthZ(「AuthZ」は、AuthenticationとAuthorizationとを表す略語)機能性であるAuthziWebSsoGetGroupsBySidを使用することによって、実行する。AuthZは、現在、グループ拡張を行うが、その拡張は選択的でない、すなわち、アカウントとリソース・グループの両方が、必ず拡張される。AuthZは、拡張が分離され、その結果、アカウント側(FS−A)がアカウント・グループを拡張でき、リソース側(WS)が、そのめいめいのドメイン内のリソース・グループを拡張できるように変更されている。さらに、AuthZによって使用されるLDAPハンドルおよびSAMハンドルをキャッシングするように、性能最適化が実施されている。
【0060】
SIDパッキング
SAMLトークンのサイズを減らすために、SIDは、次のようにSAML Advice要素にパックされている。Advice要素は次の通りである。
【0061】
【表3】

【0062】
(「http://fabrikam.com/federation/v1/Windows(登録商標)Identifiers」は、テンポラリ名前空間であることに留意されたい)。Windows(登録商標)Identifiers要素には、次のフォーマットでユーザSIDを収容するbase64エンコーデッド・ストリングを収容する。
【0063】
Flags|DomainSidCount|AccountDomainSid|RidCount|Rid_1|…|Rid_N|DomainSid|RidCount|Rid_1|…|Rid_M|…
ここで、縦セパレータ|は、DWORD境界を示す。最初のDWORDは、Flagsパラメータである。WSが受信したFlagsパラメータのビット1がセットされている場合に、これは、WSが、リソース・グループを追加するためにグループを拡張する必要があることを示す。第2のDWORDは、このバッファに何個のドメインSIDが存在するかを示すパラメータである。次のDWORDは、アカウント・ドメインSIDである最初のドメインSIDである。次のDWORDは、アカウント・ドメインSIDのRIDの個数である。アカウントSIDおよびグループSIDが、ドメインSIDを対応するRIDと組み合わせることによって構成されることに留意されたい。次のDWORDは、ユーザアカウントのRIDである。これに、グループRID(RidCountで定義された個数より1つ少ない)が続く。次に、次ドメインSIDがあり、そのドメインのRIDカウントが続き、RIDが続く。このパターン自体は、RIDを有するすべてのドメインSIDが列挙されるまで繰り返される。
【0064】
SIDフィルタリング
WebSSOは、FS−Rに対するSIDフィルタリングを実行し、このフィルタリングは、通常リソース・ドメイン・コントローラに対して実行されるネイティブSIDフィルタリングと同一のルールに従う。フィルタリングは、通常のWindows(登録商標)実装形態を使用すること、内部DC固有Windows(登録商標) Local Security Authority(「LSA」)(LS−Aと混同してはならない)ルーチンを実装すること、によって達成される。このルーチンは、ドメインおよびフォーレストの信頼トポロジを計算し、ランタイムにSID検索を実行する。これらを実装するために、ルート・ドメインDCからのドメイン信頼およびフォーレスト信頼が、DsEnumerateDomainTrusts APIおよびDsGetForestTrustInformationW APIを使用することによって入手される。これらのAPIは、信頼境界を決定し、エクストラネット信頼の信頼タイプおよび信頼属性を識別するのに必要な情報を返す。その情報を得ると、任意の所与のSIDを、ローカル・フォーレストならびに(クロス・フォーレスト信頼に関して直接にまたは他動的に信頼される)信頼されるドメインのドメインSIDと突き合わせることができる。その情報は、ドメイン信頼変化を考慮に入れるために周期的に更新される。これによって、使用される内部LSA APIの実装が可能になり、その結果、同一のコア・コード・ベースを使用できるようになる。この文書の最後のセクションで、これらのリソースへのフェデレーテッド・パートナー・アクセスを扱う。
【0065】
フェデレーテッド・リソースにアクセスするためのトークン
図7は、エクストラネット・リソースに対するフェデレーテッド・パートナーに関する全体的な処理フローを示す流れ図である。エクストラネットDMZアクティブ・ディレクトリに、ウェブSSOトークンをマッピングできるアクティブ・ディレクトリ内のシャドウ・アカウントが含まれ、その結果、NTアクセス・トークンを生成することができるようになる。ウェブSSOトークンを得るプロトコルは、上で説明したプロトコルおよびWS−フェデレーション・プロトコルに類似する。FS−Rが、アカウントFSによって発行された、クライアントのウェブSSOトークンを得たならば、FS−Rは、そのトークンのクレイムをマッピングすることができる。
【0066】
図8は、NTアクセス・トークンの生成を可能にするためにクレイムをマッピングする3つの異なる形を示す流れ図である。
【0067】
第1に、ユーザ・プリンシパル名(「UPN」)クレイムに、FS−A内でトークンを発行し(801)、このクレイムを、FS−Rによって無変更でWSに渡す(802)。この場合に、フェデレーテッド・クライアントのUPNクレイムに一致するUPNを有するDMZ ADにシャドウ・アカウントがあると仮定する。
【0068】
第2に、電子メール・クレイムにFS−A内でトークンを発行し(803)、クレイムをUPNクレイムに変更する(804)。このクレイムを、FS−RによってWSに渡す(805)。この場合に、フェデレーテッド・クライアントの電子メール・アドレスと一致するUPNを有するDMZ ADにシャドウ・アカウントがあると仮定する。
【0069】
第3に、グループ・クレイムにFS−Aでトークンを発行し(806)、このグループ・クレイムをUPNクレイムにマッピングする(807)。この場合に、マッピングするUPNに一致するUPNを有するDMZ ADにシャドウ・アカウントがあると仮定する。この場合に、複数のクライアントが1つのシャドウ・アカウントにマッピングされることに留意されたい。
【0070】
現在、シャドウ・アカウントが必要である唯一の場所は、伝統的な(NTアクセス・トークン・ベースの)アプリケーションを展開する(利用可能に準備する)、フェデレーテッド・リレーションシップのリソース側である。シャドウ・アカウントは、通常、ADFSウェブ・エージェントが、NTアクセス・トークンを作るために、シャドウ・アカウントを偽装できる(成りすますことができる)ようにするために必要である。シャドウ・アカウントは、通常、アカウントを展開(利用可能に準備)し、維持する必要があるので、顧客の主要な関心事である。多くの場合に、シャドウ・アカウントは、DMZでのADFSの展開する場合に、展開ブロッカを構成する。
【0071】
この第2の例では、非DMZアカウント領域から受信したインバウンド・グループ・クレイムをローカル・リソースADグループに変換することによってシャドウ・アカウントを除去し、ADグループSIDを使用してNTトークンを作ることができる。リソースは、ローカルADグループSIDを用いてACLを与えられ、したがって、結果のNTトークンは、リソース・アプリケーションによって実行されるアクセス検査に対して適切なものになる。
【0072】
シャドウ・ディレクトリを除去することができる、この第2の例を実装するために、新しい企業グループ・クレイム・タイプであるActiveDirectoryGroupClaimを使用する。クレイムは、通常、オーソリティが、名前、アイデンティティ、キー、グループ、特権、機能、および類似物など、のプリンシパルに関して作ることができるステートメントである。クレイムは、セキュリティ・トークンによってアサートすることができる。
【0073】
このクレイム・タイプは、対応するADグループのSIDであるSIDプロパティを追加することによって、GroupClaimを拡張する。ActiveDirectoryGroupClaimは、GroupClaimであり、したがって、通常、クレイム変換などの企業グループ・クレイムを現在操作するすべての場所でそのようなものとして扱われる。
【0074】
ランタイムに、リソースFS−Rが非DMZ領域からインバウンド・トークンを得、インバウンド・グループ・クレイムを、アプリケーションに発行されたアウト・バウンド企業グループ・クレイム(ADグループを含めることができる)に変換した後に、FS−Rは、通常、アウトバウンド・コレクションで見つかったActiveDirectoryGroupClaimごとにADグループSIDを追加する。
【0075】
グループSIDのほかに、FSは、通常、信頼される領域URIから導出されたユーザSIDおよびインバウンド・トークン内のアイデンティティ・クレイムの値を生成する(ユーザSID生成アルゴリズムの詳細については以下を参照されたい)。
【0076】
結果のユーザSIDおよびグループSIDは、発行される新しいトークンのAdvice要素の形でウェブ・サーバ・エージェントに渡され、これは、通常、DMZリソースFS−Rによって普通に行われるのと同一の形である。
【0077】
ウェブ・サーバ(WS)は、SIDを得、これを拡張してリソース・ドメイン・ローカル・グループSIDを追加し、このSIDを有するトークンを、普通の認証パッケージを介して作る。NTトークンを作るために、SIDのほかに、認証パッケージは、それぞれ、起点アカウント・オーソリティおよび結果のログオン・セッションのユーザ名としてセットされるAuthenticatingAuthorityプロパティおよびAccountNameプロパティを有する必要がある場合がある。アカウント領域URIおよびアイデンティティ・クレイム値を、それぞれ、この目的に使用することができる。
【0078】
結果として、アカウント領域URIおよびユーザ・アイデンティティが、許可制御パッケージによって実行されるログオンの成功に基づいて、LSAによって生成されるセキュリティ監査イベントでログインされる。これは、シャドウ・アカウントではなく実際のユーザアカウントに関する監査能力を提供するので、有用な機能である場合がある。
【0079】
そのような監査の例を、下に示す。この監査は、上で説明したように変更された認証パッケージによるユーザuser@adatum.comのログオンが成功したときに生成されたものである。
【0080】
【表4】

【0081】
さらなる代替の例では、顧客が、一部のユーザについてシャドウ・アカウントを配置し、他のユーザについてSAMLグループ−ADグループ変換(SG2ADG)を使用することができる。原理的に、UPN/電子メールおよびSIDの所与の組について、まず、シャドウ・アカウント・ログオンを実行すること試み、シャドウ・アカウント・ログオンが、ユーザが存在しないことを示すエラーで失敗する場合に、SIDを用いるログオンを行うことができる。しかし、これを行うことは、通常、シャドウ・アカウントが多数のユーザについて利用可能に準備されていない場合に、性能(perf)に大きく影響する。
【0082】
シャドウ・アカウントまたはSIDのどちらを使用するかを決定するために、信頼される領域の新しい信頼ポリシOM列挙タイプ、ShadowAccountExistenceが追加されている。この列挙は、通常、4つの値すなわち、Unspecified、ShadowAccountsAbsent、ShadowAccountsForSomeUsers、およびShadowAccountsForAIIUsersを有する。Unspecifiedは、シャドウ・アカウント存在が、この領域からのユーザについて指定されていないことを意味する。これは、デフォルト値である。ShadowAccountsAbsentは、この信頼される領域から来るユーザについてシャドウ・アカウントが展開(利用可能に準備)されていないことを意味する。この場合に、SG2ADG変換から生じるSIDが、NTトークンの作成に使用される。ShadowAccountsForSomeUsersは、通常、シャドウ・アカウントが、この信頼される領域からのユーザの一部について展開(利用可能に準備)されていることを意味する。この場合に、シャドウ・アカウントUPN/電子メールを用いるログオンが、まず試みられ、その後、SIDを用いるログオンが、この信頼される領域からのユーザについて次に試みられる。ShadowAccountsForAIIUsersは、通常、シャドウ・アカウントが、この信頼される領域からのすべてのユーザについて展開(利用可能に準備)されていることを意味する。この場合には、シャドウ・アカウントUPN/電子メールを用いるログオンだけが試みられる。
【0083】
ランタイムに、FS−Rが伝統的なアプリケーションにSAMLトークンを発行するときに、FS−Rは、発行されるSAMLトークンで、そのアプリケーションが実行しなければならないログオンのタイプを示す。FS−Rは、次のように、ShadowAccountExistenceの値に基づいてログオンのタイプを決定する。
【0084】
Unspecified:結果のクレイム・コレクションにActiveDirectoryGroupClaimクレイムが含まれる場合に、FS−Rは、SIDを用いるログオンだけを試みなければならないことを示す。そうではなく、ユーザ・アイデンティティがUPN/電子メールである場合に、FS−Rは、シャドウ・アカウント・ログオンだけを試みなければならないことを示す。そうでない場合に、FS−Rは、伝統的なWSがNTトークンを作ることができないので、ユーザ要求に失敗する。
【0085】
ShadowAccountsAbsent:結果のクレイム・コレクションにActiveDirectoryGroupClaimクレイムが含まれる場合に、FS−Rは、SIDを用いるログオンを試みなければならないことを示す。そうでない場合に、FS−Rは、伝統的なWSがNTトークンを作ることができないので、ユーザ要求に
失敗する。
【0086】
ShadowAccountsForSomeUsers:ユーザ・アイデンティティがUPN/電子メールである場合に、FS−Rは、シャドウ・アカウント・ログオンだけを試みなければならず、アプリケーションに発行されたSAMLトークンにSIDが存在するならば、次にSIDログオンを試みなければならないことを示す。そうではなく、結果のクレイム・コレクションにActiveDirectoryGroupClaimクレイムが含まれる場合に、FS−Rは、SIDを用いるログオンを試みなければならないことを示す。そうでない場合に、FS−Rは、伝統的なWSがNTトークンを作ることができないので、ユーザ要求に失敗する。
【0087】
ShadowAccountsForAIIUsers:ユーザ・アイデンティティがUPN/電子メールである場合に、FS−Rは、そのユーザについてシャドウ・アカウント・ログオンだけを試みなければならないことを示し、SAMLトークンにSIDを含めない。そうでない場合に、FS−Rは、結果のクレイム・コレクションにActiveDirectoryGroupClaimクレイムが含まれる場合であっても、ユーザ要求に失敗する。実際に、ActiveDirectoryGroupClaimクレイムは、普通のGroupClaimの意味でコレクションに現れる場合があり、これらをShadowAccountsForAIIUsersの値に従ってADグループとして扱うことは、管理者の意図ではない。
【0088】
WSに発行されたSAMLトークン内のパックされたSID構造体の存在は、WSがSIDログオンを試みなければならないことを示す。この構造体は、SIDログオンの前にシャドウ・アカウント・ログオンを試みなければならないかどうかも示す。具体的に言うと、この構造体のFlagsパラメータのビット2がセットされている場合に、WSは、まず、SAMLトークンからのUPN/電子メール・アイデンティティ・クレイムを使用してシャドウ・アカウント・ログオンを試みる。そうでない場合には、WSはSIDログオンだけを試みる。SID構造体が存在しない場合には、WSは、シャドウ・アカウント・ログオンだけを行う。
【0089】
UIは、通常、信頼される非DMZ領域のShadowAccountExistence列挙タイプの値をセットすることをサポートする。UIは、組織クレイム内の新しいActiveDirectoryGroupClaimのクレイム・タイプもサポートする。新しいクレイム・タイプと既存のグループ・クレイム・タイプの間の唯一の相違は、Sid属性の追加であり、このSid属性は、ADストアによるグループ・クレイムの取り込み時に、UI内に既に実装されているものと同一のObject Pickerコードを介して取り込まれる。
【0090】
ユーザSID生成
FSは、次のようにユーザSIDを生成する。SIDは、所与の信頼される領域からの所与のユーザについて一意である。SIDは、通常、28バイトの長さ(普通のAD SIDのサイズである)である。SIDのSID_IDENTIFIER_AUTHORITYには、通常は、他の既存SIDからそのSIDを区別するために、新しいADFSオーソリティがセットされる。SIDサブオーソリティに割り当てられた20バイトは、文字列「<trusted realm URI>\<identity claim value>」のハッシュが書き込まれ、ここで、<trusted realm URI>は、SAMLトークンを発行したアカウント領域のURIであり、<identity claim value>は、SAMLトークからのアイデンティティ・クレイム(UPN、電子メール、またはCommonName)の値である。20バイトのハッシュは、通常、所与の領域からの所与のユーザに一意のSIDを生成するのに十分に長い。したがって、要約すると、生成されるSIDは、通常、「S−1−<ADFSオーソリティ>−<20バイトハッシュを書き込まれる5DWORDサブオーソリティ>」のように見える。
【0091】
フェデレーテッド・クライアントに発行されるWebSSOトークンが、Advice要素内にSIDを有しないことに留意されたい。WSは、FS−Rによって発行されたWebSSOトークンを、クッキーとして、UPNクレイムと共に受信する。WebSSOトークンは、NTサービスによって検証され、UPNが、LSA認証パッケージに渡される。WSが、Windows(登録商標)2003(Microsoft社の商標)ドメイン内にあり、Kerberos S4Uがサポートされる場合に、サービスは、LsaLogonUserを用いてKerberos認証パッケージを呼び出し、NTトークンが返される。WSが、Windows(登録商標) 2000ドメイン内にある場合に、WebSSO認証パッケージが、LsaLogonUserを使用して呼び出され、UPNが、このパッケージに渡され、トークンが返される。WebSSO認証パッケージは、AuthZ APIを使用して、UPNで渡されたSIDを得、次に、これらのSIDに基づいてトークンを作る。
【0092】
LsaLogonUserを呼び出すときに使用される構造体は、次の通りである。
【0093】
【表5】

【0094】
この場合にはサービスであるクライアント・アプリケーションは、パッケージ名(「WebSsoAp」)を用いてLsaLookupAuthenticationPackageを呼び出し、次に、LsaLogonUserを呼び出し、AuthInfoBufferパラメータで書き込まれた_WEBSSO_LOGON構造体を供給する。
【0095】
認証パッケージは、AzManから取り出した、クライアントUPNに対するインデックスであるトークン情報のAVLツリー・ベース・キャッシュを維持する。
【0096】
コンピューティング環境
図9に、本明細書に記載のウェブSSOを実装できる例示的なコンピューティング環境900を示す。例示的なコンピューティング環境900は、コンピューティング・システムの1例にすぎず、本明細書に記載の例をこの特定のコンピューティング環境に制限することは意図されていない。
【0097】
たとえば、コンピューティング環境900は、多数の他の汎用または特殊目的のコンピューティング・システム構成を用いて実施することができる。周知のコンピューティング・システムの例に、パーソナル・コンピュータ、ハンドヘルド・デバイスまたはラップトップ・デバイス、マイクロ・プロセッサ・ベースのシステム、マルチ・プロセッサ・システム、セットトップボックス、ゲーム機、コンシューマ・エレクトロニクス、セル電話機、PDA、および類似物を含めることができるが、これらに制限はされない。
【0098】
コンピュータ900に、コンピューティング・デバイス901の形の汎用コンピューティング・システムが含まれる。コンピューティング・デバイス901のコンポーネントに、1つまたは複数のプロセッサ(CPU、GPU、マイクロ・プロセッサ、および類似物を含む)907、システム・メモリ909、およびさまざまなシステム・コンポーネントを結合するシステム・バス908が含まれる。プロセッサ907は、コンピューティング・デバイス901の動作を制御するものおよび他の電子デバイスおよびコンピューティング・デバイス(図示せず)と通信するものなど、さまざまなコンピュータ実行可能命令を処理する。システム・バス908は、メモリ・バスまたはメモリ・コントローラ、周辺バス、accelerated graphics port、およびさまざまなバス・アーキテクチャのいずれかを使用するプロセッサ・バスまたはローカル・バスを含む、任意の個数の複数のタイプのバス構造を表す。
【0099】
システム・メモリ909に、ランダム・アクセス・メモリ(RAM)などの揮発性メモリおよび/または読取専用メモリ(ROM)などの不揮発性メモリの形のコンピュータ可読媒体が含まれる。基本入出力システム(BIOS)が、ROMに格納されている。RAMには、通常、1つまたは複数のプロセッサ907がダイレクトにアクセス可能および/またはこれによって現在操作されているデータおよび/またはプログラム・モジュールが含まれる。
【0100】
マス・ストレージ・デバイス904を、コンピューティング・デバイス901に結合するか、バスに結合することによってコンピューティング・デバイスに組み込むことができる。そのようなマス・ストレージ・デバイス904に、リムーバブル不揮発性磁気ディスク(たとえば、「フロッピー(登録商標)・ディスク」)905から読み取り、これに書き込む磁気ディスク・ドライブ、またはCD ROMもしくは類似物などのリムーバブル不揮発性光ディスク906から読み取り、かつ/またはこれに書き込む光ディスク・ドライブを含めることができる。コンピュータ可読媒体905および906は、通常、フロッピー(登録商標)・ディスク、CD、ポータブル・メモリ・スティック、および類似物で供給されるコンピュータ可読命令、データ構造、プログラム・モジュール、および類似物を、示す。
【0101】
たとえば、オペレーティング・システム、1つまたは複数のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データを含む、任意の個数のプログラム・モジュールを、ハードディスク910、マス・ストレージ・デバイス904、ROMおよび/またはRAM909に格納することができる。そのようなオペレーティング・システム、アプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データのそれぞれ(またはこれらのある組合せ)に、本明細書に記載のシステムおよび方法の実施形態を含めることができる。
【0102】
ディスプレイ・デバイス902を、ビデオ・アダプタ911などのインターフェースを介してシステム・バス908に接続することができる。ユーザは、キーボード、ポインティング・デバイス、ジョイスティック、ゲームパッド、シリアル・ポート、および/または類似物などの任意の個数の異なる入力デバイス903を介してコンピューティング・デバイス901とインターフェースすることができる。上記および他の入力デバイスは、システム・バス908に結合された入出力インターフェース912を介してプロセッサ907に接続されるが、パラレル・ポート、ゲーム・ポート、および/またはUSB(universal serial bus)などの他のインターフェースおよびバス構造によって接続することができる。
【0103】
コンピューティング・デバイス900は、1つまたは複数のローカル・エリア・ネットワーク(LAN)、広域ネットワーク(WAN)、および類似物を介する1つまたは複数のリモート・コンピュータへの接続を使用してネットワーク化された環境で動作することができる。コンピューティング・デバイス901は、ネットワーク・アダプタ913を介して、あるいはその代わりにモデム、DSL、ISDNインターフェース、または類似物によって、ネットワーク914に接続される。
【0104】
当業者は、プログラム命令の格納に使用されるストレージ・デバイスを、ネットワーク上で分散できることを諒解するであろう。たとえば、リモート・コンピュータに、ソフトウェアとして、説明された処理の例を格納することができる。ローカル・コンピュータまたは端末コンピュータは、リモート・コンピュータにアクセスし、ソフトウェアの一部またはすべてをダウンロードして、プログラムを実行することができる。その代わりに、ローカル・コンピュータが、必要に応じてソフトウェアの一部をダウンロードするか、ローカル端末でソフトウェア命令の一部を、リモート・コンピュータ(またはコンピュータ・ネットワーク)でソフトウェア命令の一部を実行することによって分散式に処理することができる。当業者は、当業者に既知の従来の技法を使用することによって、ソフトウェア命令のすべてまたは一部を、DSP、プログラマブル・ロジック・アレイ、または類似物などの専用回路によって実行できることも理解するであろう。
【図面の簡単な説明】
【0105】
【図1】コンピュータ・オペレーティング・システムの一部としてのウェブ・シングル・サイン・オンを示す図である。
【図2】ウェブSSOを実施するさまざまなネットワークの例を示す図である。
【図3】ウェブSSO中にセキュリティを維持するのに使用されるシステム・コンポーネントを示すブロック図である。
【図4】エクストラネット・アクセスに関する全体的な処理フローを示すブロック図である。
【図5】エクストラネット・リソースにアクセスするのにトークンを使用する方法を示す流れ図である。
【図6】エクストラネット・リソースにアクセスするのにトークンを使用する方法を示す流れ図である。
【図7】エクストラネット・リソースに対するフェデレーテッド・パートナーに関する全体的な処理フローを示す流れ図である。
【図8】フェデレーション・パートナーによるアクセスを可能にするNTアクセス・トークンの生成を可能にするためにクレイムをマッピングする3つの異なる形を示す流れ図である。
【図9】本明細書に記載のウェブSSOおよびフェデレーテッド・パートナーによるネットワーク・アクセスを実装できる例示的なコンピューティング環境を示す図である。
【符号の説明】
【0106】
101 ラップトップ
102 PC
103 ウェブ・サーバ
104 オペレーティング・システム
105 オペレーティング・システムのネットワーキング部分
106 シングル・サイン・オン(SSO)
107 ウェブ・シングル・サイン・オン(ウェブSSO)
108 フェデレーテッド・リソース・サイン・オン
201 イントラネット
202 DMZ
203 イントラネット
204 パートナアー・カウント・ストア
205 消費者アカウント・ストア
206 ウェブ・サイト・エクストラネット・アカウント・ストア
207 ウェブ・サイト従業員アカウント・ストア
208 SSOを用いるパートナー・ウェブ・クライアント
209 SSOを用いる消費者ウェブ・クライアント
210 SSOを用いる消費者またはパートナーのウェブ・クライアント
211 SSOを用いる従業員ウェブ・クライアント
212 ウェブ・サイト
213 ファイヤウォール
214 フェデレーテッドB2B
215 フェデレーテッドB2C
216 エクストラネット
217 B2E
218 インターネット
301 アクティブ・ディレクトリのセキュリティ・トークン・サービス・プロキシ
302 ウェブ・サイト信頼を管理するフェデレーション・サービス
303 ウェブ・アプリケーションのSSOエージェント・プロセス・セキュリティ・ト
304 パッシブ・クライアント・プロトコル
305 アクティブ・ディレクトリ
306 アカウント・ストア
308 FSA
309 FSR
310 FSR’
311 ウェブSSOを用いるウェブ・クライアント
312 ウェブ・サイト・アプリケーション
313 イントラネット
314 DMZ
315 インターネット
316 イントラネット
320 WS
321 FSP−A
401 イントラネット
402 DMZ
403 インターネット
404 コープネットAD
405 Windows(登録商標)信頼
406 エクストラネットAD
407 コープネット・リソース領域内のログイン・サーバ/フェデレーション・サーバ LS−A/FS−A
408 フェデレーション信頼
409 エクストラネット・アカウント領域内のログイン・サーバ/フェデレーション・サーバ LS−R/FS−R
410 コープネット上のクライアント
411 インターネット上のクライアント
412 LS−A−EXT
413 WS
701 リソースDMZ
702 インターネット
703 アカウント・コープネット
704 リソースFS
705 Windows(登録商標)信頼
706 アカウントFS
707 コープネット・アカウント領域内のログイン・サーバ/フェデレーション・サーバ LS−R/FS−R
708 フェデレーション信頼
709 エクストラネット・リソース領域内のログイン・サーバ/フェデレーション・サーバ LS−A/FS−A
710 WS
711 インターネット上のクライアント
712 コープネット上のクライアント
900 コンピュータ環境
901 コンピューティング・デバイス
902 ディスプレイ
903 入出力デバイス
904 周辺ドライブ
905 フロッピー(登録商標)・ディスク
906 光ディスク
907 処理ユニット
908 システム・バス
909 システム・メモリ
910 ハードディスク
911 ビデオ・アダプタ
912 入出力インターフェース
913 ネットワーク・アダプタ


【特許請求の範囲】
【請求項1】
フェデレーテッド・パートナーに配置された単一のアクティブ・ディレクトリ、
イントラネットに関連付けられたDMZに配置されたウェブ・サーバ、および
インターネット接続を介して前記ウェブ・サーバに結合された、前記ウェブ・サーバにサイン・オンすることができる、前記フェデレーテッド・パートナーに配置されたクライアント
を備えることを特徴とするコンピュータ・ユーザを認証するシステム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate


【公開番号】特開2006−164247(P2006−164247A)
【公開日】平成18年6月22日(2006.6.22)
【国際特許分類】
【出願番号】特願2005−319596(P2005−319596)
【出願日】平成17年11月2日(2005.11.2)
【出願人】(500046438)マイクロソフト コーポレーション (3,165)
【Fターム(参考)】