のリストに照らして確認し、次のようにセキュリティ要件とIIS7でWCFサービスを作成する1つの方法があります。あなたのWebサーバー上で次のコマンドを実行する必要があるかもしれませんWCFサービスをホストするために
:IIS上で
"%windir%\Microsoft.NET\Framework\v3.0\Windows Communication Foundation\ServiceModelReg.exe" -r –y
あなたは(のみ)とSSLの設定の下で結合httpsであなたのサイトを設定SSLを要求し、クライアント証明書を要求するように設定します。
これだけでは、有効なクライアント証明書とWebサーバーによって信頼される発行者で、サービス(およびwsdl)へのアクセスのみが許可されます。特定の証明書へのアクセスを制限するために
あなたは可能性がセットアップbindingConfigurationを使用してWCFの設定ファイルをなど:
として
<basicHttpBinding>
<binding name="MyBasicHttpBinding">
<security mode="Transport">
<transport clientCredentialType="Certificate" />
</security>
</binding>
</basicHttpBinding>
とカスタム証明書バリデータとbehaviorConfiguration:
<behaviors>
<serviceBehaviors>
<behavior name="MyServiceBehavior">
<serviceMetadata httpGetEnabled="false" httpsGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="false" />
<serviceCredentials>
<clientCertificate>
<authentication certificateValidationMode="Custom"
customCertificateValidatorType="<project-namespace>.ClientCertificateValidator, <project-namespace>"/>
</clientCertificate>
</serviceCredentials>
</behavior>
</serviceBehaviors>
</behaviors>
そして最後にプロジェクトの新しいクラスにカスタムバリデータを実装します。
public class ClientCertificateValidator : X509CertificateValidator
{
public override void Validate(X509Certificate2 certificate)
{
if (certificate.Thumbprint != <allowed-thumbprint>)
throw new Exception();
}
}
出典
2011-07-28 06:38:03
lox