Questa documentazione è stata archiviata e non viene gestita.

Formati di token supportati in ACS

Pubblicato: aprile 2011

Aggiornamento: giugno 2015

Si applica a: Azure

Quando i servizi e le applicazioni Web gestiscono l'autenticazione con Microsoft Azure Active Directory Access Control (anche noto come Servizio di controllo di accesso o ACS), il client deve ottenere un token di sicurezza rilasciato da ACS per accedere al servizio o all'applicazione. ACS è in grado di rilasciare token di sicurezza nei seguenti formati:

noteNota
ACS è in grado di rilasciare token di sicurezza in uno qualsiasi dei seguenti formati. Il formato di token usato da ACS per un servizio o un'applicazione Web è determinato dalla configurazione delle applicazioni relying party. Per informazioni sulla configurazione delle applicazioni relying party, vedere Applicazioni relying party.

SAML (Security Assertion Markup Language) è il formato di token più vecchio e oggi più comunemente usato per l'identità basata su attestazioni e SSO (Single Sign-On). SAML specifica un formato XML, valido sia per token che per protocolli, per l'esecuzione di SSO a un servizio o un'applicazione Web mediante token SAML. Per altre informazioni sui token SAML, vedere le specifiche SAML (http://go.microsoft.com/fwlink/?LinkID=213719).

