方法: ACS を使用して最初のクレーム対応 ASP.NET サービスを作成する

更新日: 2015 年 6 月 19 日

適用先:Azure

適用対象

  • Microsoft Azure Active Directory アクセス制御 (アクセス制御サービスまたは ACS)

概要

注意

このトピックは従来のテクノロジーに関連します。 XML Web サービスと XML Web サービス クライアントを作成するには、次を参照してください https://go.microsoft.com/fwlink/?LinkID=220304

このトピックでは、単純な ASP.NET Web サービスを ACS と統合する方法について説明します。 Web サービスを ACS と統合することで、コードから認証と承認の機能を考慮します。 ACS は、Web サービスに対するクライアントの認証と承認を行うメカニズムを提供します。 詳細については、「Web サービスと ACS」を参照してください。

Web サービス シナリオでは、Web サービス クライアントがブラウザーにアクセスできず、(ユーザーの参加なしで) 自律的に機能することが前提となります。 また、Web サービスシナリオでは、クライアントはサービス ID またはエンタープライズ ID を使用して Web サービスにアクセスできます。 このトピックで説明する演習では、ACS で構成されたサービス ID 資格情報の種類を使用して、クライアントがサンプル ASP.NET Web サービスにアクセスできます。

このトピックの手順を実行するには、サンプルの ASP.NET サービスをダウンロードする必要があります。 詳細については、「コード サンプル: ASP.NET Web サービス」を参照してください。

ACS と ASP.NET Web サービスの統合手順

重要

次の手順を実行する前に、システムが ACS の前提条件に要約されているすべての .NET フレームワークとプラットフォームの要件を満たしていることを確認します。

ACS をこのサンプル ASP.NET Web サービスと統合するには、次の手順を実行します。

  • 手順 1 - Access Control 名前空間を作成する

  • 手順 2 – ACS 管理ポータルを起動する

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

  • 手順 4 - ルールを作成する

  • 手順 5 - サービス ID を構成する

  • 手順 6 - ACS と ASP.NET Web サービス間の信頼を構成する

  • 手順 7 - ACS と ASP.NET Web サービスの統合をテストする

手順 1 - Access Control 名前空間を作成する

詳細な手順については、「方法: Access Control名前空間を作成する」を参照してください。

手順 2 – ACS 管理ポータルを起動する

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

ACS 管理ポータルを起動するには

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

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

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

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

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

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

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

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

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

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

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

    • [ 戻り値の URL] に、ACS がセキュリティ トークンを返す URL を入力します。 この演習では、「.」と入力します https://localhost:8000/Service

    • [ エラー URL (省略可能)]に、サインイン中にエラーが発生した場合に ACS が投稿できる URL を入力します。 この演習では、このフィールドは空白のままにします。

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

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

    • [ID プロバイダー] では、この証明書利用者アプリケーションで使用する ID プロバイダーを選択できます。

      ただし、この演習では、ID プロバイダーは使用されません。クライアントはサービス ID を使用して Web サービスにアクセスできるため、Windows Live ID の横にあるチェック ボックスをオフにしてください。

      サービス ID の詳細については、「 サービス ID」を参照してください。

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

    • [トークン署名の設定] の [トークン署名キー] で、[生成] ボタンをクリックして、この証明書利用者に対して 256 ビットの対称キーを生成します。

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

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

規則は、ID プロバイダーまたは ACS (ACS がクレーム発行者の場合) から証明書利用者アプリケーションに要求を渡す方法を決定します。 ルールとルール グループの詳細については、「 ルール グループとルール」を参照してください。

ルールを作成するには

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

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

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

  4. [要求規則の追加] ページで、次の手順を実行します。

    • [If] セクションの [要求の発行者] で、[Access Control Service] を選択します。

    • [If] セクションの [入力方向の要求の種類] では、既定で選択されている [Any] のままにします。

    • [If] セクションの [入力方向の要求の値] では、既定で選択されている [Any] のままにします。

    • [Then] セクションの [出力要求の種類] で、Enter 型を選択し、アクションを入力します。これは、この演習requiredClaimType = “action”で使用している ASP.NET Web サービス サンプルのコードで指定されている要求の種類であるためです。 この文字列は、サンプル コードの Default.aspx.cs の acs\WebServices\ASPNETSimpleService\Service にあります。

    • [Then] セクションの [Output claim value] (出力要求値) で Enter を選択し、「reverse」と入力します。これは、この演習requiredClaimValue = “reverse”で使用している ASP.NET Web サービス サンプルのコードで指定されている要求の種類であるためです。 この文字列は、サンプル コードの Default.aspx.cs の acs\WebServices\ASPNETSimpleService\Service にあります。

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

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

