Az ACS-ben támogatott jogkivonat-formátumok
Frissítve: 2015. június 19.
A következőkre vonatkozik: Azure
Ha a webalkalmazások és -szolgáltatások Microsoft Azure Active Directory Access Control (más néven Access Control Szolgáltatás vagy ACS) használatával kezelik a hitelesítést, az ügyfélnek be kell szereznie az ACS által kiadott biztonsági jogkivonatot az alkalmazásba vagy szolgáltatásba való bejelentkezéshez. Az ACS a következő formátumban tud biztonsági jogkivonatokat kiadni:
Security Assertion Markup Language (SAML) 1.1 és 2.0
Egyszerű webes jogkivonat (SWT)
JSON webes jogkivonat (JWT)
Megjegyzés
Az ACS az alábbi formátumok bármelyikében kiadhat biztonsági jogkivonatokat. Az ACS által webalkalmazáshoz vagy szolgáltatáshoz használt jogkivonat-formátumot a függő entitás alkalmazáskonfigurációja határozza meg. A függő entitásalkalmazások konfigurálásával kapcsolatos információkért lásd a függő entitásalkalmazásokat.
Security Assertion Markup Language (SAML) 1.1 és 2.0
A Security Assertion Markup Language (SAML) az egyszeri bejelentkezéshez (SSO) és jogcímalapú identitáshoz használt jogkivonatok legrégebbi és leggyakoribb formátuma. Az SAML egy XML-formátumot határoz meg a jogkivonatokhoz és a protokollokhoz egy webalkalmazás vagy egy webszolgáltatás SSO-jának SAML-jogkivonatok használatával történő végrehajtásához. További információ az SAML-jogkivonatokról: SAML-specifikációk (https://go.microsoft.com/fwlink/?LinkID=213719).
Megjegyzés
Az SAML 1.1 és az SAML 2.0 jogkivonatokat számos fejlesztési platform támogatja széles körben, beleértve a Windows Identity Foundation (https://go.microsoft.com/fwlink/?LinkID=213729) platformot is.
Az alábbiakban egy SAML-jogkivonatot mutatunk be.
<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>https://localhost:63000/</Audience>
</AudienceRestriction>
</conditions>
<attributestatement>
<Attribute Name="https://schemas.microsoft.com/accesscontrolservice/2010/07/claims/identityprovider">
<AttributeValue>uri:WindowsLiveID</AttributeValue>
</Attribute>
</attributestatement>
</assertion>
Egyszerű webes jogkivonat (SWT)
Az egyszerű webes jogkivonatok (SWT) megfelelnek a SimpleWebToken specifikációnak. Az SWT-tokenek űrlapkódolt kulcs/érték párként vannak kifejezve, titkosítási kulccsal aláírva. A specifikáció bizonyos kulcs-érték párok meglétét teszi kötelezőre, de helyet hagy az alkalmazásspecifikus kulcs-érték pároknak. Az ACS által kiadott SWT-jogkivonatokban mindig megtalálható kulcsok az alábbi táblázatban láthatók.
Kulcs | Leírás |
---|---|
Kiállító |
A jogkivonatot kibocsátó ACS-szolgáltatásnévtér ábrázolása. Ennek az értéknek a mintája a https://< servicenamespace.accesscontrol.windows.net/>. |
Célközönség |
A jogkivonat igényléséhez használt érték |
ExpiresOn |
Az a korszak, amikor a jogkivonat lejár. |
HMACSHA256 |
Az összes többi kulcs/érték pár HMACSHA256 aláírása. Ez a kulcs/érték pár mindig az utolsó kulcs/érték pár a jogkivonatban. A többi kulcs/érték pár (beleértve az alkalmazásspecifikus jogcímeket is) űrlapkódolt ábrázolása alá van írva. |
Ezen kulcs-érték párok mellett az ACS egy vagy több jogcímet ad hozzá egy jogkivonathoz a kiállítás előtt. Ezeket a jogcímeket az ACS-ben a jogkivonat-kérelem időpontjában található szabálykonfiguráció vezérli. Minden ilyen jogcím típussal és egy vagy több értékkel rendelkezik, ahol a típus és az értékek is sztringek. Ha egy jogcím egynél több értéket tartalmaz, az értékeket a vessző (",") karakter választja el egymástól. A jogcímek kulcs-érték párokként vannak kódolva, pontosan úgy, mint az előző táblázatban leírt kulcs-érték párok.
Az alábbiakban egy példa látható egy ACS-jogkivonatra, amely kulcs/érték párként ábrázolt jogcímeket tartalmaz.
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
A HMACSHA256 kulcs/érték pár kivételével ezek a párok bármilyen sorrendben lehetnek. A következő ACS-jogkivonat egyenértékű az előző ACS-jogkivonattal, kivéve a különböző aláírásokat.
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
Az alábbi táblázat a jogkivonat tartalmát mutatja be URL-dekódolt értékekkel.
Forrás | Kulcs | URL-kódolt érték | URL-cím dekódolt értéke |
---|---|---|---|
Felhasználó által definiált jogcímek |
Szerepet |
Rendszergazda%2cUser |
Rendszergazda,Felhasználó |
customerName |
Contoso%20Corporation |
Contoso Corporation |
|
Rendszeralapú jogcímek |
Kiállító |
https%3a%2f%2fmyservice.accesscontrol.windows.net%2f |
https://myservice.accesscontrol.windows.net/ |
Célközönség |
http%3a%2f%2flocalhost%2fmyservice |
https://localhost/myservice |
|
ExpiresOn |
1255912922 |
1255912922 |
|
HMACSHA256 |
yuVO%2fwc58%2ftYP36%2fDM1mS%2fHr0hswpsGTWwgfvAbpL64%3d |
yuVO/wc58/tYP36/DM1mS/Hr0hswpsGTWwgfvAbpL64= |
JSON webes jogkivonat (JWT)
A JSON webes jogkivonat (JWT) támogatása bétaverzióban érhető el, ami azt jelenti, hogy értesítés nélkül kompatibilitástörő változások következhetnek be.
A JWT-tokenformátum ACS-implementációja a JWT-specifikáció 9. piszkozatát követi. További információ: https://go.microsoft.com/fwlink/?LinkID=253666. Az SWT-jogkivonatokhoz hasonlóan a JWT egy kompakt tokenformátum, amely REST-webszolgáltatásokhoz használható. Az SWT formátumtól eltérően a JWT számos aláírási lehetőséget támogat. Az ACS támogatja a JWT-tokenek szimmetrikus és aszimmetrikus aláírását is. Az ACS által kibocsátott JWT-jogkivonatokban mindig megtalálható jogcímek az alábbi táblázatban láthatók.
Jogcím | Jogcímtípus használt JWT | Description |
---|---|---|
Kiállító |
Iss |
A jogkivonatot kibocsátó Access Control névtér ábrázolása. Ennek az értéknek a mintája a https://< namespace.accesscontrol.windows.net/> |
Célközönség |
aud |
A jogkivonat lekéréséhez használt hatókör értéke. Ez az érték a jogkivonat kívánt címzettjének azonosítására szolgál. |
Hatálybalépési idő |
nbf |
Az a korszak, amely előtt a jogkivonat érvénytelen. |
Lejárat |
Exp |
Az a korszak, amikor a jogkivonat lejár. |
A JWT-tokenekhez a következő algoritmusok támogatottak:
Algoritmusazonosító a JWT-fejlécben | Description |
---|---|
HS256 |
HMAC SHA-256 kivonatoló algoritmussal. JWT szimmetrikus kulccsal történő aláírásához. |
RS256 |
RSA SHA-256 kivonatoló algoritmussal. JWT aszimmetrikus kulcs aláírásához x509 tanúsítvánnyal. |
Íme egy példa egy JWT-jogkivonatra:
eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJhdWQiOiJodHRwczovL2NvbnRvc28uY29tL3JlbHlpbmdwYXJ0eSIsImlzcyI6Imh0dHBzOi8vY29udG9zby5hY2Nlc3Njb250cm9sLndpbmRvd3MubmV0LyIsIm5iZiI6MTMzNjA2NzMzOCwiZXhwIjoxMzM2MDcwOTM4LCJuYW1laWQiOiJjbGllbnRBcHAiLCJpZGVudGl0eXByb3ZpZGVyIjoiY29udG9zby5jb20ifQ._3dZQ6cmmFgrZ_-VmOLrr7CHne3Xdko_WtE6-Je5Ihw.
A JWT szegmensekből áll, amelyek a "." használatával vannak elválasztva. Az alábbi táblázat egy JWT-jogkivonat dekódolt szegmenseit mutatja be:
JWT-szegmens | Érték |
---|---|
JWT-fejléc |
{"typ":"JWT","alg":"HS256"} |
JWT-jogcímkészlet |
{"aud":"https://contoso.com/relyingparty""iss":"https://contoso.accesscontrol.windows.net/";"nbf":1336067338,"exp":1336070938;"nameid":"clientApp","identityprovider":"contoso.com"} |
Aláírás |
_3dZQ6cmmFgrZ_-VmOLrr7CHne3Xdko_WtE6-Je5Ihw |
A több értékkel rendelkező egyetlen jogcím JSON-tömbként jelenik meg. Ha például egy felhasználó több szerepkör tagja, a szerepkörjogcím a következőképpen jelenik meg:
{
"aud":"https://contoso.com/relyingparty",
"iss":"https://contoso.accesscontrol.windows.net/",
"nbf":1336067338,"exp":1336070938,
"nameid":"frankm",
"identityprovider":"contoso.com",
“role”: [ “admin”, “user” ]
}
ACS-jogkivonatok és protokollok
SAML 2.0, SAML 1.1, SWT, JWT token kiadásakor az ACS különböző szabványos protokollokkal adja vissza a jogkivonatot egy webalkalmazásnak vagy szolgáltatásnak. Az ACS a következő tokenformátumot/protokollkombinációkat támogatja:
Az ACS saml 2.0-s jogkivonatokat tud kiadni és visszaadni a WS-Trust és WS-Federation protokollon keresztül (a jogkivonat-kérelemben használt protokolltól függően).
Az ACS saml 1.1-jogkivonatokat tud kiadni és visszaadni a WS-Federation és a kapcsolódó WS-Trust protokollokon keresztül (a jogkivonat-kérelemben használt protokolltól függően).
Az ACS SWT-jogkivonatokat tud kiadni és visszaadni a WS-Federation, a WS-Trust és az OAuth WRAP vagy az OAuth 2.0 protokollon keresztül (a jogkivonat-kérelemben használt protokolltól függően).
Az ACS JWT-jogkivonatokat tud kiadni a WS-Federation, a WS-Trust és az OAuth 2.0 protokollon keresztül (a jogkivonat-kérelemben használt protokolltól függően).