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 deIdentity
, 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 unClaimType
de huella digital, unRight
PossessProperty, y unResource
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 resultantes de las ClaimSet
credenciales de cliente contiene una notificación con un Right
de Identity
, la IsAnonymous propiedad devuelve true
. Si una o más de esas notificaciones están presentes, la propiedad IsAnonymous
devuelve false
.