現在、SSL と Windows 認証を使用して保護するために取り組んでいる (IIS を使用しない) Windows サービスの下で自己ホストされる WCF データ サービスがあります。
netsh とサーバー証明書でしばらく遊んだ後、サービスが SSL で保護され、app.config の webHttpBinding で Windows 認証も有効になりました - ただし、特定のユーザーを認証しようとすると、奇妙な動作が見られるようになりました -正常にログインできる人もいれば、資格情報が拒否され、HTTP 400 エラーが表示される人もいます。
いくつかのテストと掘り下げた後、この問題が発生している可能性があるように見えます. IIS の文書化された回避策では、自己ホスト型サービスまたは app.config に使用できる同等の設定がないようです-何かが欠けていない限り? maxReceivedMessageSize フィールドと maxBufferSize フィールドを最大値に設定して、違いが生じるかどうかを確認しましたが、明らかに違いはありませんでした。
バインディング構成:
<webHttpBinding>
<binding name="DataServicesBinding"
maxReceivedMessageSize="2147483647"
maxBufferSize="2147483647">
<security mode="Transport">
<transport clientCredentialType="Windows" />
</security>
</binding>
</webHttpBinding>
バインディングで clientCredentialType を代わりに Ntlm を使用するように設定することで、この問題を一時的に回避することができましたが、明らかな理由から、可能であれば Kerberos を機能させたいと考えています。