方法: 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 管理ポータルを起動するには

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

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

手順 3 - ID プロバイダーを追加する

このセクションでは、認証のために証明書利用者アプリケーションで使用する ID プロバイダーの追加方法について説明します。 ID プロバイダーの詳細については、「 ID プロバイダー」を参照してください。

ID プロバイダーを追加するには

  1. ACS 管理ポータルで、左側のツリーで [ID プロバイダー] をクリックするか、[はじめに] セクションの [ID プロバイダー] リンクをクリックします。

  2. [ID プロバイダー] ページで、[追加] をクリックし、ID プロバイダーとして [Google] を選択してから [次へ] をクリックします。

  3. [Google ID プロバイダーの追加] ページでは、ログイン リンク テキスト (既定値は [Google] です) とイメージ URL の入力を求められます。 この URL は、この ID プロバイダーのログイン リンクとして使用できるイメージのファイルを指します。 これらのフィールドの編集は省略可能です。 この練習では、これらを編集せずに [保存] をクリックします。

手順 4 – 証明書利用者アプリケーションを追加する

このセクションでは、証明書利用者アプリケーションの追加および構成方法について説明します。 証明書利用者アプリケーションの詳細については、「証明書利用者アプリケーション」 参照してください。

証明書利用者アプリケーションをセットアップするには

  1. ACS 管理ポータルで、左側のツリーで [証明書利用者アプリケーション] をクリックするか、[はじめに] セクションの [証明書利用者アプリケーション] リンクをクリックします。

  2. [証明書利用者アプリケーション] ページで、[追加] をクリックします。

  3. [証明書利用者アプリケーションの追加] ページで、次の手順を実行します。

    • [名前] に、証明書利用者アプリケーションの名前を入力します。 この練習では、「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 プロバイダーを選択します。 この演習では、チェックされた既定値 (GoogleWindows Live ID) をそのまま使用します。

    • [ルール グループ] で、要求の処理時にこの証明書利用者アプリケーションに使用するルール グループを選択します。 この練習では、既定でチェック ボックスがオンになっている [新しいルール グループの作成] を受け入れます。 ルール グループの詳細については、「 ルール グループとルール」を参照してください。

    • [トークン署名設定] セクションで、Access Control名前空間の証明書を使用するか、このアプリケーションに固有のカスタム証明書を使用して SAML トークンに署名するかを選択します。 この練習では、既定値の [サービスの名前空間証明書を使用 (標準)] を受け入れます。 トークン署名の詳細については、「 証明書利用者アプリケーションのトークン署名」を参照してください。

  4. [保存] をクリックします。

手順 5 - ルールを作成する

このセクションでは、要求が ID プロバイダーから証明書利用者アプリケーションに渡される方法を決定するルールの定義方法について説明します。 ルールとルール グループの詳細については、「 ルール グループとルール」を参照してください。

ルールを作成するには

  1. ACS 管理ポータルのホーム ページで、左側のツリーで [ルール グループ] をクリックするか、[はじめに] セクションの [ルール グループ] リンクをクリックします。

  2. [ルール グループ] ページで、[TestApp の既定のルール グループ] (証明書利用者アプリケーションに「TestApp」という名前を付けたため) をクリックします。

  3. [ルール グループの編集] ページで [生成] をクリックします。

  4. [ルールの生成: TestApp の既定のルール グループ] ページで、既定で選択されている ID プロバイダー (この演習では、GoogleWindows Live ID) をそのまま使用し、[生成] ボタンをクリックします。

  5. [ルール グループの編集] ページで [保存] をクリックします。

手順 6 - アプリケーションの統合情報を確認する

ACS 管理ポータルの [ アプリケーション統合 ] ページで、ACS と連携するように証明書利用者アプリケーションを変更するために必要なすべての情報とコードを確認できます。

アプリケーションの統合情報を確認するには

  • ACS 管理ポータルのホーム ページで、左側のツリーで [アプリケーション統合] をクリックするか、[はじめに] セクションの [アプリケーション統合] リンクをクリックします。

    [アプリケーション統合] ページに表示される ACS URI は、Access Control名前空間に固有です。

    この演習では、残りの手順をすばやく実行するために、このページを開いたままにしておくことをお勧めします。

手順 7 - ASP.NET 証明書利用者アプリケーションを作成する

このセクションでは、最終的に ACS と統合する ASP.Net 証明書利用者アプリケーションを作成する方法について説明します。

