このページは役に立ちましたか。
このページのコンテンツについての ご意見をお待ちしております
その他にご意見はありますか。
残り 1500 文字
ACS フェデレーション アプリケーションおよびサービスの Azure へのデプロイ

ACS フェデレーション アプリケーションおよびサービスの Azure へのデプロイ

更新日: 2015年6月

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

  • Windows Identity Foundation (WIF)

  • Microsoft Azure

このトピックでは、ACS を使用し、Azure にデプロイされるアプリケーションとサービスを開発する際に留意する必要のあるガイドラインを集約しています。

  1. コンピューティング エミュレーターによって動的に生成されるポートを回避する。

  2. Windows Identity Foundation (WIF) ランタイムを Azure にデプロイする。

  3. RSA を使用して Cookie を暗号化する。

  4. Azure にデプロイされるリフレクションを通じて起動されるアセンブリを構成する。

このセクションは、Web アプリケーションを作成する際に関係します。Web サービスを作成する場合は関係ありません。コンピューティング エミュレーターは Azure SDK ツールの一部です。それを使用して、アプリケーションをホステッド サービスとして Azure にデプロイする前に、アプリケーションを実行、テスト、デバッグ、および微調整することができます。コンピューティング エミュレーターでは、一意の IP アドレスを割り当てることはできません。コンピューティング エミュレーターは、要求されたポートの割り当てを試みます。そのポートが使用できない場合は、次善の使用可能なポート番号を割り当てます。つまり、コンピューティング エミュレーターでは、定義ファイルで指定したポート番号とは異なるポート番号にサービスが割り当てられる場合があります。コンピューティング エミュレーターの詳細については、「コンピューティング エミュレーターでの Windows Azure アプリケーションの実行」(http://go.microsoft.com/fwlink/?LinkId=221212) を参照してください。

コンピューティング エミュレーターが、ACS 管理ポータルで戻り先 URL として構成された IP アドレスとは異なる IP アドレスを割り当てた場合、ACS は証明書利用者構成の "戻り先 URL" フィールドに構成された URL へ認証済みの要求をリダイレクトしますが、この URL に一致するページは存在しません。その結果、空白のページが表示されます。

この動作を回避するには、クラウド Web アプリケーションのエンドポイント パブリック ポートとして、コンピューター上で使用可能なポートを構成します。その後、コンピューティング エミュレーターは競合を避けるため、ランダム ポートは割り当てません。

  1. コマンド プロンプトを開くため、[スタート] をクリックして、「cmd」と入力し、Enter キーを押します。

  2. 次のコマンドを実行して、ローカル ホスト IP アドレスと使用されているポートのリストを表示します。netstat –a –n | findstr 127.0.0.1

  3. リスト内を調べ、現在使用されていないポートを特定します。次の手順で、このポートを使用します。

  4. ソリューション エクスプローラーで、クラウド プロジェクトの Roles フォルダーの下にある自分のロールをダブルクリックします。ロール プロパティ ページが開きます。

  5. [Web ロール プロパティ] ページで、[エンドポイント] タブをクリックします。

  6. Public Port ファイルで、手順 3. で特定したポートの値を指定します。

  7. 作業内容を保存するため、Ctrl キーを押しながら S キーを押します。

Windows Identity Foundation (WIF) は、要求対応アプリケーションによる使用を可能にするために、コンピューターにインストールする必要のあるアウトオブバンド ランタイムです。WIF は、既定では、Azure インスタンスにインストールされません。クラウド要求対応アプリケーションを実行するには、Azure インスタンス上で WIF ランタイムを使用可能にする必要があります。これを実行する最も簡単な方法は、WIF アセンブリにデプロイメント パッケージを含めることです。

  1. ソリューション エクスプローラーで、要求対応アプリケーションを見つけます。

  2. References フォルダーを展開します。

  3. References フォルダーの下で Microsoft.IdentityModel アセンブリを見つけます。

  4. アセンブリを右クリックし、[プロパティ] をクリックします。

  5. プロパティ ウィンドウで、[ローカルにコピー][True] として、[特定バージョン][False] として指定します。

このセクションは、Web アプリケーションを作成する際に関係します。既定では、WIF はデータ保護アプリケーション プログラミング インターフェイス (DPAPI) を使用して Cookie を暗号化して保護します。DPAPI は Azure に対応していません。クラウド要求対応 Web アプリケーションが、Azure にデプロイされたときに正しく機能することを確認するために、RSA を使用して Cookie 暗号化機能を追加する必要があります。

  1. ソリューション エクスプローラーで、クラウド要求対応 Web アプリケーションを見つけます。

  2. Visual Studio エディターで、global.asax ファイルの背後で稼働するコードを含む global.asax.cs ファイルを開きます。

  3. 次の宣言を追加します。

    using Microsoft.IdentityModel.Tokens;
    using Microsoft.IdentityModel.Web;
    using Microsoft.IdentityModel.Web.Configuration;
    
  4. 次のコードを追加します。

    void OnServiceConfigurationCreated(object sender, ServiceConfigurationCreatedEventArgs e)
    {
        //
        // Use the <serviceCertificate> to protect the cookies that are
        // sent to the client.
        //
        List<CookieTransform> sessionTransforms =
            new List<CookieTransform>(new CookieTransform[] {
            new DeflateCookieTransform(), 
            new RsaEncryptionCookieTransform(e.ServiceConfiguration.ServiceCertificate),
            new RsaSignatureCookieTransform(e.ServiceConfiguration.ServiceCertificate)  });
        SessionSecurityTokenHandler sessionHandler = new SessionSecurityTokenHandler(sessionTransforms.AsReadOnly());
        e.ServiceConfiguration.SecurityTokenHandlers.AddOrReplace(sessionHandler);
    }
    
    void Application_Start(object sender, EventArgs e)
    {
        FederatedAuthentication.ServiceConfigurationCreated += OnServiceConfigurationCreated;
    
    noteメモ
    Application_Start イベント ハンドラーが既に追加されている場合は、それを更新してこのコードを含めることができます。

  5. 作業内容を保存します。

場合によっては、アセンブリはリフレクションを通じて起動されます。たとえば、Representational State Transfer (REST) wcf サービス、または着信 SWT トークンを検査する HttpModules を開発する場合です。これらのアセンブリを確実に Azure にデプロイするには、それらをデプロイメント パッケージに追加する特別な手順を実行する必要があります。

  1. クラウド要求対応 Web アプリケーションまたはサービスの bin フォルダーを展開します。

  2. アセンブリを右クリックし、[プロジェクトに含める] をクリックします。

  3. 同じライブラリを右クリックし、[プロパティ] をクリックします。

  4. [プロパティ] ウィンドウで、[出力ディレクトリにコピー][新しい場合はコピーする] をクリックします。

関連項目

コミュニティの追加

追加
表示:
© 2015 Microsoft