次の方法で共有


方法 : WCF 認証サービスを有効にする

更新 : 2007 年 11 月

ここでは、Windows Communication Foundation (WCF) サービスとしてクライアントが利用できるように Web サーバー上で ASP.NET 認証サービスを構成する方法について説明します。また、ASP.NET フォーム認証の構成方法についても説明します。

ASP.NET メンバシップの構成方法の詳細については、「ASP.NET アプリケーションの設定によるメンバシップの使用」を参照してください。

認証サービスを有効にするには

  1. ASP.NET Web アプリケーションがまだない場合は作成します。

  2. 次の例に示すように、AuthenticationService クラスを参照する次のディレクティブを含んだサービス ファイル (.svc) を Web サイトに追加します。

    <%@ ServiceHost 
      Language="VB"
      Service="System.Web.ApplicationServices.AuthenticationService" 
      Factory="System.Web.ApplicationServices.ApplicationServicesHostFactory" %>
    <%@ ServiceHost 
      Language="C#"
      Service="System.Web.ApplicationServices.AuthenticationService" 
      Factory="System.Web.ApplicationServices.ApplicationServicesHostFactory" %>
    
  3. Web.config ファイルで次の構成設定を行うことで、サービスを構成し、SSL を要求します。

    • authenticationService 要素で認証サービスを有効にします。

    • services 要素でエンドポイント コントラクトを定義し、behaviors 要素でサービスの動作を定義します。プロキシ生成ツールで例外が発生しないように、次の例に示すように、エンドポイント コントラクトに bindingNamespace プロパティを組み込みます。WCF エンドポイントの詳細については、「Windows Communication Foundation エンドポイント」を参照してください。

    • ASP.NET との互換性のために、serviceHostingEnvironment 要素を構成します。WCF サービスをホストする方法については、「WCF サービスと ASP.NET」を参照してください。

    • bindings 要素で、SSL を必要とするバインディングを作成します。WCF でのトランスポート セキュリティの詳細については、「トランスポート セキュリティ」を参照してください。

    前の一覧で説明した構成設定を示す Web.config ファイルの system.serviceModel 要素の例を次に示します。

    <system.web.extensions>
      <scripting>
        <webServices>
          <authenticationService enabled="true" 
             requireSSL = "true"/>
        </webServices>
      </scripting>
    </system.web.extensions>
    <system.serviceModel>
      <services>
        <service name="System.Web.ApplicationServices.AuthenticationService"
            behaviorConfiguration="AuthenticationServiceTypeBehaviors">
          <endpoint contract=
            "System.Web.ApplicationServices.AuthenticationService"
            binding="basicHttpBinding"
            bindingConfiguration="userHttps" 
            bindingNamespace="https://asp.net/ApplicationServices/v200"/>
          </service>
      </services>
      <bindings>
            <basicHttpBinding>
                <binding name="userHttps">
                    <security mode="Transport" />
                </binding>
            </basicHttpBinding>
      </bindings>
      <behaviors>
        <serviceBehaviors>
          <behavior name="AuthenticationServiceTypeBehaviors">
            <serviceMetadata httpGetEnabled="true"/>
          </behavior>
        </serviceBehaviors>
      </behaviors>
      <serviceHostingEnvironment 
        aspNetCompatibilityEnabled="true"/>
    </system.serviceModel>
    

フォーム認証を構成するには

  • Web.config ファイルで、フォーム認証を使用するよう Web アプリケーションを構成します。

    フォーム認証を使用するよう構成された Web.config ファイルの authentication 要素の例を次に示します。

    <authentication mode="Forms">
      <forms cookieless="UseCookies" />
    </authentication>
    

    認証サービスには Cookie が必要です。そのため、authentication 要素の cookieless 属性を "UseCookies" に設定します。詳細については、「ASP.NET フォーム認証の概要」を参照してください。

セキュリティ

認証資格情報などの機密のユーザー データを渡す場合、必ず HTTPS プロトコルを使用して SSL 経由で認証サービスにアクセスします。SSL のセットアップ方法については、「SSL (Secure Sockets Layer) を構成する (IIS 6.0 操作ガイド)」を参照してください。

参照

処理手順

チュートリアル : ASP.NET アプリケーション サービスの使用

概念

Windows Communication Foundation の認証サービスの概要

その他の技術情報

サービスの構成