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).
- 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.
- A Azure AD tokenkiállítási végpont kiadja a hozzáférési jogkivonatot.
- A hozzáférési jogkivonat a biztonságos erőforrás hitelesítésére szolgál.
- 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