このドキュメントはアーカイブされており、メンテナンスされていません。

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

発行: 2013年2月

更新日: 2015年6月

適用対象: Azure

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    • [戻り先 URL] フィールドに、「http://localhost:65000/」と入力します。

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

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

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



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

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

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

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

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

  1. サンプルを構成するには、SamplesConfiguration.cs (acs\Management\ManagementService\Common) を開きます。Common クラス ライブラリにある SamplesConfiguration クラスのプレースホルダーを、アクセス制御名前空間に関する情報に置き換えます。情報は ACS 管理ポータルで見つけることができます。

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

    • ServiceNamespace - アクセス制御名前空間の名前を入力します。

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

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

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

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

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

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

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

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

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

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

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

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

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

  7. F5 キーを押して、アプリケーションを実行します。ブラウザーは ACS のホーム領域検出ページにリダイレクトされます。

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

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

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

関連項目

表示: