wcf安全

wcf服务的核心安全设置

在典型场景中如何应用正确的安全绑定


windows认证,证书和基于用户名的认证

在windows域或者自定义信任存储中的授权

核心的安全概念

1、互认证(Mutual Authentication),发送者与接受者互相认证

2、授权(Authorization),决定经过认证者拥有哪些权限

3、保密性(Confidentiality),确保只有所期望的接受者才能够看到信息

4、完整性(Integrity)确保消息不会被恶意攻击者所篡改(数字签名的方式)

5、可靠性(Reliablity),防止重放与Dos攻击

认证、授权

    将证书传递给对应的调用者,内网或者都在同一个域里面使用Windwos令牌(tokens),证书,在比较复杂的异构环境中用户名以及密码

    服务也必须被标示,Windwos令牌,证书

    根据相应的证书存储区域进行授权,收集角色,访问权限,授权等信息

传输安全

    保护消息在点到点传输之间的安全,跨网络节点,不同的应用程序之间,跨互操作边界

    对消息进行加密与数字签名

    网络上的传输安全

    在穿越网络节点时的消息安全

点对点的传输安全应用

    安全套接字(SSL),传输层安全(TLS),IP安全(IPSec)

消息安全

   Web服务安全(WS*)

   对最终消息接受者保证安全

   部分消息加密

WCF安全设置

     安全模式

      1、传输安全

             

<netTcpBinding>
    <binding name="netTcpTransportSecurity">
        <security mode="Transport">
             <transport clientCredentialType="Windows"
         <security/>
     </binding >
</netTcpBinding

       2、消息安全

<netTcpBinding>
    <binding name="wsHttpMessageSecurity">
        <security mode="Message">
             <message clientCredentialType="UserName"/>
         <security/>
     </binding >
</netTcpBinding>

       3、消息和传输安全(混合安全)

<basicHttpBinding>
    <binding name="basicHttp">
        <security mode="TransportWithMessageCredential">
            <transport/>
             <message clientCredentialType="UserName"/>
         <security/>
     </binding >
</basicHttBinding>

     保护级别

        缺省情况下所有的消息都会被签名并且加密,需要绑定支持

        能够控制消息的保护机制

        能够适用于最小级别的保护

        保护级别包括:None,Sign,EncryptAndSign

       1、控制在网络上传输的保护级别,用于传输保护,在TCP,命名管道(named popes),与MSMQ的绑定属性中进行设置

             无法控制ssl的设置

<netTcpBinding>
    <binding name="signOnly">
        <security>
            <transport protectionLevel="Sign"/>
        </security>

     </binding >
</netTcpBinding>


       2、控制消息保护级别

      客户端与服务端证书,在服务契约,操作契约,消息契约中进行设置

           ProtectionLevel=ProtectionLevel.Sign

       为传输或者消息级别使用最小级别保护,如消息的部分加密与签名,在服务端与客户端选择最小级别保护

     客户端证书

      1、证书选项,Windows,用户名密码,X.509证书,发布安全性断言标记语言(SAML)令牌或者自定义令牌

       2、根据绑定配置进行不同的选择

       3、提供带有证书的代理

    服务端证书

       1、证书选型,Windwos,X.509证书

    Intranet场景

       1、用于互认证的Windows证书

        2、认证与授权使用缺省Windows成员与角色提供器(provider)

        3、消息在传输层加密与签名

        4、在服务端受到保护的操作上实现基于角色的授权

        5、在可信的子系统模型中,服务通常拒绝使用身份扮演

   身份扮演

       1、服务可以控制扮演的级别,OperationBehaviorAttribute,ImpersonaationLevel设置:NotAllowed,Allowed,Required

[OperationBehavior(Impersonation=ImpersonationOption.NotAllowed)]
public string Hell(string inputString)


        2、能够控制所有的服务操作,ServiceAuthorization

<serviceAuthorization impersonateCallerForAllOperations="false"/>


        3、客户端能够控制扮演的级别

             TokenImpersonationLevel,None,Anonymous,Identification,Impersonation,Delegation

   业务伙伴与跨主机调用

        1、服务证书标示服务并且在传输过程中保护消息

         2、证书惟一地标示伙伴或者发起调用的跨主机的应用程序

        3、使用缺省证书认证机制进行证书的认证

        4、使用Peer Trust及在线撤销对证书进行认证

            

              

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值