Szolgáltatáshívások szolgáltatása ügyfél-hitelesítő adatokkal (megosztott titkos kód vagy tanúsítvány)

Figyelmeztetés

Ez a tartalom a régebbi Azure AD 1.0-s verziójú végponthoz tartozik. Használja a Microsoft Identitásplatform új projektekhez.

Az OAuth 2.0 ügyfélhitelesítési folyamat lehetővé teszi, hogy egy webszolgáltatás (bizalmas ügyfél) saját hitelesítő adatait használja ahelyett, hogy megszemélyesítenének egy felhasználót, hogy hitelesítést végezzen egy másik webszolgáltatás hívásakor. Ebben a forgatókönyvben az ügyfél általában egy középső rétegbeli webszolgáltatás, egy démonszolgáltatás vagy webhely. A magasabb szintű megbízhatóság érdekében a Azure AD lehetővé teszi, hogy a hívó szolgáltatás tanúsítványt használjon (közös titkos kód helyett) hitelesítő adatként.

Ügyfél-hitelesítő adatok engedélyezési folyamatábra

Az alábbi ábra bemutatja, hogyan működik az ügyfél-hitelesítő adatok engedélyezési folyamata az Azure Active Directoryban (Azure AD).

OAuth2.0 ügyfél-hitelesítő adatok engedélyezési folyamata

  1. Az ügyfélalkalmazás hitelesíti magát a Azure AD jogkivonat-kiállítási végponton, és hozzáférési jogkivonatot kér.
  2. A Azure AD tokenkiállítási végpont kiadja a hozzáférési jogkivonatot.
  3. A hozzáférési jogkivonat a biztonságos erőforrás hitelesítésére szolgál.
  4. A biztonságos erőforrásból származó adatok visszakerülnek az ügyfélalkalmazásba.

Szolgáltatások regisztrálása a Azure AD

Regisztrálja a hívó szolgáltatást és a fogadó szolgáltatást az Azure Active Directoryban (Azure AD). Részletes útmutatásért lásd: Alkalmazások integrálása az Azure Active Directoryval.

Hozzáférési jogkivonat kérése

Hozzáférési jogkivonat kéréséhez használjon HTTP POST-t a bérlőspecifikus Azure AD végponthoz.

https://login.microsoftonline.com/<tenant id>/oauth2/token

Szolgáltatásközi hozzáférési jogkivonat kérése

Két eset van attól függően, hogy az ügyfélalkalmazás megosztott titkos kóddal vagy tanúsítvánnyal védve van-e.

Első eset: Hozzáférési jogkivonat-kérés megosztott titkos kóddal

Megosztott titkos kód használatakor a szolgáltatásközi hozzáférési jogkivonat-kérés a következő paramétereket tartalmazza:

Paraméter Típus Description
grant_type kötelező Megadja a kért támogatási típust. Az Ügyfél hitelesítő adatainak megadása folyamatban az értéknek client_credentials kell lennie.
client_id kötelező Megadja a hívó webszolgáltatás Azure AD ügyfél-azonosítóját. A hívó alkalmazás ügyfél-azonosítójának megkereséséhez a Azure Portal kattintson az Azure Active Directory elemre, kattintson a Alkalmazásregisztrációk, majd az alkalmazásra. A client_id az alkalmazás azonosítója
client_secret kötelező Adjon meg egy kulcsot, amely regisztrálva van a hívó webszolgáltatáshoz vagy démonalkalmazáshoz a Azure AD. Kulcs létrehozásához a Azure Portal kattintson az Azure Active Directory elemre, kattintson az Alkalmazásregisztrációk elemre, kattintson az alkalmazásra, kattintson a Beállítások, a Kulcsok elemre, és adjon hozzá egy kulcsot. URL-kódolja ezt a titkos kódot a megadáskor.
erőforrás kötelező Adja meg a fogadó webszolgáltatás alkalmazásazonosítójának URI-ját. Az alkalmazásazonosító URI-jának megkereséséhez a Azure Portal kattintson az Azure Active Directory elemre, kattintson a Alkalmazásregisztrációk elemre, kattintson a szolgáltatásalkalmazásra, majd a Beállítások és tulajdonságok elemre.

Példa

Az alábbi HTTP POST hozzáférési jogkivonatot kér a https://service.contoso.com/ webszolgáltatáshoz. A client_id azonosítja a hozzáférési jogkivonatot kérő webszolgáltatást.

POST /contoso.com/oauth2/token HTTP/1.1
Host: login.microsoftonline.com
Content-Type: application/x-www-form-urlencoded

grant_type=client_credentials&client_id=625bc9f6-3bf6-4b6d-94ba-e97cf07a22de&client_secret=qkDwDJlDfig2IpeuUZYKH1Wb8q1V0ju6sILxQQqhJ+s=&resource=https%3A%2F%2Fservice.contoso.com%2F

Második eset: Hozzáférési jogkivonat-kérelem tanúsítvánnyal

Egy tanúsítványt tartalmazó szolgáltatásközi hozzáférési jogkivonat-kérés a következő paramétereket tartalmazza:

