コード サンプル: 単純な MVC 2 を ASP.NET する
更新日: 2015 年 6 月 19 日
適用先:Azure
このサンプルでは、Microsoft Azure Active Directory Access Control (Access Control サービスまたは ACS とも呼ばれます) を ASP.NET MVC アプリケーションと統合する方法を示します。 このサンプルのコードは、Microsoft Azure Active Directory Access Control (ACS) コード サンプル パッケージの ASPNETSimpleMVC (C#\Websites\ASPNETSimpleMVC) サブディレクトリにあります。
前提条件
このサンプルを実行するには、次のものが必要になります。
Azure ホームページのアカウントとAccess Control名前空間。 このサンプルでは、Microsoft Azure管理ポータルに移動 (https://manage.WindowsAzure.com)、サインイン、および Active Directory のクリックの名前を前提としています。 (トラブルシューティングのヒント: "Active Directory" 項目が見つからないか使用できません)、Access Control名前空間名が異なる場合でも acssamples です。
Visual Studio 2010 (任意のバージョン)
Windows Identity Foundation SDK
詳細については、 ACS の前提条件 (https://go.microsoft.com/fwlink/?LinkId=221065) を参照してください。
サンプルを構成する
このサンプルに必要な ACS 構成は、ACS 管理ポータルまたは ACS 管理サービスを使用して実行できます。 このトピックでは両方のオプションについて説明します。
オプション 1: ACS 管理ポータルを使用したサンプルの構成
オプション 2: ACS 管理サービスを使用したサンプルの構成
オプション 1: ACS 管理ポータルを使用したサンプルの構成
ACS 管理ポータルを使用してサンプルを構成するには
Microsoft Azure管理ポータル (https://manage.WindowsAzure.com) に移動し、サインインし、[Active Directory] をクリックします。 (トラブルシューティングのヒント: "Active Directory" 項目が見つからないか、使用できません)
アクセス制御名前空間を作成するには、[新規] をクリックして [App サービス] をクリックし、[アクセス制御] をクリックしてから [簡易作成] をクリックします。 または、[アクセス制御名前空間]、[新規] を順にクリックします。
アクセス制御名前空間を管理するには、名前空間をクリックしてしてから [管理] をクリックします。 または、[アクセス制御名前空間] をクリックして名前空間を選択し、[管理] をクリックします。
このアクションで Access Control Service の管理ポータルが開きます。
ログインするときに Web サイトのユーザーが使用する ID プロバイダーとの関係を構築するには、[ID プロバイダー] をクリックし、[Yahoo!] と [Google] を追加します。 メイン ページに戻るには、[ホーム] をクリックします。
ACS にアプリケーションを登録するには、Access Control サービス管理ポータルのホーム ページで[証明書利用者アプリケーション]、[追加] の順にクリックし、フォームに次の情報を入力します。
[名前] フィールドに「ASPNET Simple MVC Sample」と入力します。
[ 領域 ] フィールドに「〘」と入力します。 https://localhost:63000/
[ 戻る URL ] フィールドに「〘」と入力します。 https://localhost:63000/
[ エラー URL ] フィールドに「〘」と入力します。 https://localhost:63000/Error
[トークン形式] フィールドで、[SAML 2.0] を選択します。
[トークン署名] フィールドで、[サービスの名前空間証明書を使用 (標準)] を選択します。
[保存] をクリックし、[ホーム] をクリックしてホーム ページに戻ります。
証明書利用者が登録されたら、ACS がアプリケーションに発行する要求を決定するルールを作成します。 このサンプルでは、ID プロバイダーが発行したすべての要求をパススルーするだけです。 このルールを作成するには、[ルール グループ] をクリックし、[ASPNET Simple MVC Sample の既定のルール グループ] をクリックします。 ページの下部近くにある [生成] リンクをクリックします。 3 つの ID プロバイダー Yahoo!、Google、Windows Live ID (Microsoft アカウント) が選択されていることを確認し、[生成] をクリックします。
[保存] をクリックし、メイン ページに戻ります。
ACS が構成されている状態で、Visual Studioを開きます。
オプション 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 アプリケーションを実行します。これにより、このサンプルを実行するように ACS が構成されます。
サンプルの実行
サンプルを実行するには
Visual Studioの Websites\ASPNETSimpleMVC\ASPNETSimpleMVC.sln にあるサンプルを開きます
F5 キーを押してアプリケーションを起動します。
ブラウザーを閉じてアプリケーションを停止し、ACS の構成に進みます。
プロジェクトを右クリックし、ショートカット メニューから [STS 参照の追加] を選択します。
ダイアログ ボックスで、[アプリケーション URI] フィールドに Web アプリケーションのルートを入力し、[次へ] をクリックします。 このサンプルでは、この値は https://localhost:63000/
注意
末尾のスラッシュは、証明書利用者の ACS に入力した値と一緒に並ぶので重要です。 ウィザードによって、サイトで SSL を使用していないという警告が表示されます。 [はい] をクリックしてこの警告を受け入れます。ただし、実稼働 Web サイトでは、このようなシナリオではほとんど SSL を使用する必要があることに注意してください。
次のウィンドウで、[既存の STS を使用] ラジオ ボタンを選択し、Access Control名前空間によって発行されたWS-Federation メタデータの URI を入力します。 URI を見つけるには、ACS ポータルで [ アプリケーション統合] をクリックします。 Access Control名前空間の名前が acssamples の場合、URI は https://acssamples.accesscontrol.windows.net/FederationMetadata/2007-06/FederationMetadata.xml. この値を入力したら、[次へ] をクリックします。
Web サイトでは暗号化されたトークンを必要としないため、[次へ] をクリックし、[終了] をクリックします。
ACS とアプリケーションが構成されました。 Visual Studioで F5 キーを押してアプリケーションを実行します。 お使いのブラウザーは、ACS でホストされているホーム領域検出ページに移動されます。
[Google] をクリックします。 ブラウザーは Google サインイン ページにリダイレクトされます。
Google アカウントの資格情報を入力し、ユーザーの同意フォームを拒否します。
ブラウザーに戻り https://localhost:63000/Error 、サイトへのログインがキャンセルされたことを示すカスタム エラー文字列を表示する必要があります。
再試行するには、リンクをクリックし、ID プロバイダーをクリックします。
ブラウザーが ID プロバイダーを参照している場合は、テスト アカウントの資格情報を入力します。ただし、今回はユーザー同意フォームを受け入れます。
ブラウザーに戻る https://localhost:63000/必要があります。 テスト ID の名前がページの右上に表示されることに注目してください。 このデータは ID プロバイダーによって発行され、ACS を介してアプリケーションに返されました。