Condividi tramite


Attestazioni e token SAML

I token SAML (Security Assertions Markup Language) sono rappresentazioni XML di attestazioni. Per impostazione predefinita i token SAML utilizzati in Windows Communication Foundation (WCF) negli scenari di sicurezza federati sono token rilasciati.

I token SAML contengono istruzioni che si configurano come attestazioni elaborate da un'entità su un'altra entità. Negli scenari di sicurezza federati, ad esempio, le istruzioni sono elaborate da un servizio token di sicurezza su un utente del sistema. Il servizio token di sicurezza firma il token SAML per indicare la veridicità delle istruzioni contenute nel token. Il token SAML, inoltre, è associato a chiavi crittografiche di cui l'utente del token SAML dimostra di essere a conoscenza. La prova dimostra al componente che il token SAML è stato, infatti, rilasciato a quell'utente. In uno scenario tipico, ad esempio:

  1. Un client chiede un token SAML a un servizio token di sicurezza, autenticandosi al servizio mediante le credenziali di Windows.

  2. Il servizio token di sicurezza rilascia un token SAML al cliente. Il token SAML viene firmato con un certificato associato al servizio token di sicurezza e contiene una chiave di prova crittografata per il servizio di destinazione.

  3. Il client riceve inoltre una copia della chiave di prova. Il client presenta quindi il token SAML al servizio dell'applicazione (il componente) e firma il messaggio con tale chiave di prova.

  4. La firma sul token SAML dimostra al componente che il servizio token di sicurezza ha rilasciato il token. La firma del messaggio creata con la chiave di prova dimostra al componente che il token è stato rilasciato al client.

Da attestazioni a SamlAttributes

In WCF le istruzioni contenute nei token SAML sono modellate come oggetti SamlAttribute che possono essere popolati direttamente da oggetti Claim purché l'oggetto Claim disponga di una proprietà Right di PossessProperty e la proprietà Resource sia di tipo String. Ad esempio:

Dim myClaim As New Claim(ClaimTypes.GivenName, "Martin", _
Rights.PossessProperty)
Dim sa As New SamlAttribute(myClaim)
Claim myClaim = new Claim(
    ClaimTypes.GivenName, "Martin", Rights.PossessProperty);
SamlAttribute sa = new SamlAttribute(myClaim);
ms733083.note(it-it,VS.100).gifNota:
Quando i token SAML vengono serializzati nei messaggi, quando sono rilasciati da un servizio token di sicurezza o quando sono presentati dai client ai servizi nell'ambito dell'autenticazione, la quota della dimensione massima del messaggio deve essere sufficientemente grande da contenere il token SAML e le altre parti del messaggio. Normalmente la quota della dimensione predefinita del messaggio è sufficiente. È tuttavia possibile, nei casi in cui un token SAML sia di grandi dimensioni perché contiene centinaia di attestazioni, che risulti necessario aumentare le quote per contenere il token serializzato. Per ulteriori informazioni, vedere Considerazioni sulla protezione per i dati.

Da SamlAttributes ad attestazioni

Quando i token SAML vengono ricevuti nei messaggi, le varie istruzioni contenute nel token SAML vengono trasformate in oggetti IAuthorizationPolicy inseriti in AuthorizationContext. Le attestazioni di ogni istruzione SAML sono restituite dalla proprietà ClaimSets di AuthorizationContext e possono essere esaminate per determinare se autenticare e autorizzare l'utente.

Vedere anche

Attività

Procedura: creare un client federato
Procedura: configurare le credenziali in un servizio federativo
Procedura: creare un'attestazione personalizzata

Riferimento

AuthorizationContext
IAuthorizationPolicy
ClaimSet

Concetti

Federazione
Gestione di attestazioni e autorizzazioni con il modello di identità
Attestazioni e token
Creazione di attestazioni e valori delle risorse