Paraméter Típus Description
grant_type kötelező Megadja a kért választípust. Az Ügyfél hitelesítő adatainak megadása folyamatban az értéknek client_credentials kell lennie.
client_id kötelező Megadja a hívó webszolgáltatás Azure AD ügyfél-azonosítóját. A hívó alkalmazás ügyfél-azonosítójának megkereséséhez a Azure Portal kattintson az Azure Active Directory elemre, kattintson a Alkalmazásregisztrációk, majd az alkalmazásra. A client_id az alkalmazás azonosítója
client_assertion_type kötelező Az értéknek urn:ietf:params:oauth:client-assertion-type:jwt-bearer
client_assertion kötelező Egy helyességi feltétel (egy JSON webes jogkivonat), amelyet létre kell hoznia és alá kell írnia az alkalmazás hitelesítő adataiként regisztrált tanúsítvánnyal. A tanúsítvány hitelesítő adatairól szóló cikkből megtudhatja, hogyan regisztrálhatja a tanúsítványt és a helyességi feltétel formátumát.
erőforrás kötelező Adja meg a fogadó webszolgáltatás alkalmazásazonosítójának URI-ját. Az alkalmazásazonosító URI-jának megkereséséhez a Azure Portal kattintson az Azure Active Directory elemre, kattintson a Alkalmazásregisztrációk elemre, kattintson a szolgáltatásalkalmazásra, majd a Beállítások és tulajdonságok elemre.

Figyelje meg, hogy a paraméterek majdnem ugyanazok, mint a megosztott titkos kóddal történő kérés esetében, azzal a kivételrel, hogy a client_secret paramétert két paraméter váltja fel: egy client_assertion_type és client_assertion.

Példa

Az alábbi HTTP POST egy hozzáférési jogkivonatot kér a https://service.contoso.com/ webszolgáltatáshoz egy tanúsítvánnyal. A client_id azonosítja a hozzáférési jogkivonatot kérő webszolgáltatást.

POST /<tenant_id>/oauth2/token HTTP/1.1
Host: login.microsoftonline.com
Content-Type: application/x-www-form-urlencoded

resource=https%3A%2F%contoso.onmicrosoft.com%2Ffc7664b4-cdd6-43e1-9365-c2e1c4e1b3bf&client_id=97e0a5b7-d745-40b6-94fe-5f77d35c6e05&client_assertion_type=urn%3Aietf%3Aparams%3Aoauth%3Aclient-assertion-type%3Ajwt-bearer&client_assertion=eyJhbGciOiJSUzI1NiIsIng1dCI6Imd4OHRHeXN5amNScUtqRlBuZDdSRnd2d1pJMCJ9.eyJ{a lot of characters here}M8U3bSUKKJDEg&grant_type=client_credentials

Szolgáltatásközi hozzáférési jogkivonat válasza

A sikeres válasz JSON OAuth 2.0-választ tartalmaz a következő paraméterekkel:

Paraméter Leírás
access_token A kért hozzáférési jogkivonat. A hívó webszolgáltatás ezzel a jogkivonattal hitelesítheti magát a fogadó webszolgáltatásban.
token_type A tokentípus értékét jelzi. Az egyetlen olyan típus, amelyet Azure AD támogat, a Tulajdonos. További információ a tulajdonosi jogkivonatokról: Az OAuth 2.0 engedélyezési keretrendszere: Tulajdonosi jogkivonat használata (RFC 6750).
expires_in Mennyi ideig érvényes a hozzáférési jogkivonat (másodpercben).
expires_on A hozzáférési jogkivonat lejáratának időpontja. A dátum az 1970-01-01T0:0:0Z UTC és a lejárati idő közötti másodpercek számaként jelenik meg. Ez az érték határozza meg a gyorsítótárazott tokenek élettartamát.
not_before A hozzáférési jogkivonat használhatóvá válásának időpontja. A dátum az 1970–1970–01–01T0:0:0Z UTC közötti másodpercek számaként jelenik meg a jogkivonat érvényességi idejéig.
erőforrás A fogadó webszolgáltatás alkalmazásazonosítójának URI-ja.

Példa válaszra

Az alábbi példa egy sikeres választ mutat be egy webszolgáltatás hozzáférési jogkivonatára vonatkozó kérésre.

{
"access_token":"eyJ0eXAiO ... 0X2tnSQLEANnSPHY0gKcgw",
"token_type":"Bearer",
"expires_in":"3599",
"expires_on":"1388452167",
"resource":"https://service.contoso.com/"
}

A hozzáférési jogkivonat használata a biztonságos erőforrás eléréséhez

A szolgáltatás a beszerzett hozzáférési jogkivonat használatával hitelesíti a kéréseket az alsóbb rétegbeli webes API-hoz a jogkivonat fejlécben való Authorization beállításával.

Példa

GET /me?api-version=2013-11-08 HTTP/1.1
Host: graph.microsoft.com
Authorization: Bearer eyJ0eXAiO ... 0X2tnSQLEANnSPHY0gKcgw

Lásd még