Docstoc

Web Services Enhancements _WSE_ 2.0 for Microsoft .NET

Document Sample
Web Services Enhancements _WSE_ 2.0 for  Microsoft .NET Powered By Docstoc
					Web Services
Enhancements (WSE) 2.0
for Microsoft .NET
Agenda
   Mensajes SOAP
   Técnicas de seguridad existentes para Web
   WS-Security
       Username Token
       X509 Token
       Autorización y Autenticación
       Firmando mensajes
       Encriptando mensajes
   WS-Policy
       Configurando archivos de políticas
   Especificaciones Soportadas
Mensaje SOAP
<soap:Envelope xmlns:soap=“http://schemas.xml ...

 <soap:Header>
   <!—Optional header information. -- >
   <username>Christian</username>
   <password>MyPwd</password>
 </soap:Header>

 <soap:Body>
   <! -- Message goes here. -- >
 </soap:body>

</soap:Envelope>
¿Que es WSE?
   Add-in que extiende el soporte existente en
    el Framework de .NET para aprovechar
    nuevas especificaciones del estándar de Web
    services
   WS- *
       WS-Security
       WS-Addressing
       WS-Policy
   WSE No garantiza que va a ser compatible
    con la siguiente version de WSE, pero si
    garantiza ejecucion side by side
Tecnicas para conversaciones
seguras en Web
   Secure Sockets Layer
Desventajas de las técnicas de
seguridad existentes para Web
   SSL funciona a nivel del protocolo de
    transporte
   Provee encripcion sólida de punto a punto y
    autenticación
       No permite que un mensaje pueda ser examinado
        por servicios intermedios
       No permite enviar mensajes por firewalls que
        dejan pasar trafico por el puerto 80
       Si los mensajes se deben enviar a través de
        varios puntos una nueva conexión SSL se debe
        realizar en cada punto
       Costosas operaciones criptográficas deben
        realizarse cada por cada nueva conexión SLL
WS-Security

   Seguridad basada en mensajes
WS-Security

   Solo se firma o encripta partes del mensaje
    en lugar del mensaje completo
       Intermediarios pueden ver partes del mensaje que
        son específicos para ellos
       Intermediarios puede aportar nuevos
        encabezados al mensaje para efectos de bitácora
        o auditoria
   El mensaje puede ser enviado a través de
    diferentes protocolos de transporte HTTP,
    SMTP, FTP y TCP
WS-Security - ¿Cómo funciona?
   WS-Security brinda mecanismos para lograr:
       Integridad del mensaje
         Usando firmas digitales para asegurar que el
           mensaje no fue cambiado
       Confidencialidad
         Encripcion XML para asegurar que solo quien
           debe recibir el mensaje puede entenderlo
       Autenticación y Autorización
         Identificación de quien envía el mensaje y que
           derechos tiene para realizar operaciones
WS-Security - Autenticación

   Username Token
     Permiete representar las credenciales de un
      usuario de la forma “nombre de usuario/
      Contraseña”
     Las credenciales de un usuario se envian en la
      clase UsernameToken
     Se agregan al mensaje SOAP usando:


    ProxyWSE.RequestSoapContext.Security.Tokens.Add(
    new UsernameToken(“Christian”,
         “MyPass”, PasswordOption.SendPlainText));
WS-Security – Requiriendo
Autenticación desde el servicio
   Desde el servicio se obtiene una referencia al
    contexto utilizado:
       RequestSoapContext.Current
   A través del contexto se verifican los tokens
    que existen dentro de la sección Security
    usando:
       SoapContext context=
        RequestSoapContext.Current;
       context.Security.Tokens
   Dentro del contexto se verifica que exista al
    menos un token de tipo UsernameToken
WS-Security - Autorización
   La clase UsernameToken contiene la función
    IsInRole() que es utilizada para verificar
    desde el Web service si un usuario pertenece
    a un determinado rol:
      UsernameToken tok=context.Security.Tokens[0];
      tok.Principal.IsInRole();
WS-Security - Autorizacion
Grupo           Derecho
Usuario         Ver Facturas
Vendedor        Enviar Facturas nuevas
Administrador   Aprovar Facturas
Contador        Pagar Facturas

Grupo           Miembro

