Web 認証ブローカーのしくみ (Windows ストア アプリ)

Web 認証ブローカーとは、アプリと認証の間のブローカー (仲介役) です。 一連の API、ブローカー、Web ホストで構成されます。アプリは、API を使ってブローカーと通信します。ブローカーは、異なるアプリ コンテナーに新しい Web ホスト プロセスを作成します。ブローカーはアプリと通信し、ユーザー インターフェイス (UI) を組み立てて、Web 認証ホストのライフサイクルを制御します。Web 認証ホストは、オンライン プロバイダーの Web サイトからページをレンダリングします。

次の図に、Web 認証ブローカーを使う情報のフローを示します。

Web 認証ブローカーのデータ フロー

一般的な使い方

Web 認証ブローカーを使う一般的なワークフローは次のとおりです。

  1. アプリは、要求 (WebAuthenticationBroker.AuthenticateAsync) とコールバック URI (WebAuthenticationBroker.GetCurrentApplicationCallbackUri) を指定して、Web 認証ブローカーを呼び出します。これらは、OAuth 2.0 プロトコルの Authorization Endpoint URI と Redirection URI に対応しています。OpenID プロトコルと以前のバージョンの OAuth の概念は似ています。

  2. ブローカーは、呼び出し元アプリに対してモーダルなシステム ダイアログ ボックスを作成します。

  3. ブローカーは、呼び出し元アプリまたはシステム上の他のアプリとは別の専用のアプリ コンテナーを選び、保存された Cookie をすべて削除します。

      このアプリ コンテナーは、シングル サインオン (SSO) モードでブローカーが開始された場合を除き、同時に 2 つのアプリに共有されることは決してありません。

  4. ブローカーは、選ばれたアプリ コンテナーで Web 認証ホストを開始します。

  5. ブローカーは、前に作成したダイアログ ボックスにホストのウィンドウをアタッチします。ホスト ウィンドウでは、Web コンテンツのレンダリングを行います。

  6. Web 認証ホストは、要求の URI にナビゲートします。通常、これはログオン ページです。

  7. ユーザーがリンクをクリックしたり情報を送信したりしてオンライン プロバイダーの Web サイトとやり取りすると、ホストはナビゲートする前に、各 URI がアプリから提供されるコールバック URI と一致するかどうかをチェックします。

  8. 一致した場合、ホストはナビゲーションを終了し、ブローカーに通知します。

  9. ブローカーはダイアログ ボックスを削除し、ホストによって作成されて保存された Cookie をすべてアプリ コンテナーから削除して、プロトコル データをアプリケーションに戻します。

Web 認証ホストは異なるプロセスの異なるアプリ コンテナーにあるため、ユーザーの資格情報をアプリから切り離すことができます。

関連トピック

Web 認証ブローカーのサンプル

Windows.Security.Authentication.Web

オンライン ID プロバイダーへの接続