Attestazioni e token
In questo argomento vengono descritti i vari tipi di attestazione creati da Windows Communication Foundation (WCF) dai token predefiniti supportati.
È possibile esaminare le attestazioni di una credenziale client usando le classi ClaimSet e Claim. L'elemento ClaimSet
contiene una raccolta di oggetti Claim
. Ogni oggetto Claim
comprende i membri seguenti:
La proprietà ClaimType restituisce un URI (Uniform Resource Identifier) che specifica il tipo di attestazione che viene creato. Ad esempio, un tipo di attestazione può essere un'identificazione personale di un certificato, nel qual caso l'URI è
http://schemas.microsoft.com/ws/20005/05/identity/claims/thumprint
.La proprietà Right restituisce un URI che specifica il diritto dell'attestazione. I diritti predefiniti si trovano nella classe Rights (Identity, PossessProperty).
La proprietà Resource restituisce la risorsa associata all'attestazione.
Ogni classe ClaimSet ha anche una proprietà Issuer che rappresenta la classe ClaimSet dell'elemento Issuer
.
Account di Windows
Quando una credenziale client esegue il mapping a un account utente Windows, la classe ClaimSet risultante ha i valori seguenti:
Issuer
è il valore restituito dalla proprietà Windows statica della classe ClaimSet.Le attestazioni incluse nella raccolta sono:
Una classe Claim con un valore SID ClaimType, un valore Right della proprietà
Identity
e una proprietà Resource che restituisce il valore SID effettivo. Un SID è un valore univoco che il controller di dominio invia a ogni utente. Il SID viene usato per identificare l'utente nelle interazioni con la protezione di Windows.Una classe Claim con un valore SID ClaimType, un valore Right della proprietà
PossessProperty
e una proprietà Resource del valore SID.Una classe Claim con una proprietà ClaimType con valore Name, una proprietà Right con valore
PossessProperty
e una proprietà Resource della stringa che contiene il nome utente (ad esempio, "MYMACHINE\Bob").Attestazioni SID aggiuntive con la proprietà PossessProperty per i vari gruppi ai quali appartiene l'utente.
Certificati
Quando la credenziale client è un certificato, la classe ClaimSet risultante ha i valori seguenti:
Per i certificati autocertificati, l'elemento
Issuer
è la classe ClaimSet stessa. La classe ClaimSet restituisce una proprietà ClaimType con valore Thumbprint, una proprietà Right con valoreIdentity
e un valore della proprietà Resource che corrisponde a una matrice Byte contenente l'identificazione personale del certificato.Per un certificato emesso da un'autorità di certificazione, l'emittente corrisponde al valore
ClaimSet
che rappresenta il certificato dell'autorità di certificazione.Gli elementi
Claims
presenti nella raccolta includono:Un elemento
Claim
con una proprietàClaimType
con valore Thumbprint, una proprietàRight
con valore PossessProperty e una proprietàResource
che corrisponde a una matrice di byte contenente l'identificazione personale del certificato.Attestazioni PossessProperty aggiuntive di vario tipo, tra cui X500DistinguishedName, Dns, Name, Upn e Rsa rappresentano le varie proprietà del certificato. La risorsa per l'attestazione Rsa è la chiave pubblica associata al certificato. Nota: quando il tipo di credenziale client è un certificato del quale il servizio esegue il mapping a un account di Windows, vengono generati due oggetti
ClaimSet
. Il primo contiene tutte le attestazioni relative all'account di Windows e il secondo contiene tutte le attestazioni relative al certificato.
Nome utente/Password
Quando la credenziale client è un nome utente/password (o equivalente) che non esegue il mapping a un account di Windows, l'oggetto ClaimSet
risultante viene pubblicato dalla proprietà System statica della classe ClaimSet
. L'oggetto ClaimSet
contiene un'attestazione di Identity
di tipo Name la cui risorsa è il nome utente fornito dal client. Un'attestazione corrispondente ha una proprietà Right
di tipo PossessProperty
.
Chiavi RSA
Quando viene usata una chiave RSA non associata a un certificato, l'oggetto ClaimSet
risultante è autocertificato e contiene un'attestazione di Identity
di tipo Rsa la cui risorsa è la chiave RSA. Un'attestazione corrispondente ha una proprietà Right
di tipo PossessProperty
.
SAML
Quando il client esegue l'autenticazione con un token SAML (Security Assertions Markup Language), l'oggetto ClaimSet
risultante viene emesso dall'entità che ha firmato il token SAML, in genere il certificato del servizio token di sicurezza (STS) che ha emesso il token SAML. ClaimSet
contiene le varie attestazioni presenti nel token SAML. Se il token SAML contiene una classe SamlSubject
con un nome null
, verranno create un'attestazione Identity
di tipo NameIdentifier e un tipo di risorsa SamlNameIdentifierClaimResource.
Attestazioni d'identità e ServiceSecurityContext.IsAnonymous
Se nessuno degli ClaimSet
oggetti risultanti dalle credenziali client contiene un'attestazione con un Right
di Identity
, la IsAnonymous proprietà restituisce true
. Se sono presenti una o più di tali attestazioni, la proprietà IsAnonymous
restituisce false
.