エクスポート (0) 印刷
すべて展開
展開 最小化

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

発行: 2011年4月

更新日: 2014年6月

適用対象: Azure

  • Microsoft® Windows Azure™ AppFabric Access Control Service (ACS)

このトピックでは、ACS を ASP.NET 証明書利用者アプリケーションと統合するシナリオについて説明します。Web アプリケーションを ACS と統合することで、認証および承認の機能をコードから取り除くことができます。つまり、ACS は、ユーザーを認証および承認するためのメカニズムを Web アプリケーションに提供します。詳細については、「Web アプリケーションと ACS」を参照してください。

この練習シナリオでは、ACS はテスト用の ASP.NET 証明書利用者アプリケーションに対して Google ID でユーザーを認証します。

サービス名前空間を作成する方法の詳細については、「How to: Create a Windows Azure AppFabric Service Namespace」を参照してください。

ACS 管理ポータルを使用すると、ACS サービス名前空間を構成できます。サービス名前空間を構成するには、ID プロバイダーの追加、証明書利用者アプリケーションの構成、規則と規則グループの定義、証明書利用者アプリケーションが信頼する資格情報の設定を行います。

  1. インターネット ブラウザーを開き、Windows Azure AppFabric 管理ポータル (http://go.microsoft.com/fwlink/?LinkID=129428) にアクセスします。

  2. Windows Live ID を使用して Web サイトにログオンします。Windows Live ID がない場合は、[新規登録] をクリックして ID を作成します。

  3. Live ID を使用してログインすると、[管理ポータル] ページにリダイレクトされます。このページの左側の下にある [サービス バスおよびアクセス管理] をクリックします。

  4. ACS 管理ポータルを起動するには、左側のツリーで [アクセス管理] をクリックし、構成する ACS サービス名前空間を選択して、ページの上部にあるツール バーの [Access Control Service] ボタンをクリックします。

このセクションでは、証明書利用者アプリケーションで認証に使用する 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 を開いたままにしておきます。

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

  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. [Security Token Service] ページで、[既存の STS を使用する] を選択し、ACS によって公開される WS-Federation Metadata URL を入力して、[次へ] をクリックします。

      noteメモ
      WS-Federation Metadata 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>
    

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

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

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

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

    ブラウザーに Google のログオン ページが読み込まれます。

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

    ブラウザーから ACS に返信が行われ、ACS がトークンを発行し、そのトークンを MVC サイトに送信します。

関連項目

コミュニティの追加

追加
表示:
© 2014 Microsoft