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

方法:ACS を使用して最初の要求対応の ASP.NET アプリケーションを作成する

発行: 2011年4月

更新日: 2015年6月

適用対象: Azure

Important重要
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 証明書利用者アプリケーションに対してユーザーを認証します。

アクセス制御名前空間を作成する方法の詳細については、「方法:Access Control 名前空間を作成する」をご覧ください。

ACS 管理ポータルでは、ID プロバイダーを追加し、証明書利用者アプリケーションを構成してから、ルールとルール グループを定義して、証明書利用者アプリケーションが信頼する資格情報を確立することで、アクセス制御名前空間 を構成できます。

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

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

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

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

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

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

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

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

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

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

    • [名前] に、証明書利用者アプリケーションの名前を入力します。この練習では、「TestApp」と入力します。

    • [モード] で、[手動で設定を入力する] を選択します。

    • [領域] に、ACS によって発行されたセキュリティ トークンが適用される URI を入力します。この練習では、「http://localhost:7777/」と入力します。

    • [戻り先 URL] に、ACS がセキュリティ トークンを返す URL を入力します。この練習では、「http://localhost:7777/」と入力します。

    • [エラー URL (省略可能)] に、サインイン時にエラーが発生した場合に ACS が投稿できる URL を入力します。

    • [トークン形式] で、この証明書利用者アプリケーションにセキュリティ トークンを発行する際に使用する ACS のトークン形式を選択します。この練習では、[SAML 2.0] を選択します。トークンとトークン形式の詳細については、「ACS でサポートされるトークン形式」および「証明書利用者アプリケーション」の「トークン形式」を参照してください。

    • [トークンの暗号化ポリシー] で、この証明書利用者アプリケーションに対して ACS によって発行されたトークンの暗号化ポリシーを選択します。この練習では、既定値の [なし] を受け入れます。トークンの暗号化ポリシーの詳細については、「証明書利用者アプリケーション」の「トークンの暗号化ポリシー」を参照してください。

    • [トークンの有効期間 (秒)] で、有効な状態を維持するために ACS によって発行されるセキュリティ トークンの期間を指定します。この練習では、既定値の [600] を受け入れます。詳細については、「証明書利用者アプリケーション」の「トークンの有効期間」を参照してください。

    • [ID プロバイダー] では、この証明書利用者アプリケーションで使用する ID プロバイダーを選択します。この練習では、オンになっている既定値 ([Google] および [Windows Live ID]) を受け入れます。

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

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

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

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

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

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

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

  4. [ルールの生成:TestApp の既定のルール グループ] ページで、既定で選択されている ID プロバイダー (この練習では、[Google] および [Windows Live ID]) を受け入れてから、[生成] ボタンをクリックします。

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

ACS 管理ポータルの [アプリケーションの統合] ページで、ACS で使用する証明書利用者アプリケーションの変更に必要なすべての情報とコードを見つけることができます。

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

    [アプリケーションの統合] ページに表示される ACS URI は アクセス制御名前空間 に固有のものです。

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

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

  1. Visual Studio 2010 を実行するには、[スタート] をクリックし、[ファイル名を指定して実行] をクリックして、次のテキストを入力してから 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 を開いたままにしておきます。

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

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

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

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

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

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

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

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

      noteメモ
      ACS 管理ポータルの [アプリケーションの統合] ページで、WS-Federation メタデータ URL の値を見つけることができます。詳細については、「手順 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>
    

このセクションでは、証明書利用者アプリケーションと ACS の統合をテストする方法について説明します。

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

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

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

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

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

    次に、ブラウザーは ACS に再度ポストし、ACS はトークンを発行して、そのトークンを MVC サイトにポストします。

関連項目

表示: