Code Sample: ASP.NET Web Service (サンプル コード: ASP.NET Web サービス)
更新日: 2015 年 6 月 19 日
適用先:Azure
このサンプルは、Microsoft Azure Active Directory Access Control (Access Control サービスまたは ACS とも呼ばれます) を単純な Web サービスに統合する方法を示しています。 ここでは、コマンド ライン クライアントおよび Web サービス ホストとして ASP.NET を使用します。 ASP.NET Web サービスには、ACS によって発行された SWT トークンが必要です。 クライアントは、ACS に登録されたユーザー名とパスワードを持つトークンを ACS に要求します。 このサンプルのコードは、Microsoft Azure Active Directory Access Control (ACS) コード サンプル パッケージの ASPNETSimpleService (C#\WebServices\ASPNETSimpleService) サブディレクトリにあります。
前提条件
このサンプルを実行するには、次のものが必要になります。
Azure ホームページでアカウントを作成し、Access Control名前空間を作成するには。
Visual Studio 2010 (任意のバージョン)
詳細については、 ACS の前提条件 (https://go.microsoft.com/fwlink/?LinkId=221065) を参照してください。
サンプルを構成する
このサンプルに必要な ACS 構成は、ACS 管理ポータルまたは ACS 管理サービスを使用して実行できます。 このトピックでは両方のオプションについて説明します。
オプション 1: ACS 管理ポータルを使用したサンプルの構成
オプション 2: ACS 管理サービスを使用したサンプルの構成
オプション 1: ACS 管理ポータルを使用したサンプルの構成
ACS 管理ポータルを使用してサンプルを構成するには
Microsoft Azure管理ポータル (https://manage.WindowsAzure.com) に移動し、サインインし、[Active Directory] をクリックします。 (トラブルシューティングのヒント: "Active Directory" 項目が見つからないか、使用できません)
アクセス制御名前空間を作成するには、[新規] をクリックして [App サービス] をクリックし、[アクセス制御] をクリックしてから [簡易作成] をクリックします。 または、[アクセス制御名前空間]、[新規] を順にクリックします。
アクセス制御名前空間を管理するには、名前空間をクリックしてしてから [管理] をクリックします。 または、[アクセス制御名前空間] をクリックして名前空間を選択し、[管理] をクリックします。
このアクションで Access Control Service の管理ポータルが開きます。
アプリケーションを ACS に登録するには、[ 証明書利用者アプリケーション] をクリックし、[ 追加] をクリックし、フォームに次の情報を入力します。
[名前] フィールドに、「ASPNET Simple Service」と入力します。
[ 領域 ] フィールドに「〘」と入力します。 https://localhost:8000/Service/
[ 戻る URL ] フィールドに「〘」と入力します。 https://localhost:8000/Service/
[トークン形式] ドロップダウン リスト ボックスから [SWT] を選択します。
[トークン署名キー] で、[生成] をクリックしてトークン署名キーを作成します。 後で構成で使用するためにこのキーをコピーします。
[有効期限] に、キーの適切な有効期限を入力します。 キーはこの日に無効になります。
他のフィールドは既定値のままにしておきます。
[保存] をクリックしてから、[ホーム] をクリックして Access Control Service 管理ポータルのホーム ページに戻ります。
証明書利用者が登録されたら、ACS がアプリケーションに発行する要求を決定するルールを作成します。 このサンプルでは、値が reverse の action 要求に対して登録済みのユーザー名とパスワードを許可するルールを作成します。 このルールを作成するには、[ホーム] をクリックしてアクセス制御サービス管理ポータルのホームページに戻り、[ルール グループ] をクリックしてから [ASP.NET Simple Service の既定のルール グループ] をクリックします。 次の設定を使用して、新しいルールを追加します。
[要求の発行者] セクションで、[アクセス制御サービス] を選択します。
[入力方向の要求の種類] セクションで、[Any] を選択します。
[入力方向の要求の値] セクションで、[Any] を選択します。
[出力方向の要求の種類] セクションで [種類の入力] を選択し、フィールドに「action」と入力します。
[出力方向の要求の値] セクションで [値の入力] を選択し、フィールドに「reverse」と入力します。
Web サイトのサンプルとは異なり、このサンプルは ACS によって管理される資格情報に依存しています。 ACS を構成する最後の手順は、使用するクライアント アプリケーションのユーザー名とパスワードを登録することです。 新しいユーザー名とパスワードを構成するには、[ホーム] をクリックしてアクセス制御サービス管理ポータルのホームページに戻り、[サービス ID] をクリックしてから [追加] をクリックし、フォームに入力します。 このサンプルの場合、ユーザー名には acssample、資格情報の種類には Password、パスワードには pass@word1 を使用します。
[保存] をクリックしてから、[ホーム] をクリックして Access Control Service 管理ポータルのホーム ページに戻ります。
オプション 2: ACS 管理サービスを使用したサンプルの構成
Visual Studioサンプル ソリューションには、ACS 管理サービスと共通クラス ライブラリで定義されている共通ヘルパーを使用する ConfigureSample というコンソール アプリケーションがあります。 このアプリケーションを使用して、このサンプルで使用するAccess Control名前空間を構成できます。
ACS 管理サービスを使用してサンプルを構成するには
サンプルを構成するには、SamplesConfiguration.cs (acs\Management\ManagementService\Common) を開きます。 Common クラス ライブラリの SamplesConfiguration クラスのプレースホルダーを、Access Control名前空間に関する情報に置き換えます。 この情報は、ACS 管理ポータルで確認できます。
ACS 管理ポータルに移動するには:Microsoft Azure管理ポータル (https://manage.WindowsAzure.com) に移動し、サインインし、[Active Directory] をクリックします。 (トラブルシューティングのヒント: "Active Directory" 項目が見つからないか、使用できません)Access Control名前空間を管理するには、名前空間を選択し、[管理] をクリックします。 または、[アクセス制御名前空間] をクリックして名前空間を選択し、[管理] をクリックします。
ServiceNamespace - Access Control名前空間の名前を入力します。
ManagementServiceIdentityName - ACS 管理サービス アカウントの名前を入力します。 既定値は ManagementClient です。
管理サービス アカウント名を見つけるには、ACS 管理ポータルで [ 管理サービス] をクリックします。 [管理サービス アカウント] にアカウントが名前順に一覧表示されます。
ManagementServiceIdentityKey - 管理サービス アカウントのパスワードを入力します。
管理サービス アカウントのパスワードを見つけるには、ACS 管理ポータルで [ 管理サービス] をクリックします。 管理サービス アカウントの名前をクリックしてから、[資格情報] で [パスワード] をクリックします。 [パスワード] フィールドにパスワードが表示されます。 パスワードをコピーするには、[パスワードの表示] をクリックします。
Visual Studioで ConfigureSample アプリケーションを実行します。 これにより、このサンプルを実行するように ACS が構成されます。
ConfigureSample アプリケーションが完了すると、生成された証明書利用者署名キーがコンソールに出力されます。 このキーをクリップボードにコピーします。
サンプルの実行
サンプルを実行するには
Visual Studio でサンプルを開きます。 このソリューションは、 サービス と クライアントの 2 つのプロジェクトで構成されます。
まだ行っていない場合は、Common\SamplesConfiguration.cs にAccess Control名前空間の詳細を入力します。 詳細については、「 オプション 2: ACS 管理サービスを使用した構成」の手順 1 を参照してください。 このファイルはサービスとクライアント プロジェクトでも使用されます。
サービス プロジェクトの web.config ファイルを開きます。 適切な AppSettings 要素にトークン署名キーを入力します。 管理サービスを使用して ACS を構成した場合、これはクリップボードにコピーした値です。 トークン署名キーを取得する場合は、ポータルの [証明書とキー] 領域を参照してください。 以下は、サービス web.config ファイルのこの領域を示すコード スニペットです。
<appSettings> <add key="IssuerSigningKey" value="...update to your signing key..."/> </appSettings>
クライアント プロジェクトの app.config ファイルを開きます。 適切な AppSettings 要素にユーザー名とパスワードを入力します。 以前に登録したユーザー名とパスワードを取得する場合は、ポータルの [サービス ID] 領域を参照してください。 以下は、クライアント app.config ファイルのこの領域 (正しく更新された) を示すコード スニペットです。
<appSettings> <add key="OAuthUserName" value="acssample" /> <add key="OAuthPassword" value="pass@word1" /> <add key="ServiceAddress" value="https://localhost:8000/Service/Default.aspx" /> </appSettings>
サンプルを実行するには、サービスを開始してからクライアントを開始します。 クライアントで、順序を逆にする文字列を入力します。 クライアント コンソール ウィンドウには、ACS からトークンを受信したことを示す出力が表示されます。