手順 5 - サービス ID を構成する

このトピックで説明する演習では、クライアントは ACS に登録され、ACS によって管理されるユーザー名とパスワード (つまり、ACS サービス ID) を使用して ACS から ACS 発行の Simple Web トークン (SWT) を要求します。 このセクションでは、ACS サービス ID を構成する方法、またはクライアントが ACS にトークンを要求するために使用できる ACS によってホストされる資格情報を構成する方法について説明します。 詳細については、「 サービス ID」を参照してください。 この演習では、サービス ID 名を acssample に設定し (ASP.NET サービス クライアントは ACS にトークンを要求するときにこの値をユーザー名として使用します)、パスワードをpass@word1します。

サービス ID を構成するには

  1. ACS 管理ポータルのホーム ページで、左側のツリーで [サービス ID] をクリックします。

  2. [サービス ID] ページで、[追加] をクリックします。

  3. [サービス ID の追加] ページで、以下の操作を実行してから [保存] をクリックします。

    1. [名前] に、「acssample」と入力します。

    2. [種類] で、[パスワード] を選択します。

    3. [パスワード] に、「pass@word1」と入力します。

    4. [有効日] と [有効期限] は既定値のままにしておきます。

  4. [サービス ID の編集] ページで、[保存] をクリックします。

手順 6 - ACS と ASP.NET Web サービス間の信頼を構成する

このセクションでは、ACS をサンプル ASP.NET サービスと統合する方法について説明します。 詳細については、「コード サンプル: ASP.NET Web サービス」を参照してください。

ACS と ASP.NET Web サービス間の信頼を構成するには

  1. ダウンロードしたサンプルで「ASPNETSimpleService.sln」を見つけて、Visual Studio® 2010 で開きます。

  2. Visual Studio 2010 のソリューション エクスプローラーで、[ソリューション‘ASPNETSimpleService’] の下の [web.config] をダブルクリックします。

  3. web.configで、前の手順で ACS で構成したAccess Control名前空間名とトークン署名キーを入力します。 トークン署名キーを表示するには、ACS 管理ポータルで [証明書とキー ] をクリックします。

    以下のコード スニペットは、更新する必要がある web.config ファイルの要素を示しています。

    <appSettings>
        <add key="AccessControlHostName" value="accesscontrol.windows.net"/>
        <add key="AccessControlNamespace" value="...enter your Access Control namespace name..."/>
        <add key="IssuerSigningKey" value="...enter your signing key..."/>
      </appSettings>
    
  4. 更新した web.config ファイルを保存します。

  5. Visual Studio 2010 のソリューション エクスプローラーで、[ソリューション‘ASPNETSimpleService’] の下の app.config ファイルをダブルクリックします。

  6. app.config ファイルに、Access Control名前空間の名前と、前の手順で ACS で構成したサービス ID のユーザー名とパスワードを入力します。 ユーザー名とパスワードを表示するには、ACS 管理ポータルで [サービス ID] を クリックします。

    以下のコード スニペットは、変更する必要がある app.config ファイルの要素を示しています。

    <appSettings>
        <add key="AccessControlHostName" value="accesscontrol.windows.net"/>
        <add key="AccessControlNamespace" value="...enter your Access Control namespace name..."/>
        <add key="WrapPassword" value="...update to your password..."/>
        <add key="WrapUsername" value="...update to your username..."/>
        <add key="ServiceAddress" value="https://localhost:8000/Service/Default.aspx" />
      </appSettings>
    
  7. 更新した app.config ファイルを保存します。

手順 7 - ACS と ASP.NET Web サービスの統合をテストする

このセクションでは、ASP.NET Web サービスと ACS の統合をテストする方法について説明します。

ACS と ASP.NET Web サービスの統合をテストするには

  1. ASP.NET サービスを実行するには、Visual Studio 2010 で F5 キーを押します。

  2. ASP.NET Web サービス クライアントを実行するには、ソリューション エクスプローラーで [クライアント] を右クリックしてから [デバッグ] をクリックし、[新しいインスタンスを開始] を選択します。

    コマンド ライン ウィンドウが開き、次のメッセージが表示されます。 反転する文字列を入力してから、Enter キーを押 <します>

  3. たとえば、「hello world!」などの文字列を入力してから、Enter キーを押します。

    入力が hello world!の場合は、コンソール アプリケーションで次の応答が表示されます: !dlrow olleh

参照

概念

ACS の利用方法