Megosztás a következőn keresztül:


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 applies_to . Ez az érték HTTP vagy HTTPS URI.

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).

Lásd még:

Alapelvek

ACS-architektúra
ACS 2.0-összetevők