Usuario         admin, pedro, lucas, juan

Vendedor        admin, pedro

Administrador   admin, lucas

Contador        admin, juan
WS-Security – Autorizacion con
usuarios que no son de Windows
   Crear una clase derivada de
    UsernameTokenManager
   Sobrescribir el método AutenticateToken()
   Asginar al Token un GenericPrincipal
   Asignar al GenericPrincipal un GenericIdentity con
    los roles del usuario según el usuario que esta en la
    propiedad Token.Username
   Registrar la clase derivada con el Namespace
    http://docs.oasis-open.org/wss/2004/01/oasis-
    200401-wss-wssecurity-secext-1.0.xsd
   Registrar la clase derivada con el QName
    wsse:UsernameToken
   Usando un UsernameTokenManager ahora se puede
    enviar el password usando SendHashed
WS-Security – Firmando los
mensajes con un UsernameToken
   Crear un token de llave derivada usando el token de
    tipo Username
       DerivedKeyToken dk = new DerivedKeyToken(new
        UsernameToken(…));
   Agregar el nuevo token a la coleccion de tokens
       proxy.RequestSoapContext.Security.Tokens.Add(dk);
   Crear una firma de mensaje usando la llave derivada
    en una nueva instancia de la clase
    “MessageSignature” y agregarla a la coleccion de
    elementos del mensaje
       proxy.RequestSoapContext.Security.Elements.Add(new
        MessageSignature(dk));
WS-Security – Requiriendo una
firma desde el servicio
   Acceder la colección de elementos en la
    sección de Security del Contexto usando la
    interfase ISecurityElement
       context.Security.Elements
   Validar que al menos un elemento en la
    colección sea de tipo MessageSignature
WS-Security – Encriptando los
mensajes con un UsernameToken
   Crear una instancia de la clase
    EncryptedData basada en el UsernameToken

   Agregar desde el proxy a la colección de
    elementos de seguridad la nueva instancia
    de EncryptedData
       proxy.RequestSoapContext.Security.Elements
        .Add(new EncryptedData(login.Token));
WS-Security – Requiriendo
encripción desde el servicio
   Acceder la colección de elementos en la
    sección de Security del Contexto usando la
    interfase ISecurityElement
       context.Security.Elements
   Validar que al menos un elemento en la
    colección sea de tipo EncryptedData
Firmando los mensajes con un
Certificado Digital
   Crear un token de tipo X509SecurityToken
    usando un certificado digital
    X509CertificateStore store =
       X509CertificateStore.CurrentUserStore(storeId);
       store.OpenRead();
      X509CertificateCollection certs =
       store.FindCertificateByKeyIdentifier(
       Convert.FromBase64String(keyId));
    store.Close();
    X509SecurityToken
       tok=X509SecurityToken(((X509Certificate)certs[0]));
WSE 2.0- Especificaciones
soportadas
Specification           XML namespace
                        http://docs.oasis-
WS-Security             open.org/wss/2004/01/oasis-200401-wss-
                        wssecurity-secext-1.0.xsd
                        http://schemas.xmlsoap.org/ws/2002/12/sece
WS-SecurityPolicy
                        xt
WS-SecureConversation   http://schemas.xmlsoap.org/ws/2004/04/sc
WS-Trust                http://schemas.xmlsoap.org/ws/2004/04/trust
                        http://schemas.xmlsoap.org/ws/2001/10/refer
WS-Referral
                        ral
                        http://schemas.xmlsoap.org/ws/2004/03/addr
WS-Addressing
                        essing
                        http://schemas.xmlsoap.org/ws/2002/12/polic
WS-Policy
                        y
DIME                    June 17, 2002 version
                        http://schemas.xmlsoap.org/ws/2002/06/dime
WS-Attachments
                        /soap
Resumen
   Mensajes SOAP
   Técnicas de seguridad existentes para Web
   WS-Security
       Username Token
       X509 Token
       Autorización y Autenticación
       Firmando mensajes
       Encriptando mensajes
   WS-Policy
       Configurando archivos de políticas
   Especificaciones Soportadas

				
DOCUMENT INFO
Shared By:
Categories:
Tags:
Stats:
views:5
posted:8/12/2012
language:
pages:21