Condividi tramite


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 valore Identity 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 oggetti ClaimSet risultanti dalle credenziali client contiene un'attestazione con una proprietà Right di tipo Identity,, la proprietà IsAnonymous restituisce true. Se sono presenti una o più di tali attestazioni, la proprietà IsAnonymous restituisce false.

Vedi anche