方法: ACS を使用して最初のクレーム対応 ASP.NET アプリケーションを作成する
更新日: 2015 年 6 月 19 日
適用先:Azure
重要
ACS 名前空間では Google ID プロバイダー構成を OpenID 2.0 から OpenID Connect に移行できます。 移行は 2015 年 6 月 1 日までに完了する必要があります。 詳細なガイダンスについては、「ACS 名前空間を Google OpenID Connectに移行する」を参照してください。 移行を実行するまで、このチュートリアルは Facebook などの別の ID プロバイダーを使用して実行することができます。
適用対象
- Microsoft Azure Active Directory アクセス制御 (アクセス制御サービスまたは ACS)
概要
このトピックでは、ACS と ASP.NET 証明書利用者アプリケーションを統合するシナリオについて説明します。 Web アプリケーションを ACS と統合することで、コードから認証と承認の機能を考慮します。 つまり、ACS は、Web アプリケーションに対するユーザーの認証と承認を行うメカニズムを提供します。
このプラクティス シナリオでは、ACS は Google ID を使用してユーザーを認証し、証明書利用者アプリケーション ASP.NET テストします。
ACS と ASP.NET 証明書利用者アプリケーションの統合手順
重要
次の手順を実行する前に、システムが ACS の前提条件に要約されているすべての .NET フレームワークとプラットフォームの要件を満たしていることを確認します。
ACS を証明書利用者アプリケーション ASP.NET 統合するには、次の手順を実行します。
手順 1 - Access Control 名前空間を作成する
手順 2 – ACS 管理ポータルを起動する
手順 3 - ID プロバイダーを追加する
手順 4 – 証明書利用者アプリケーションを追加する
手順 5 - ルールを作成する
手順 6 - アプリケーションの統合情報を確認する
手順 7 - ASP.NET 証明書利用者アプリケーションを作成する
手順 8 - ACS と ASP.NET 証明書利用者アプリケーション間の信頼を構成する
手順 9 - ACS と ASP.NET 証明書利用者アプリケーションの統合をテストする
手順 1 - Access Control 名前空間を作成する
Access Control名前空間を作成する方法の詳細については、「方法: Access Control名前空間を作成する」を参照してください。
手順 2 – ACS 管理ポータルを起動する
ACS 管理ポータルでは、ID プロバイダーの追加、証明書利用者アプリケーションの構成、規則と規則のグループの定義、証明書利用者アプリケーションが信頼する資格情報の確立によって、Access Control名前空間を構成できます。
ACS 管理ポータルを起動するには
Microsoft Azure管理ポータル (https://manage.WindowsAzure.com) に移動し、サインインし、[Active Directory] をクリックします。 (トラブルシューティングのヒント: "Active Directory" 項目が見つからないか、使用できません)
アクセス制御名前空間を管理するには、名前空間をクリックしてしてから [管理] をクリックします。 または、[アクセス制御名前空間] をクリックして名前空間を選択し、[管理] をクリックします。
手順 3 - ID プロバイダーを追加する
このセクションでは、認証のために証明書利用者アプリケーションで使用する ID プロバイダーの追加方法について説明します。 ID プロバイダーの詳細については、「 ID プロバイダー」を参照してください。
ID プロバイダーを追加するには
ACS 管理ポータルで、左側のツリーで [ID プロバイダー] をクリックするか、[はじめに] セクションの [ID プロバイダー] リンクをクリックします。
[ID プロバイダー] ページで、[追加] をクリックし、ID プロバイダーとして [Google] を選択してから [次へ] をクリックします。
[Google ID プロバイダーの追加] ページでは、ログイン リンク テキスト (既定値は [Google] です) とイメージ URL の入力を求められます。 この URL は、この ID プロバイダーのログイン リンクとして使用できるイメージのファイルを指します。 これらのフィールドの編集は省略可能です。 この練習では、これらを編集せずに [保存] をクリックします。
手順 4 – 証明書利用者アプリケーションを追加する
このセクションでは、証明書利用者アプリケーションの追加および構成方法について説明します。 証明書利用者アプリケーションの詳細については、「証明書利用者アプリケーション」 を参照してください。
証明書利用者アプリケーションをセットアップするには
ACS 管理ポータルで、左側のツリーで [証明書利用者アプリケーション] をクリックするか、[はじめに] セクションの [証明書利用者アプリケーション] リンクをクリックします。
[証明書利用者アプリケーション] ページで、[追加] をクリックします。
[証明書利用者アプリケーションの追加] ページで、次の手順を実行します。
[名前] に、証明書利用者アプリケーションの名前を入力します。 この練習では、「TestApp」と入力します。
[モード] で、[手動で設定を入力する] を選択します。
[ 領域] に、ACS によって発行されたセキュリティ トークンが適用される URI を入力します。 この演習では、「.」と入力します https://localhost:7777/。
[ 戻り値の URL] に、ACS がセキュリティ トークンを返す URL を入力します。 この演習では、「.」と入力します https://localhost:7777/。
[ エラー URL (省略可能)]に、サインイン中にエラーが発生した場合に ACS が投稿できる URL を入力します。 この演習では、このフィールドは空白のままにします。
トークン形式で、ACS がこの証明書利用者アプリケーションにセキュリティ トークンを発行するときに使用するトークン形式を選択します。 この練習では、[SAML 2.0] を選択します。 トークンとトークン形式の詳細については、「 ACS でサポートされるトークン形式 」および「 証明書利用者アプリケーションのトークン形式」を参照してください。
トークン 暗号化ポリシーで、この証明書利用者アプリケーションに対して ACS によって発行されたトークンの暗号化ポリシーを選択します。 この練習では、既定値の [なし] を受け入れます。 トークン暗号化ポリシーの詳細については、「 証明書利用者アプリケーション」の「トークン暗号化ポリシー」を参照してください。
[トークンの有効期間 (秒)] で、有効な状態を維持するために ACS によって発行されるセキュリティ トークンの期間を指定します。 この練習では、既定値の [600] を受け入れます。 詳細については、 証明書利用者アプリケーションの「トークンの有効期間」を参照してください。
[ID プロバイダー] では、この証明書利用者アプリケーションで使用する ID プロバイダーを選択します。 この演習では、チェックされた既定値 (Google と Windows Live ID) をそのまま使用します。
[ルール グループ] で、要求の処理時にこの証明書利用者アプリケーションに使用するルール グループを選択します。 この練習では、既定でチェック ボックスがオンになっている [新しいルール グループの作成] を受け入れます。 ルール グループの詳細については、「 ルール グループとルール」を参照してください。
[トークン署名設定] セクションで、Access Control名前空間の証明書を使用するか、このアプリケーションに固有のカスタム証明書を使用して SAML トークンに署名するかを選択します。 この練習では、既定値の [サービスの名前空間証明書を使用 (標準)] を受け入れます。 トークン署名の詳細については、「 証明書利用者アプリケーションのトークン署名」を参照してください。
[保存] をクリックします。
手順 5 - ルールを作成する
このセクションでは、要求が ID プロバイダーから証明書利用者アプリケーションに渡される方法を決定するルールの定義方法について説明します。 ルールとルール グループの詳細については、「 ルール グループとルール」を参照してください。
ルールを作成するには
ACS 管理ポータルのホーム ページで、左側のツリーで [ルール グループ] をクリックするか、[はじめに] セクションの [ルール グループ] リンクをクリックします。
[ルール グループ] ページで、[TestApp の既定のルール グループ] (証明書利用者アプリケーションに「TestApp」という名前を付けたため) をクリックします。
[ルール グループの編集] ページで [生成] をクリックします。
[ルールの生成: TestApp の既定のルール グループ] ページで、既定で選択されている ID プロバイダー (この演習では、Google と Windows Live ID) をそのまま使用し、[生成] ボタンをクリックします。
[ルール グループの編集] ページで [保存] をクリックします。
手順 6 - アプリケーションの統合情報を確認する
ACS 管理ポータルの [ アプリケーション統合 ] ページで、ACS と連携するように証明書利用者アプリケーションを変更するために必要なすべての情報とコードを確認できます。
アプリケーションの統合情報を確認するには
ACS 管理ポータルのホーム ページで、左側のツリーで [アプリケーション統合] をクリックするか、[はじめに] セクションの [アプリケーション統合] リンクをクリックします。
[アプリケーション統合] ページに表示される ACS URI は、Access Control名前空間に固有です。
この演習では、残りの手順をすばやく実行するために、このページを開いたままにしておくことをお勧めします。
手順 7 - ASP.NET 証明書利用者アプリケーションを作成する
このセクションでは、最終的に ACS と統合する ASP.Net 証明書利用者アプリケーションを作成する方法について説明します。
ASP.Net 証明書利用者アプリケーションを作成するには
2010 Visual Studio実行するには、[スタート] をクリックし、[実行] をクリックし、次のテキストを入力して Enter キーを押します。
devenv.exeVisual Studio で、[ファイル] をクリックしてから [新しいプロジェクト] をクリックします。
[新しいプロジェクト] ウィンドウで、[Visual Basic] または [Visual C#] テンプレートを選択してから、[ASP.NET MVC 2 Web アプリケーション] を選択します。
[名前] に、次のテキストを入力してから [OK] をクリックします。
TestApp[単体テスト プロジェクトの作成] で、[単体テスト プロジェクトを作成しない] を選択してから [OK] をクリックします。
ソリューション エクスプローラーで、[TestApp] を右クリックしてから [プロパティ] を選択します。
[TestApp プロパティ] ウィンドウで、[Web] タブを選択し、[Visual Studio 開発サーバーの使用] で [特定ポート] をクリックしてから、値を「7777」に変更します。
直前に作成したアプリケーションを実行およびデバッグするには、F5 キーを押します。 エラーが見つからない場合は、ブラウザーに空の MVC プロジェクトが表示されます。
次の手順を実行するために、Visual Studio 2010 を開いたままにしておきます。
手順 8 - ACS と ASP.NET 証明書利用者アプリケーション間の信頼を構成する
このセクションでは、ACS を前の手順で作成した ASP.NET 証明書利用者アプリケーションと統合する方法について説明します。
ASP.NET 証明書利用者アプリケーションと ACS 間の信頼を構成するには
Visual Studio 2010 の TestApp 用のソリューション エクスプローラーで、[TestApp] を右クリックしてから [STS 参照の追加] を選択します。
[フェデレーション ユーティリティ] ウィザードで、次の操作を実行します。
[フェデレーション ユーティリティ ウィザードの開始] ページの [アプリケーション URI] に、アプリケーション URI を入力してから [次へ] をクリックします。 このデモでは、アプリケーション URI は https://localhost:7777/.
注意
末尾のスラッシュは、証明書利用者アプリケーションの ACS 管理ポータルで入力した値と一致するため、重要です。 詳細については、「手順 4 - 証明書利用者アプリケーションを追加する」を参照してください。
警告が表示されます。 ID 1007: アプリケーションはセキュリティで保護された https 接続でホストされていません。続行しますか? このデモでは、[ はい] をクリックします。
注意
運用環境では、SSL の使用に関するこの警告は有効であるため、消去しないでください。
[ セキュリティ トークン サービス ] ページで、[ 既存の STS の使用] を選択し、ACS によって発行されたWS-Federationメタデータ URL を入力して、[ 次へ] をクリックします。
注意
WS-Federation メタデータ URL の値は、ACS 管理ポータルの [アプリケーション統合 ] ページにあります。 詳細については、「手順 6 - アプリケーション統合情報を確認する」を参照してください。
[STS 署名証明書チェーンの検証エラー] ページで、[次へ] をクリックします。
[セキュリティ トークンの暗号化] ページで [次へ] をクリックします。
[提供された要求] ページで、[次へ] をクリックします。
[要約] ページで、[完了] をクリックします。
[フェデレーション ユーティリティ] ウィザードの実行が正常に終了したら、参照が Microsoft.IdentityModel.dll アセンブリに追加され、ASP.NET MVC 2 Web アプリケーション (TestApp) で Windows Identity Foundation を構成する Web.config ファイルに値が書き込まれます。
Web.config を開き、主な system.web 要素を見つけます。 これは以下のようになります。
<system.web> <authorization> <deny users="?" /> </authorization>
主な system.web 要素の下に次のコードを追加して、要求の検証が有効になるように Web.config を変更します。
<!--set this value--> <httpRuntime requestValidationMode="2.0"/>
更新を実行したら、上記コード フラグメントは次のようになっている必要があります。
<system.web> <!--set this value--> <httpRuntime requestValidationMode="2.0"/> <authorization> <deny users="?" /> </authorization>
手順 9 - ACS と ASP.NET 証明書利用者アプリケーションの統合をテストする
このセクションでは、証明書利用者アプリケーションと ACS の統合をテストする方法について説明します。
ASP.NET 証明書利用者アプリケーションと ACS の統合をテストするには
Visual Studio 2010 を開いたまま、F5 キーを押して、ASP.NET 証明書利用者アプリケーションのデバッグを開始します。
エラーが見つからない場合は、既定の MVC アプリケーションを開く代わりに、ID プロバイダーの選択を求める ACS がホストする ホーム領域検出 ページにブラウザーがリダイレクトされます。
[Google] を選択します。
次に、ブラウザーは Google ログオン ページを読み込みます。
テスト Google 資格情報を入力し、Google Web サイトに表示される同意 UI を受け入れます。
その後、ブラウザーは ACS にポストバックし、ACS はトークンを発行し、そのトークンを MVC サイトに投稿します。