2012-04-17 19 views
0

私はIIS6でホストしているWCFサービスを持っています。私はトランスポートレベルのセキュリティを使用してカスタムのユーザー名/パスワード認証を設定しようとしています。私は、テスト証明書を設定し、指定した認証なし、すなわちでSSL経由で接続するクライアントを持っている:私は、メッセージセキュリティおよびクライアント資格情報の種類「ユーザー名」でカスタムバリデータを設定したIIS6のカスタムユーザー名/パスワード認証

 <security mode="Transport"> 
     <transport clientCredentialType="Basic" /> 
     </security> 

が、私はトランスポートレベルのセキュリティと今これを組み込みたいと思います。"このサービスのセキュリティ設定には「基本認証」が必要ですが、このサービスをホストするIISアプリケーションでは有効になっていません。」というエラーメッセージが表示されます。ここで

は私のweb.configファイルの重要な部分です:

<system.serviceModel> 
    <bindings> 
     <wsHttpBinding> 
     <binding name="UserNameBinding"> 
      <security mode="Transport"> 
      <transport clientCredentialType="Basic" /> 
      </security> 
     </binding> 
     </wsHttpBinding> 
    </bindings> 
    <services> 
     <service behaviorConfiguration="ServiceAuthenticationBehavior" 
     name="Service.WebServices.MyService"> 
     <endpoint address="mex" binding="mexHttpsBinding" bindingConfiguration="" 
      name="mexBinding" contract="IMetadataExchange" /> 
     <endpoint binding="wsHttpBinding" bindingConfiguration="UserNameBinding" 
      name="wsHttpBindingWithAuth" contract="Service.WebServices.IMyService" /> 
     </service> 
    </services> 
    <behaviors> 
     <serviceBehaviors> 
     <behavior name="ServiceAuthenticationBehavior"> 
      <serviceMetadata httpsGetEnabled="true" /> 
      <serviceDebug includeExceptionDetailInFaults="true" /> 
      <serviceCredentials> 
      <serviceCertificate findValue="TestCert01" storeLocation="LocalMachine" 
       storeName="TrustedPeople" x509FindType="FindBySubjectName" /> 
      <userNameAuthentication userNamePasswordValidationMode="Custom" 
       customUserNamePasswordValidatorType="Service.WebServices.ClientCredentialsValidator, Service.WebServices" /> 
      </serviceCredentials> 
     </behavior> 
     </serviceBehaviors> 
    </behaviors> 

は、私はこれを有効にするには、IIS6で設定になってるものがありますか? IISでは、最初に「匿名アクセスを有効にする」オプションを有効にして開始しました。また、「基本認証(パスワードは平文で送信されます)」チェックボックスを有効にしてみましたが、成功しませんでした。

+0

あなたはanon [off]とbasic [on]を一緒に試しましたか?あなたはiisresetが助けになるかどうかわからないので、私はとにかく1つをやります。 –

答えて

0

この投稿は、私がここで自分自身となって、そして1本足と一緒に行くことになったきた

Basic Authentication with WCF REST service to something other than windows accounts?

...基本的にはサードパーティのソリューションで、Windowsアカウントでのみ利用可能であることを示唆しているようですopenauthはうまくいきました。

編集 この記事は、ソリューションhttp://www.cleancode.co.nz/blog/523/oauth-dot-net

1と2脚OAuthの間の差分を言及するその価値に私の方法でも私を送りました。 1-legは、クライアントとサービスの両方が、認証要求の暗号化と復号化に使用されるクライアントのアカウント名(すべてがクエリ文字列に追加される)のクライアントの秘密(パスワード)を知っています。二足歩行で、これはGoogle、Facebookなどの第三者によって生成されます。

+0

"1-legged openauth"を記述できますか?これが何であるか分かりません。メッセージレベルのセキュリティで動作しているカスタム認証のように聞こえるのはうまくいきません。私はトランスポート+メッセージセキュリティ、匿名SSLを行うことができると思いますが、以前のようにメッセージトランスポートのカスタム認証は可能ですか? –

+0

このリンクは、SSLを使用してカスタムユーザー/パス認証を行うことができることを意味します。上記の問題があっても動作させることはできません。 http://www.leastprivilege.com/FinallyUsernamesOverTransportAuthenticationInWCF.aspx –

関連する問題