コード サンプル: フェデレーション サインアウトを使用した MVC 4 の ASP.NET

更新日: 2015 年 6 月 19 日

適用先:Azure

このサンプルでは、Microsoft Azure Active Directory Access Control (Access Control Service または ACS とも呼ばれます) を ASP.NET MVC 4 アプリケーションと統合する方法を示します。 ACS 統合は、ASP.NET MVC 4 アプリケーションでサポートされている ID プロバイダーに対してシングル サインオンおよびシングル サインアウトの機能を有効にします。

このサンプルのコードは、Microsoft Azure Active Directory Access Control (ACS) コード サンプル パッケージの ASPNETSimpleMVC4 (C#\Websites\ASPNETSimpleMVC4) サブディレクトリにあります。

ACS のシングル サインアウト機能の詳細については、「 シングル サインアウト」を参照してください。

前提条件

このサンプルを実行するには、次のものが必要になります。

詳細については、「 ACS の前提条件」を参照してください。

サンプルを構成する

ACS 管理ポータルまたは ACS 管理サービスを使用して、このサンプルを構成できます。 このトピックでは両方のオプションについて説明します。

  • オプション 1: ACS 管理ポータルを使用する

  • オプション 2: ACS 管理サービスの使用

オプション 1: ACS 管理ポータルを使用する

ACS 管理ポータルを使用してサンプルを構成するには

  1. Microsoft Azure管理ポータル (https://manage.WindowsAzure.com) に移動し、サインインし、[Active Directory] をクリックします。 (トラブルシューティングのヒント: "Active Directory" 項目が見つからないか、使用できません)

  2. アクセス制御名前空間を作成するには、[新規] をクリックして [App サービス] をクリックし、[アクセス制御] をクリックしてから [簡易作成] をクリックします。 または、[アクセス制御名前空間][新規] を順にクリックします。

  3. アクセス制御名前空間を管理するには、名前空間をクリックしてしてから [管理] をクリックします。 または、[アクセス制御名前空間] をクリックして名前空間を選択し、[管理] をクリックします。

    ACS 管理ポータルが開きます。

  4. アプリケーションのユーザーが Google または Yahoo! の ID でログインできるようにするには、[ ID プロバイダー] をクリックし、[ 追加 ] をクリックし、 GoogleYahoo! を追加します。

    手順については、ACS ID プロバイダーとしての Google と ACS ID プロバイダーとしての Yahoo! を参照してください。 Windows Live ID (Microsoft アカウント) は既定で追加され、削除できません。

  5. アプリケーションを ACS に登録するには、[ 証明書利用者アプリケーション] をクリックし、[ 追加] をクリックし、フォームに次の情報を入力して、[ 保存] をクリックします。

    • [名前] フィールドに、「ASPNETMVC4Sample」と入力します。

    • [ 領域 ] フィールドに「〘」と入力します。 https://localhost:65000/

    • [ 戻り値の URL ] フィールドに「〘」と入力します。 https://localhost:65000/

    • [ エラー URL ] フィールドに「〘」と入力します。 https://localhost:65000/Error

    • [トークン形式] フィールドで、[SAML 2.0] を選択します。

    • [トークン署名] フィールドで、[サービスの名前空間証明書を使用 (標準)] を選択します。

    [証明書利用者アプリケーションの追加] ページのフィールドと値については、「 証明書利用者アプリケーション」を参照してください。

  6. ID プロバイダーによって発行されるすべての要求を証明書利用者アプリケーションに送信するルール グループを作成するには、[ルール グループ] をクリックし、[ACS の単純な MVC4 サンプルの既定のルール グループ] をクリックして、[生成] をクリックしてから [保存] をクリックします。

    ACS ポータルの [ルール グループ] セクションでは、ACS がアプリケーションに送信する要求を決定するルールを作成します。 生成されたすべてのルールを選択することで、ID プロバイダーによって発行されたすべての要求を証明書利用者アプリケーションに送信するように ACS を構成します。

サンプルが構成され、Visual Studio 2012 で実行する準備ができました。

オプション 2: ACS 管理サービスの使用

Visual Studioサンプル ソリューションには、ACS 管理サービスと共通クラス ライブラリで定義されている共通ヘルパーを使用する ConfigureSample というコンソール アプリケーションがあります。 このアプリケーションを使用して、このサンプルで使用するAccess Control名前空間を構成できます。

ACS 管理サービスを使用してサンプルを構成するには

  1. サンプルを構成するには、SamplesConfiguration.cs (acs\Management\ManagementService\Common) を開きます。 Common クラス ライブラリの SamplesConfiguration クラスのプレースホルダーを、Access Control名前空間に関する情報に置き換えます。 この情報は、ACS 管理ポータルで確認できます。

    ACS 管理ポータルに移動するには:Microsoft Azure管理ポータル (https://manage.WindowsAzure.com) に移動し、サインインして、[Active Directory] をクリックします。 (トラブルシューティングのヒント: "Active Directory" 項目が見つからないか、使用できません)Access Control名前空間を管理するには、名前空間を選択し、[管理] をクリックします。 または、[アクセス制御名前空間] をクリックして名前空間を選択し、[管理] をクリックします。

    • ServiceNamespace - Access Control名前空間の名前を入力します。

    • ManagementServiceIdentityName - ACS 管理サービス アカウントの名前を入力します。 既定値は ManagementClient です

      管理サービス アカウント名を見つけるには、ACS 管理ポータルで [ 管理サービス] をクリックします。 [管理サービス アカウント] にアカウントが名前順に一覧表示されます。

    • ManagementServiceIdentityKey - 管理サービス アカウントのパスワードを入力します。

      管理サービス アカウントのパスワードを見つけるには、ACS 管理ポータルで [ 管理サービス] をクリックします。 管理サービス アカウントの名前をクリックしてから、[資格情報] で [パスワード] をクリックします。 [パスワード] フィールドにパスワードが表示されます。 パスワードをコピーするには、[パスワードの表示] をクリックします。

  2. Visual Studioで ConfigureSample アプリケーションを実行します。 アプリケーションは SamplesConfiguration.cs のデータを使用して、サンプルを実行するように ACS を構成します。

サンプルの実行

サンプルを実行するには

  1. Visual Studio 2012 のサンプル ASPNETSimpleMVC4.sln (C#\Websites\ASPNETSimpleMVC4\) のソリューション ファイルを開きます。

  2. プロジェクトを右クリックして、ショートカット メニューから [Identity and Access] を選択します。

  3. [Azure Access Control Service の使用] を選択します。

  4. [1 つ以上のプロバイダーを選択] の横にある [構成] をクリックします。

  5. Access Control名前空間と管理サービス アカウントのパスワードを入力します。

  6. 一覧から 1 つ以上の ID プロバイダーを選択します。

    表示される ID プロバイダーは、ACS ポータルまたは ACS 管理サービスでサンプルを構成したときに追加した ID プロバイダーです。

    これで、ACS を使用するように証明書利用者アプリケーションが構成されました。

  7. F5 キーを押してアプリケーションを実行します。 ブラウザーが ACS ホーム領域検出ページに移動します。

  8. [Google] をクリックします。 ブラウザーは Google のサインイン ページにリダイレクトされます。

  9. Google アカウントの資格情報を入力して、ユーザー同意フォームを拒否します。

ブラウザーは https://localhost:65000/ にリダイレクトされます。 ページの左上隅に Google ユーザー名が表示されているのがわかります。 これは、証明書利用者アプリケーションにサインインしていることを示しています。証明書利用者アプリケーションからサインアウトするには、サインアウト リンクをクリックします。 もう認証されていないことがわかります。

参照

概念

方法: Access Control名前空間を作成する
ACS の管理サービス