noteNota
I token SAML 1.1 e SAML 2.0 sono ampiamente supportati da varie piattaforme di sviluppo, tra cui Windows Identity Foundation (http://go.microsoft.com/fwlink/?LinkID=213729).

Di seguito è riportato un esempio di token SAML.

<assertion id="_4fe09cda-cad9-49dd-b493-93494e1ae4f9" issueinstant="2012-09-18T20:42:11.626Z"
    version="2.0" xmlns="urn:oasis:names:tc:SAML:2.0:assertion">
<issuer>https://test05.accesscontrol.windows.net/</issuer>
<ds:signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
    <ds:signedinfo>
        <ds:canonicalizationmethod algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
        <ds:signaturemethod algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256" />
        <ds:reference uri="#_4fe09cda-cad9-49dd-b493-93494e1ae4f9">
            <ds:transforms>
                <ds:transform algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" />
                <ds:transform algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
            </ds:transforms>
            <ds:digestmethod algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
            <ds:digestvalue>8qmfRKuATFuo4M96xuci7HCLUGUeO3eBxHOi9/HaFNU=</ds:digestvalue>
        </ds:reference>
    </ds:signedinfo>
<ds:signaturevalue>UWcXJElfrP8hfdNi8ipzSjfxCYGYzoylkn5HdSa8IhphvyZBvbZl1OFEbMSygoo8xNgnywUNPuzZP8nV7CwZNuSWVZZSrF2pHAswBKQoJoodpzrGRR0ruT+A2sjXfnLQqN+X/xanXqqg4ViUOR9xHvn8vzaRwYxPPsjI4OXq0hzLlyuBzhw42XHzZk1qknQr1wp/lZTMwrFnY38gziUZ+Ci1Duen5Xt9k+0ZFujtSBqJKIran1V263o8CkvoahNcNKT//OcXc3va7zeJf67V9/lwY34MkFoqqfeuTSzEuZfk7pYRNqwhOZGhokpR+1qHjEbJr3p6dOOPkuQp9p6zsQ==</ds:signaturevalue>
    <keyinfo xmlns="http://www.w3.org/2000/09/xmldsig#">
        <X509Data>       <X509Certificate>MIIDCDCCAfCgAwIBAgIQRmI8p7P/aphMv5Kr9vQpqTANBgkqhkiG9w0BAQUFADAtMSswKQYDVQQDEyJBQVJPTkJPT0subnRkZXYuY29ycC5taWNyb3NvZnQuY29tMB4XDTEyMDUyMTIzMjMxMFoXDTEzMDUyMTAwMDAwMFowLTErMCkGA1UEAxMiQUFST05CT09LLm50ZGV2LmNvcnAubWljcm9zb2Z0LmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAI79l6EOSWswJn3d9i4yfZh9Cwo2XNhb4tOWvmljCKFlrWoz/Drch5aOzdmI/yFaqkyX7BXc/zoSmX1n3VkqHIeJkGECcZX2bD4jPuICVmKBcXo0SeQ+2vF6DoqjVKaegWrPsqmDrlCscnlMLb11Fg1Ffqkm8wyyWwbQvC5VnVf0i9DPE0n+i3NJi9cT57obrNRkQzwfBZy08I2JlpxLfaUUDhHlF99C1MtBduzn3au+S20gom1cHAcSvHBormXbjPZ5F6RJUz7kO/U+M5rYkiS+vtANtnBlUAK8fRmEUrYFRMr1tyiOXcRid/7UJP3e0EmAsneMnuD9WO/mK6MuzIECAwEAAaMkMCIwCwYDVR0PBAQDAgQwMBMGA1UdJQQMMAoGCCsGAQUFBwMBMA0GCSqGSIb3DQEBBQUAA4IBAQBCRM9maY5ZE+wIxefxjT0IAqp7H6l062PKOGdld5MapOJUWbng2CrfUV3YI5OSD9yhevgDne3jf2DUBv5QndHdms+FL260ydDmwet4A5kJi3ZBO4sR/PZTz3FdeeOwdTeUS2wAMJuphAZ1+PUVk25bbEu/DKmgeYzRn64CHWqk5sPKzH9jAszvX2EeoClI+8Sp/bXHTwzEUOFYcicPOO+tuFTqHOYBDT5bE42rAp/SaC1wXbmTCGS12gfCZCrlml6LZNTsKQWBF2szXOPGcFcInGkauZDUUtZd+921uy0E/sYwgNfi8phU1aGZjIESVFQ70LpfvIMwF6++BRX12icW</X509Certificate>
        </X509Data>
    </keyinfo>
</ds:signature>
<subject>
    <NameID>abc1def2ghi3jkl4mno5pqr6stu7vwx8yza9bcd0efg=</NameID>
    <SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer" />
</subject>
    <conditions notbefore="2012-09-18T20:42:11.610Z" notonorafter="2012-09-18T21:42:11.610Z">
        <AudienceRestriction>
            <Audience>http://localhost:63000/</Audience>
        </AudienceRestriction>
    </conditions>
    <attributestatement>
        <Attribute Name="http://schemas.microsoft.com/accesscontrolservice/2010/07/claims/identityprovider">
            <AttributeValue>uri:WindowsLiveID</AttributeValue>
        </Attribute>
    </attributestatement>
</assertion>

I token SWT (Simple Web Token) sono conformi alla specifica SimpleWebToken. I token SWT sono espressi come coppie chiave/valore codificate come form firmate con una chiave di crittografia. La specifica impone la presenza di alcune coppie chiave/valore, ma lascia libertà riguardo alle coppie chiave/valore specifiche dell'applicazione. Nella seguente tabella sono indicate le chiavi sempre presenti in un token SWT rilasciato da ACS.

 

Chiave Descrizione

Issuer

Una rappresentazione dello spazio dei nomi servizio di ACS che ha rilasciato il token. Lo schema di questo valore è https://<spazionomiservizio>.accesscontrol.windows.net/.

Audience

Il valore di applies_to usato per richiedere il token. Questo valore può essere un URI HTTP o HTTPS.

ExpiresOn

Il valore Epoch in cui scade il token.

HMACSHA256

La firma HMACSHA256 di tutte le altre coppie chiave/valore. Questa coppia chiave/valore è sempre l'ultima nel token. La rappresentazione codificata come form delle altre coppie chiave/valore, incluse le attestazioni specifiche dell'applicazione, viene firmata.

Oltre a queste coppie chiave/valore, a un token vengono aggiunte una o più attestazioni da ACS prima del rilascio. Queste attestazioni sono determinate dalla configurazione delle regole presente in ACS al momento della richiesta del token. Tutte queste attestazioni dispongono di un tipo e uno o più valori, entrambi (tipo e valori) di tipo stringa. Se un'attestazione contiene più valori, questi ultimi sono separati da una virgola (","). Le attestazioni sono codificate come coppie chiave/valore, esattamente come le coppie chiave/valore descritte nella tabella precedente.

Di seguito è riportato un esempio di token ACS contenente attestazioni rappresentate come coppie chiave/valore.

Audience=http%3a%2f%2flocalhost%2fmyservice&ExpiresOn=1255913549Issuer=https%3a%2f%2fmyservice.accesscontrol.windows.net%2f&role=Admin%2cUser&role=Admin%2cUser&&HMACSHA256=sT7Hr9z%2b3t1oDFLpq5GOToVsu6Dyxpq7hHsSAznmwnI%3d

Fatta eccezione per HMACSHA256, le coppie chiave/valore possono essere specificate in qualsiasi ordine. Il seguente token ACS equivale al token ACS precedente, fatta eccezione per le firme che sono diverse.

role=Admin%2cUser&customerName=Contoso%20Corporation&Issuer=https%3a%2f%2fmyservice.accesscontrol.windows.net%2f&Audience=http%3a%2f%2flocalhost%2fmyservice&ExpiresOn=1255912922&HMACSHA256=yuVO%2fwc58%2ftYP36%2fDM1mS%2fHr0hswpsGTWwgfvAbpL64%3d

La seguente tabella indica il contenuto del token con valori decodificati come URL.

 

Origine Chiave Valore codificato come URL Valore decodificato come URL

Attestazioni definite dall'utente

role

Admin%2cUser

Admin,User

customerName

Contoso%20Corporation

Contoso Corporation

Attestazioni definite dal sistema

Issuer

https%3a%2f%2fmyservice.accesscontrol.windows.net%2f

https://myservice.accesscontrol.windows.net/

Audience

http%3a%2f%2flocalhost%2fmyservice

http://localhost/myservice

ExpiresOn

1255912922

1255912922

HMACSHA256

yuVO%2fwc58%2ftYP36%2fDM1mS%2fHr0hswpsGTWwgfvAbpL64%3d

yuVO/wc58/tYP36/DM1mS/Hr0hswpsGTWwgfvAbpL64=

Il supporto per il token Web JSON (JWT) viene aggiunto nella versione Beta, è quindi possibile che vengano apportate modifiche di rilievo senza preavviso.

L'implementazione di ACS del formato di token JWT è conforme alla specifica Draft 9 di JWT. Per altre informazioni, vedere http://go.microsoft.com/fwlink/?LinkID=253666. In modo analogo ai token SWT, JWT indica un formato di token compatto adatto ai servizi Web REST. Diversamente dal formato SWT, i token JWT supportano numerose opzioni di firma. Per i token JWT, ACS supporta sia le firme simmetriche sia quelle asimmetriche. Nella seguente tabella sono indicate le attestazioni sempre presenti nei token JWT rilasciati da ACS.

 

Attestazione Tipo di attestazione usato JWT Descrizione

Issuer

iss

Una rappresentazione dello Spazi dei nomi controllo di accesso che ha rilasciato il token. Lo schema di questo valore è https://<spazionomi>.accesscontrol.windows.net/.

Audience

aud

Il valore dell'ambito usato per richiedere il token. Questo valore viene usato per identificare il destinatario desiderato del token.

Not Before

nbf

Il valore Epoch prima del quale il token non è valido.

Expiration

exp

Il valore Epoch in cui scade il token.

Per i token JWT sono supportati i seguenti algoritmi:

 

Identificatore algoritmo nell'intestazione JWT Descrizione

HS256

HMAC che usa l'algoritmo hash SHA-256. Per la firma di JWT con una chiave simmetrica.

RS256

RSA che usa l'algoritmo hash SHA-256. Per la firma di JWT con una chiave asimmetrica, mediante uno standard x509 con certificato.

Di seguito è riportato un esempio di un token JWT:

eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJhdWQiOiJodHRwczovL2NvbnRvc28uY29tL3JlbHlpbmdwYXJ0eSIsImlzcyI6Imh0dHBzOi8vY29udG9zby5hY2Nlc3Njb250cm9sLndpbmRvd3MubmV0LyIsIm5iZiI6MTMzNjA2NzMzOCwiZXhwIjoxMzM2MDcwOTM4LCJuYW1laWQiOiJjbGllbnRBcHAiLCJpZGVudGl0eXByb3ZpZGVyIjoiY29udG9zby5jb20ifQ._3dZQ6cmmFgrZ_-VmOLrr7CHne3Xdko_WtE6-Je5Ihw. 

Il token JWT è costituito da segmenti delimitati dal punto ('.'). La seguente tabella contiene i segmenti decodificati di un token JWT:

 

Segmento JWT Valore

Intestazione JWT

{"typ":"JWT","alg":"HS256"}

Set di attestazioni JWT

{"aud":"https://contoso.com/relyingparty","iss":"https://contoso.accesscontrol.windows.net/","nbf":1336067338,"exp":1336070938,"nameid":"clientApp","identityprovider":"contoso.com"}

Firma

_3dZQ6cmmFgrZ_-VmOLrr7CHne3Xdko_WtE6-Je5Ihw

Una singola attestazione con più valori viene rappresentata come matrice JSON. Se ad esempio un utente è membro di più ruoli, l'attestazione del ruolo viene visualizzata nel modo seguente:

{
 "aud":"https://contoso.com/relyingparty",
"iss":"https://contoso.accesscontrol.windows.net/",
"nbf":1336067338,"exp":1336070938,
"nameid":"frankm",
"identityprovider":"contoso.com",
“role”: [ “admin”, “user” ]
}

Quando viene rilasciato un token SAML 2.0, SAML 1.1 o SWT o JWT, ACS usa vari protocolli standard per restituire il token a un servizio o un'applicazione Web. ACS supporta le seguenti combinazioni di formato e protocollo del token:

  • ACS è in grado di rilasciare e restituire token SAML 2.0 attraverso i protocolli WS-Trust e WS-Federation, in base al protocollo usato nella richiesta del token.

  • ACS è in grado di rilasciare e restituire token SAML 1.1 attraverso i protocolli WS-Federation e WS-Trust correlati, in base al protocollo usato nella richiesta del token.

  • ACS è in grado di rilasciare e restituire token SWT attraverso i protocolli WS-Federation, WS-Trust e OAuth WRAP o OAuth 2.0, in base al protocollo usato nella richiesta del token.

  • ACS è in grado di rilasciare token JWT attraverso i protocolli WS-Federation, WS-Trust e/o OAuth 2.0, in base al protocollo usato nella richiesta del token.

Vedere anche

Mostra: