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

コード サンプル:OAuth 2.0 証明書認証

発行: 2011年5月

更新日: 2015年3月

適用対象: Azure

このサンプルは、X.509 証明書によって署名される SAML トークンを提示することで、OAuth 2.0 プロトコルを使用して Microsoft Azure Active Directory アクセス制御 (アクセス制御サービスまたは ACS) に対する認証を行う方法を示しています。この証明書は ACS で構成された ServiceIdentity に対応しており、ACS は ServiceIdentity の nameidentifier 要求を含む SWT を発行します。この SWT は、OAuth 2.0 で保護されたリソースに対して認証を行うために使用されます。このサンプルは OAuth 2.0 プロトコルのドラフト 13 に準拠しています。このサンプルのコードは、Microsoft Azure Active Directory アクセス制御 (ACS) コード サンプル パッケージの OAuth2 (C#\OAuth2) サブディレクトリにあります。

このサンプルを実行するには、次のものが必要になります。

  1. Azure ポータルのアカウントと アクセス制御名前空間。

  2. Visual Studio 2010 (任意のバージョン)

詳細については、「ACS の前提条件」 (http://go.microsoft.com/fwlink/?LinkId=221065) を参照してください。

このサンプルに必要な ACS の構成は、ACS 管理ポータルまたは ACS 管理サービスを使用して実行できます。このトピックでは両方のオプションについて説明します。

  1. オプション 1:ACS 管理ポータルを使用してサンプルを構成する

  2. オプション 2:ACS 管理サービスを使用してサンプルを構成する

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

  2. アクセス制御名前空間を作成するには、[新規] をクリックして [App サービス] をクリックし、[アクセス制御] をクリックしてから [簡易作成] をクリックします。または、[アクセス制御名前空間][新規] を順にクリックします。

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

    このアクションで Access Control Service の管理ポータルが開きます。

  4. ご使用のアプリケーションを ACS に登録するには、[証明書利用者アプリケーション] をクリックし、[追加] をクリックしてから、フォームに以下の情報を入力します。

    • [名前] に、「OAuth2 RP」と入力します。

    • [領域] に、「https://oauth2relyingparty/」と入力します。

    • [トークン形式] で、[SWT] を選択します。

    • [生成] をクリックして、新しいキーを作成します。

    • [有効期限] に、キーの適切な有効期限を入力します。キーはこの日に無効になります。

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

  6. 証明書利用者が登録されたので、ACS がアプリケーションに発行する要求を決定するルールを作成します。このサンプルでは、ACS によって生成されるすべての要求をパススルーすることを許可するルールを作成します。

    このルールを作成するには、[ルール グループ] をクリックしてから、[OAuth2 RP の既定のルール グループ] をクリックします。以下の設定を使用して、新しい規則を追加します。

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

    • [入力方向の要求の種類] セクションで、[Any] を選択します。

    • [入力方向の要求の値] セクションで、[Any] を選択します。

    • [出力方向の要求の種類] セクションで、[入力方向の要求の種類をパススルー] を選択します。

    • [出力方向の要求の値] セクションで、[入力方向の要求の値をパススルー] を選択します。

  7. このサンプルは ACS によって管理される資格情報に依存しています。

    クライアント アプリケーション用の新しいクライアント証明書を構成するには、[サービス ID] をクリックし、[追加] をクリックしてから名前を入力します。[X.509 証明書] の資格情報の種類を追加して、このサンプルの証明書フォルダーにある [ACS2ClientCertificate.cer] ファイルを参照します。[保存] をクリックします。

  8. これで、ACS が構成されました。Visual Studio を開きます。

Visual Studio サンプル ソリューションには、ACS 管理サービスと [共通] クラス ライブラリに定義されている共通ヘルパーを使用する [ConfigureSample] というコンソール アプリケーションが用意されています。このアプリケーションを使用して、このサンプルで使用するアクセス制御名前空間を構成できます。

  1. アクセス制御名前空間に関する情報で、Common クラス ライブラリを更新します。[SamplesConfiguration.cs] を開き、次の情報を入力します。

    • ServiceNamespace - これは アクセス制御名前空間 の名前です。

    • ManagementServiceIdentityName - これは管理サービス アカウントの名前です。

    • ManagementServiceIdentityKey - これは、管理サービス アカウントに関連付けられているパスワードです。

    • AcsHostUrl - これは ACS のホスト名です。

  2. Visual Studio で [ConfigureSample] アプリケーションを実行します。これで、このサンプルを使用するように ACS が構成されます。

  3. ConfigureSample アプリケーションが完了すると、生成された証明書利用者署名キーがコンソールに出力されます。このキーをクリップボードにコピーします。

  1. Visual Studio でサンプルを開きます。[ConfigureSample] および [共通] に加え、ソリューションは次の 2 つのプロジェクトで構成されています。[ProtectedResourceWebApp] および [クライアント]。

  2. Common\SamplesConfiguration.cs に アクセス制御名前空間 の詳細をまだ入力していない場合は、ここで入力します。詳細については、「オプション 2:ACS 管理サービスを使用する構成」の手順 1. を参照してください。このファイルは [クライアント] プロジェクトでも使用されます。

  3. [ProtectedResourceWebApp] プロジェクトの [Web.config] ファイルを開きます。

  4. 適切な AppSettings 要素にトークン署名キーを入力します。管理サービスを使用して ACS を構成した場合、これはクリップボードにコピーした値です。トークン署名キーを取得するには、ACS ポータルで [証明書とキー] をクリックします。web.config ファイルのこのセクションを示すコード スニペットは以下のとおりです。

    <appSettings>
       <add key="SigningKey" value="...Copy Signing Key..."/>
    </appSettings>
    
  5. サンプルを実行するには、[ProtectedResourceWebApp] を開始します。Web ブラウザーが表示されますが、この Web ブラウザーは認証されていないため、テキスト ボックスは空です。

  6. [クライアント] を実行します。HTML がコンソール ウィンドウに表示されます。この HTML では、ユーザーが認証されていることと、ACS からの要求が示されていることに注意してください。

コミュニティの追加

追加
表示:
© 2015 Microsoft