http 基本認証と SSL を使用して、WCF サービスを作成しました。(IIS atm の一時証明書)
関連する構成は次のとおりです。
<services>
<service name="MyNamespace.MyService">
<endpoint address="" binding="basicHttpBinding" bindingConfiguration="basicHttps"
name="MyEndPoint" contract="MyNamespace.IMyService" />
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="">
<!-- These will be false when deployed -->
<serviceMetadata httpsGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="true" />
</behavior>
<!-- This doesn't do anything in IIS -->
<behavior name="CustomUsernameValidatorBehavior">
<serviceCredentials>
<userNameAuthentication userNamePasswordValidationMode="Custom"
customUserNamePasswordValidatorType="MyNamespace.CustomUserNameValidator" />
</serviceCredentials>
</behavior>
</serviceBehaviors>
</behaviors>
<bindings>
<basicHttpBinding>
<binding name="basicHttps">
<security mode="Transport">
<transport clientCredentialType="Basic" />
</security>
</binding>
</basicHttpBinding>
</bindings>
IIS でホストしているため、customUsernameValidator を使用できず、IIS 基本認証は Windows に対してユーザー名とパスワードを試行します。
新しいユーザーを作成し、ローカルでログオンを無効にして、新しいグループに入れました (権限なし)。ユーザーの唯一の目的は、サービスへのアクセスが許可されていることを確認することであり、それ以外の目的はありません。サービスは、イントラネットなどの内部ではなく、オンラインになります。
私の質問はこれに要約されます。実際の Windows ユーザーを使用しているため、セキュリティ上のリスクや影響はありますか? その場合、このサービス/IIS を保護するために何ができますか?
情報の「フィッシング」を防ぐために何かを行う必要があります。たとえば、資格情報を見つけるために別のユーザー名とパスワードを試すことができますか?
ところで、これは IIS および SSL で Http 基本認証を使用する WCF の有効なバインド (その他のエンドポイントなどを除く) です。IIS に基本認証がインストールされていること、および認証対象の Windows ユーザーが必要です。Windows ユーザーに対して認証したくありません。