我有一个需要通过 https 保护的 WCF 服务。WCF服务服务器站点和使用WCF服务的客户端都是自行开发的。
我生成了一个自签名证书,并在以下操作指南文章的帮助下在我的服务中使用它:http: //msdn.microsoft.com/en-us/library/ff647171.aspx。
我的服务的绑定和行为配置如下:
<behaviors>
<serviceBehaviors>
<behavior name="SecureServiceBehavior">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="false" />
<serviceCredentials>
<serviceCertificate findValue="CN={my server's ip address}" />
<userNameAuthentication userNamePasswordValidationMode="MembershipProvider"
membershipProviderName="SqlMembershipProvider" />
</serviceCredentials>
<serviceAuthorization principalPermissionMode="UseAspNetRoles"
roleProviderName="SqlRoleProvider" />
<serviceThrottling maxConcurrentCalls="128"
maxConcurrentSessions="128"
maxConcurrentInstances="128" />
</behavior>
</serviceBehaviors>
</behaviors>
<bindings>
<wsHttpBinding>
<binding name="MyBinding">
<security mode="TransportWithMessageCredential">
<message clientCredentialType="UserName"/>
</security>
</binding>
</wsHttpBinding>
</bindings>
所有 WCF 客户都是我们公司的员工,他们将通过 IP 地址通过 Internet 访问系统。我会将服务器的证书添加到每台客户端计算机的受信任证书颁发机构。
这样的配置是否足够安全?