close

BMC Gestión de Clientes (FootPrints principal activo)

seguridad de los mensajes y Kerberos parecen ir de la mano en estos días en el mundo de la WCF. Mientras que Microsoft hace que sea especialmente fácil para que usted asegure un servicio respectivo bajo wsHttpBinding con Kerberos, yo estaba seguro de cómo hacer para esto mientras se ejecuta en SOAP 1.1. Afortunadamente, Microsoft nos da una solución de configuración customBinding muy robusto para estos casos cuando wsHttpBinding o basicHttpBinding simplemente no va a hacer.

Las configuraciones customBinding y wsHttpBinding para Kerberos son muy similares, pero tienen algunas diferencias sutiles. A saber, la unión y bindingConfiguration. Vea a continuación el ejemplo de configuración ServiceModel tanto para SOAP 1.1 y SOAP 1.2.

<comportamientos>    <ServiceBehaviors>        <Comportamiento>            <ServiceMetadata httpGetEnabled = "true" />            <ServiceDebug includeExceptionDetailInFaults = "true" />        </ Comportamiento>        <Nombre de la conducta = "KerberosServiceBehavior">            <ServiceMetadata httpGetEnabled = "true" />            <ServiceDebug includeExceptionDetailInFaults = "true" />            <ServiceSecurityAudit auditLogLocation = "Aplicación"                             suppressAuditFailure = "true"                             serviceAuthorizationAuditLevel = "SuccessOrFailure"                             messageAuthenticationAuditLevel = "SuccessOrFailure" />        </ Comportamiento>    </ ServiceBehaviors></ Comportamientos><ServiceHostingEnvironment multipleSiteBindingsEnabled = "true" /><Fijaciones>    <CustomBinding>        <Name = "WsHttpSoap11Kerberos" binding>            <TextMessageEncoding messageVersion = "Soap11WSAddressing10" />            <Seguridad AuthenticationMode = "Kerberos" /><HttpTransport />        </ Binding>    </ CustomBinding>    <WsHttpBinding>        <Nombre del enlace = "KerberosServiceBinding"              maxReceivedMessageSize = "65536000">            <ReaderQuotas maxDepth = "2000000"                     MaxStringContentLength = "2000000"                     maxArrayLength = "2000000"                     maxBytesPerRead = "2000000"                     maxNameTableCharCount = "2000000" />            <= Modo de seguridad "mensaje">                <Mensaje clientCredentialType = "Windows"                  negotiateServiceCredential = "false"                  EstablishSecurityContext = "true" />            </ Seguridad>        </ Binding>    </ WsHttpBinding></ Fijaciones><Servicios>    <BehaviorConfiguration servicio = "KerberosServiceBehavior"              name = "KerberosWcfService">        <Dirección de punto final = "" unión = "wsHttpBinding"               bindingConfiguration = "KerberosServiceBinding"               contrato = "IKerberosWcfService">            <Identity><Valor dns = "localhost" />                <Valor servicePrincipalName = "HTTP / DOMAIN.COM DOMAINSERVICE_ACCOUNT" />            </ Identidad>        </ Endpoint>        <dirección de punto final = "MEX"               unión = "mexHttpBinding"               contrato = "IMetadataExchange" />    </ Service>    <BehaviorConfiguration servicio = "KerberosServiceBehavior"     name = "KerberosSoap11WcfService">        <Dirección de punto final = ""    unión = "customBinding"    bindingConfiguration = "WsHttpSoap11Kerberos"    contrato = "IKerberosSoap11WcfService">            <Identity>                <Valor dns = "localhost" />                <Valor servicePrincipalName = "HTTP / DOMAIN.COM DOMAINSERVICE_ACCOUNT" />            </ Identidad>        </ Endpoint>        <dirección de punto final = "MEX" unión = "mexHttpBinding" contrato = "IMetadataExchange" />    </ Service></ Servicios>

Prácticamente, que se quiere utilizar el estándar de la industria de wsHttpBinding con Kerberos y SOAP 1.2, si el desarrollo de nuevos servicios WCF. Pero si usted tiene una dependencia en SOAP 1.1, y necesita la capacidad de asegurar a través de Kerberos, esta es tu solución.


Previous Post     Next Post


TAGS


CATEGORIES

.