Notificaciones y tokens

En este tema se describen los distintos tipos de notificación que crea Windows Communication Foundation (WCF) a partir de los tokens predeterminados que admite.

Puede examinar las notificaciones de una credencial del cliente mediante ClaimSet y las clases Claim. ClaimSet contiene una colección de objetos Claim. Cada Claim posee los siguientes miembros importantes:

  • La propiedad ClaimType devuelve un Identificador uniforme de recursos (URI) que especifica el tipo de notificación que se realiza. Por ejemplo, un tipo de notificación puede ser la huella digital de un certificado, en cuyo caso la dirección URI es http://schemas.microsoft.com/ws/20005/05/identity/claims/thumprint.

  • La propiedad Right devuelve una dirección URI que especifica el derecho de la notificación. Los derechos predefinidos se encuentran en la clase Rights (Identity, PossessProperty).

  • La propiedad Resource devuelve el recurso asociado con la notificación.

Cada ClaimSet también posee una propiedad Issuer, que representa el ClaimSet de Issuer.

Cuentas de Windows

Cuando una credencial del cliente se asigna a una cuenta de usuario de Windows, el ClaimSet resultante adopta los siguientes valores:

  • Issuer es el valor devuelto por la propiedad estática de Windows de la clase ClaimSet.

  • Las notificaciones de la colección son:

    • Claim con un valor ClaimType de identificador de seguridad (SID), un valor de propiedad Right de Identity. y Resource que devuelve el valor SID real. Un SID es un valor único que emite el controlador de dominio para cada usuario. El SID se utiliza para identificar al usuario en interacciones con seguridad de Windows.

    • Claim con un valor ClaimType de SID, Right de PossessProperty, y Resource del valor SID.

    • Una Claim con un ClaimType de Name, un Right de PossessProperty, y un Resource de cadena que contiene el nombre de usuario (por ejemplo, "MYMACHINE\Bob").

    • Notificaciones SID adicionales con PossessProperty para los distintos grupos a los que pertenece el usuario.

Certificados

Cuando la credencial del cliente es un certificado, el ClaimSet resultante tiene los siguientes valores:

  • Para los certificados de emisión propia, Issuer es el propio ClaimSet. El ClaimSet devuelve ClaimType de Thumbprint, un Right de Identity, y un valor Resource que es una matriz Byte que contiene la huella digital del certificado.

  • Para un certificado emitido por una entidad de certificación, el emisor es el ClaimSet que representa el certificado de la entidad de certificación.

  • Las Claims de la colección incluyen.

    • Una Claim con un ClaimType de huella digital, un Right PossessProperty, y un Resource que es una matriz de bytes que contiene la huella digital del certificado.

    • Las notificaciones PossessProperty adicionales de varios tipos, incluidas X500DistinguishedName, Dns, Name, Upn y Rsa, representan varias propiedades del certificado. El recurso para la notificación Rsa es la clave pública asociada con el certificado. Nota: Cuando el tipo de credencial del cliente es un certificado que el servicio asigna a una cuenta de Windows, se generan dos objetos ClaimSet. El primero contiene todas las notificaciones relacionadas con la cuenta de Windows, y el segundo todas las notificaciones relacionadas con el certificado.

Nombre de usuario/contraseña

Cuando la credencial del cliente es un nombre de usuario/contraseña (o equivalente) que no se asigna a una cuenta de Windows, el ClaimSet resultante es emitido por la propiedad System estática de la clase ClaimSet. ClaimSet contiene una notificación Identity de tipo Name cuyo recurso es el nombre de usuario que el cliente proporciona. Una notificación correspondiente tiene un Right de PossessProperty.

Claves RSA

Cuando se utiliza una clave RSA no asociada con un certificado, el elemento ClaimSet resultante se emite automáticamente y contiene una notificación Identity de tipo Rsa, cuyo recurso es la clave RSA. Una notificación correspondiente tiene un Right de PossessProperty.

SAML

Cuando el cliente realiza la autenticación con un token de Lenguaje de marcado de aserciones de seguridad (SAML), la entidad que firmo el token de SAML, con frecuencia el certificado del servicio de token de seguridad (STS) que emitió el token de SAML, emite el ClaimSet resultante. El ClaimSet contiene varias notificaciones tal y como se encuentran en el token de SAML. Si el token de SAML contiene SamlSubject con un no nombre null, se crea una notificación Identity con un tipo de NameIdentifier, y un tipo de recurso SamlNameIdentifierClaimResource.

Notificaciones de identidad y ServiceSecurityContext.IsAnonymous

Si ninguno de los objetos ClaimSet resultante de las credenciales del cliente contiene una notificación con un valor Right de Identity,, la propiedad IsAnonymous devuelve true. Si una o más de esas notificaciones están presentes, la propiedad IsAnonymous devuelve false.

Consulte también