コード サンプル: フェデレーション サインアウトを使用した 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 のシングル サインアウト機能の詳細については、「 シングル サインアウト」を参照してください。
前提条件
このサンプルを実行するには、次のものが必要になります。
Azure portal (https://go.microsoft.com/fwlink/?LinkID=275081) 内のアカウントとAccess Control名前空間。 このサンプルでは、acssamples と呼ばれるAccess Control名前空間を使用します。 名前空間の名前は異なる場合があります。
Access Control名前空間の作成の詳細については、「方法: Access Control名前空間を作成する」を参照してください。
Visual Studio 2012
Visual Studio 2012 用 ID およびアクセス ツール (https://msdn.microsoft.com/library/hh545418.aspx)
詳細については、「 ACS の前提条件」を参照してください。
サンプルを構成する
ACS 管理ポータルまたは ACS 管理サービスを使用して、このサンプルを構成できます。 このトピックでは両方のオプションについて説明します。
オプション 1: ACS 管理ポータルを使用する
オプション 2: ACS 管理サービスの使用
オプション 1: ACS 管理ポータルを使用する
ACS 管理ポータルを使用してサンプルを構成するには
Microsoft Azure管理ポータル (https://manage.WindowsAzure.com) に移動し、サインインし、[Active Directory] をクリックします。 (トラブルシューティングのヒント: "Active Directory" 項目が見つからないか、使用できません)
アクセス制御名前空間を作成するには、[新規] をクリックして [App サービス] をクリックし、[アクセス制御] をクリックしてから [簡易作成] をクリックします。 または、[アクセス制御名前空間]、[新規] を順にクリックします。
アクセス制御名前空間を管理するには、名前空間をクリックしてしてから [管理] をクリックします。 または、[アクセス制御名前空間] をクリックして名前空間を選択し、[管理] をクリックします。
ACS 管理ポータルが開きます。
アプリケーションのユーザーが Google または Yahoo! の ID でログインできるようにするには、[ ID プロバイダー] をクリックし、[ 追加 ] をクリックし、 Google と Yahoo! を追加します。
手順については、ACS ID プロバイダーとしての Google と ACS ID プロバイダーとしての Yahoo! を参照してください。 Windows Live ID (Microsoft アカウント) は既定で追加され、削除できません。
アプリケーションを ACS に登録するには、[ 証明書利用者アプリケーション] をクリックし、[ 追加] をクリックし、フォームに次の情報を入力して、[ 保存] をクリックします。
[名前] フィールドに、「ASPNETMVC4Sample」と入力します。
[ 領域 ] フィールドに「〘」と入力します。 https://localhost:65000/
[ 戻り値の URL ] フィールドに「〘」と入力します。 https://localhost:65000/
[ エラー URL ] フィールドに「〘」と入力します。 https://localhost:65000/Error
[トークン形式] フィールドで、[SAML 2.0] を選択します。
[トークン署名] フィールドで、[サービスの名前空間証明書を使用 (標準)] を選択します。
[証明書利用者アプリケーションの追加] ページのフィールドと値については、「 証明書利用者アプリケーション」を参照してください。
ID プロバイダーによって発行されるすべての要求を証明書利用者アプリケーションに送信するルール グループを作成するには、[ルール グループ] をクリックし、[ACS の単純な MVC4 サンプルの既定のルール グループ] をクリックして、[生成] をクリックしてから [保存] をクリックします。
ACS ポータルの [ルール グループ] セクションでは、ACS がアプリケーションに送信する要求を決定するルールを作成します。 生成されたすべてのルールを選択することで、ID プロバイダーによって発行されたすべての要求を証明書利用者アプリケーションに送信するように ACS を構成します。
サンプルが構成され、Visual Studio 2012 で実行する準備ができました。
オプション 2: ACS 管理サービスの使用
Visual Studioサンプル ソリューションには、ACS 管理サービスと共通クラス ライブラリで定義されている共通ヘルパーを使用する ConfigureSample というコンソール アプリケーションがあります。 このアプリケーションを使用して、このサンプルで使用するAccess Control名前空間を構成できます。
ACS 管理サービスを使用してサンプルを構成するには
サンプルを構成するには、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 管理ポータルで [ 管理サービス] をクリックします。 管理サービス アカウントの名前をクリックしてから、[資格情報] で [パスワード] をクリックします。 [パスワード] フィールドにパスワードが表示されます。 パスワードをコピーするには、[パスワードの表示] をクリックします。
Visual Studioで ConfigureSample アプリケーションを実行します。 アプリケーションは SamplesConfiguration.cs のデータを使用して、サンプルを実行するように ACS を構成します。
サンプルの実行
サンプルを実行するには
Visual Studio 2012 のサンプル ASPNETSimpleMVC4.sln (C#\Websites\ASPNETSimpleMVC4\) のソリューション ファイルを開きます。
プロジェクトを右クリックして、ショートカット メニューから [Identity and Access] を選択します。
[Azure Access Control Service の使用] を選択します。
[1 つ以上のプロバイダーを選択] の横にある [構成] をクリックします。
Access Control名前空間と管理サービス アカウントのパスワードを入力します。
一覧から 1 つ以上の ID プロバイダーを選択します。
表示される ID プロバイダーは、ACS ポータルまたは ACS 管理サービスでサンプルを構成したときに追加した ID プロバイダーです。
これで、ACS を使用するように証明書利用者アプリケーションが構成されました。
F5 キーを押してアプリケーションを実行します。 ブラウザーが ACS ホーム領域検出ページに移動します。
[Google] をクリックします。 ブラウザーは Google のサインイン ページにリダイレクトされます。
Google アカウントの資格情報を入力して、ユーザー同意フォームを拒否します。
ブラウザーは https://localhost:65000/ にリダイレクトされます。 ページの左上隅に Google ユーザー名が表示されているのがわかります。 これは、証明書利用者アプリケーションにサインインしていることを示しています。証明書利用者アプリケーションからサインアウトするには、サインアウト リンクをクリックします。 もう認証されていないことがわかります。