ASP.Net 証明書利用者アプリケーションを作成するには

  1. 2010 Visual Studio実行するには、[スタート] をクリックし、[実行] をクリックし、次のテキストを入力して Enter キーを押します。
    devenv.exe

  2. Visual Studio で、[ファイル] をクリックしてから [新しいプロジェクト] をクリックします。

  3. [新しいプロジェクト] ウィンドウで、[Visual Basic] または [Visual C#] テンプレートを選択してから、[ASP.NET MVC 2 Web アプリケーション] を選択します。

  4. [名前] に、次のテキストを入力してから [OK] をクリックします。
    TestApp

  5. [単体テスト プロジェクトの作成] で、[単体テスト プロジェクトを作成しない] を選択してから [OK] をクリックします。

  6. ソリューション エクスプローラーで、[TestApp] を右クリックしてから [プロパティ] を選択します。

  7. [TestApp プロパティ] ウィンドウで、[Web] タブを選択し、[Visual Studio 開発サーバーの使用] で [特定ポート] をクリックしてから、値を「7777」に変更します。

  8. 直前に作成したアプリケーションを実行およびデバッグするには、F5 キーを押します。 エラーが見つからない場合は、ブラウザーに空の MVC プロジェクトが表示されます。

    次の手順を実行するために、Visual Studio 2010 を開いたままにしておきます。

手順 8 - ACS と ASP.NET 証明書利用者アプリケーション間の信頼を構成する

このセクションでは、ACS を前の手順で作成した ASP.NET 証明書利用者アプリケーションと統合する方法について説明します。

ASP.NET 証明書利用者アプリケーションと ACS 間の信頼を構成するには

  1. Visual Studio 2010 の TestApp 用のソリューション エクスプローラーで、[TestApp] を右クリックしてから [STS 参照の追加] を選択します。

  2. [フェデレーション ユーティリティ] ウィザードで、次の操作を実行します。

    1. [フェデレーション ユーティリティ ウィザードの開始] ページの [アプリケーション URI] に、アプリケーション URI を入力してから [次へ] をクリックします。 このデモでは、アプリケーション URI は https://localhost:7777/.

      注意

      末尾のスラッシュは、証明書利用者アプリケーションの ACS 管理ポータルで入力した値と一致するため、重要です。 詳細については、「手順 4 - 証明書利用者アプリケーションを追加する」を参照してください。

    2. 警告が表示されます。 ID 1007: アプリケーションはセキュリティで保護された https 接続でホストされていません。続行しますか? このデモでは、[ はい] をクリックします。

      注意

      運用環境では、SSL の使用に関するこの警告は有効であるため、消去しないでください。

    3. [ セキュリティ トークン サービス ] ページで、[ 既存の STS の使用] を選択し、ACS によって発行されたWS-Federationメタデータ URL を入力して、[ 次へ] をクリックします。

      注意

      WS-Federation メタデータ URL の値は、ACS 管理ポータルの [アプリケーション統合 ] ページにあります。 詳細については、「手順 6 - アプリケーション統合情報を確認する」を参照してください。

    4. [STS 署名証明書チェーンの検証エラー] ページで、[次へ] をクリックします。

    5. [セキュリティ トークンの暗号化] ページで [次へ] をクリックします。

    6. [提供された要求] ページで、[次へ] をクリックします。

    7. [要約] ページで、[完了] をクリックします。

    [フェデレーション ユーティリティ] ウィザードの実行が正常に終了したら、参照が Microsoft.IdentityModel.dll アセンブリに追加され、ASP.NET MVC 2 Web アプリケーション (TestApp) で Windows Identity Foundation を構成する Web.config ファイルに値が書き込まれます。

  3. 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 の統合をテストするには

  1. Visual Studio 2010 を開いたまま、F5 キーを押して、ASP.NET 証明書利用者アプリケーションのデバッグを開始します。

    エラーが見つからない場合は、既定の MVC アプリケーションを開く代わりに、ID プロバイダーの選択を求める ACS がホストする ホーム領域検出 ページにブラウザーがリダイレクトされます。

  2. [Google] を選択します。

    次に、ブラウザーは Google ログオン ページを読み込みます。

  3. テスト Google 資格情報を入力し、Google Web サイトに表示される同意 UI を受け入れます。

    その後、ブラウザーは ACS にポストバックし、ACS はトークンを発行し、そのトークンを MVC サイトに投稿します。

参照

概念

ACS の利用方法