Web Services Enhancements WSE 2'0 for Microsoft 'NET - PowerPoint PPT Presentation

1 / 21
About This Presentation
Title:

Web Services Enhancements WSE 2'0 for Microsoft 'NET

Description:

Administrador. Enviar Facturas nuevas. Vendedor. Ver Facturas ... Administrador. admin, pedro. Vendedor. admin, pedro, lucas, juan. Usuario. Miembro. Grupo ... – PowerPoint PPT presentation

Number of Views:245
Avg rating:3.0/5.0
Slides: 22
Provided by: cqui8
Category:

less

Transcript and Presenter's Notes

Title: Web Services Enhancements WSE 2'0 for Microsoft 'NET


1
Web Services Enhancements (WSE) 2.0 for Microsoft
.NET
2
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

3
Mensaje SOAP
  • ltsoapEnvelope xmlnssoaphttp//schemas.xml ...
  • ltsoapHeadergt
  • lt!Optional header information. -- gt
  • ltusernamegtChristianlt/usernamegt
  • ltpasswordgtMyPwdlt/passwordgt
  • lt/soapHeadergt
  • ltsoapBodygt
  • lt! -- Message goes here. -- gt
  • lt/soapbodygt
  • lt/soapEnvelopegt

4
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

5
Tecnicas para conversaciones seguras en Web
  • Secure Sockets Layer

6
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

7
WS-Security
  • Seguridad basada en mensajes

8
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

9
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

10
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))

11
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

12
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 tokcontext.Security.Tokens0
  • tok.Principal.IsInRole()

13
WS-Security - Autorizacion
14
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-20040
    1-wss-wssecurity-secext-1.0.xsd
  • Registrar la clase derivada con el QName
    wsseUsernameToken
  • Usando un UsernameTokenManager ahora se puede
    enviar el password usando SendHashed

15
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))

16
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

17
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))

18
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

19
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 tokX509SecurityToken(((X509Cert
    ificate)certs0))

20
WSE 2.0- Especificaciones soportadas
21
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
Write a Comment
User Comments (0)
About PowerShow.com