Alkalmazástípusok a Microsoft Identitásplatform
A Microsoft Identitásplatform különböző modern alkalmazásarchitektúrák hitelesítését támogatja, amelyek mindegyike az OAuth 2.0 vagy az OpenID Connect iparági szabvány protokollon alapul. Ez a cikk azokat az alkalmazástípusokat ismerteti, amelyeket Microsoft Identitásplatform használatával hozhat létre, függetlenül az előnyben részesített nyelvtől vagy platformtól. Az információk célja, hogy segítsenek megérteni a magas szintű forgatókönyveket, mielőtt elkezdené használni a kódot az alkalmazásforgatókönyvekben.
Az alapok
Regisztrálnia kell minden olyan alkalmazást, amely a Microsoft Identitásplatform használja a Microsoft Entra Felügyeleti központban Alkalmazásregisztrációk. Az alkalmazásregisztrációs folyamat összegyűjti és hozzárendeli az alábbi értékeket az alkalmazáshoz:
- Alkalmazás (ügyfél) azonosítója , amely egyedileg azonosítja az alkalmazást
- Átirányítási URI , amellyel visszaadhatja a válaszokat az alkalmazásnak
- Néhány más forgatókönyv-specifikus érték, például a támogatott fióktípusok
További információkért olvassa el, hogyan regisztrálhat alkalmazásokat.
Az alkalmazás regisztrálása után az alkalmazás a végpontra küldött kérésekkel kommunikál a Microsoft Identitásplatform. Nyílt forráskódú keretrendszereket és kódtárakat biztosítunk, amelyek kezelik a kérések részleteit. A hitelesítési logikát saját maga is megvalósíthatja az alábbi végpontokra irányuló kérések létrehozásával:
https://login.microsoftonline.com/common/oauth2/v2.0/authorize
https://login.microsoftonline.com/common/oauth2/v2.0/token
A Microsoft Identitásplatform által támogatott alkalmazástípusok a következők:
- Egyoldalas alkalmazás (SPA)
- Webalkalmazás
- Webes API
- Mobil- és natív alkalmazások
- Szolgáltatás, démon, szkript
Egyoldalas alkalmazások
Számos modern alkalmazás rendelkezik egy egyoldalas alkalmazás (SPA) előtérrel, amely elsősorban JavaScriptben íródott, gyakran olyan keretrendszerrel, mint az Angular, a React vagy a Vue. A Microsoft Identitásplatform az OpenID Connect protokoll használatával támogatja ezeket az alkalmazásokat a hitelesítéshez, valamint az OAuth 2.0 által meghatározott kétféle engedélyezési támogatás egyikével. Az engedélyezési kód folyamatának használata A PKCE-vel az SLA-k fejlesztésekor. Ez a folyamat biztonságosabb, mint az implicit folyamat, ami már nem ajánlott. További információt a hitelesítési kód folyamatának előnyben részesítése című témakörben talál.
A folyamatábra bemutatja az OAuth 2.0 engedélyezési kód engedélyezési folyamatát (a PKCE kihagyásával kapcsolatos részletekkel), ahol az alkalmazás egy kódot kap a Microsoft Identitásplatform authorize
végponttól, és egy hozzáférési jogkivonatra és egy frissítési jogkivonatra váltja be webhelyközi webkérelmek használatával. Az SLA-k esetében a hozzáférési jogkivonat 1 órán át érvényes, és ha lejárt, egy másik kódot kell kérnie a frissítési jogkivonat használatával. A hozzáférési jogkivonaton id_token
kívül a bejelentkezett felhasználót az ügyfélalkalmazásba jellemzően ugyanazzal a folyamattal és/vagy külön OpenID Connect-kéréssel is kérik (itt nem látható).
Ennek működés közbeni megtekintéséhez tekintse meg a rövid útmutatót: Jelentkezzen be felhasználókat egy egyoldalas alkalmazásban (SPA), és hívja meg a Microsoft Graph API-t JavaScript használatával.
Webalkalmazások
A böngészőn keresztül elérhető webalkalmazások (.NET, PHP, Java, Ruby, Python, Node) esetében használhatja az OpenID Connectet a felhasználói bejelentkezéshez. Az OpenID Connectben a webalkalmazás egy azonosító jogkivonatot kap. Az azonosító jogkivonat egy biztonsági jogkivonat, amely ellenőrzi a felhasználó identitását, és jogcímek formájában nyújt információkat a felhasználóról:
// Partial raw ID token
abC1dEf2Ghi3jkL4mNo5Pqr6stU7vWx8Yza9...
// Partial content of a decoded ID token
{
"name": "Casey Jensen",
"email": "casey.jensen@onmicrosoft.com",
"oid": "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb"
...
}
A Microsoft Identitásplatform használt különböző jogkivonatok további részletei elérhetők a hozzáférési jogkivonatok referenciájában és id_token referenciájában.
A webkiszolgáló-alkalmazásokban a bejelentkezési hitelesítési folyamat az alábbi magas szintű lépéseket végzi el:
A felhasználó identitását úgy biztosíthatja, hogy érvényesíti az azonosító jogkivonatot a Microsoft Identitásplatform kapott nyilvános aláíró kulccsal. Be van állítva egy munkamenet-cookie, amely a felhasználó azonosítására használható a későbbi oldalkérések során.
További információ egy ASP.NET Core-webalkalmazás létrehozásával, amely bejelentkezik a felhasználókba az alábbi többrészes oktatóanyag-sorozatban
Az egyszerű bejelentkezés mellett előfordulhat, hogy egy webkiszolgáló-alkalmazásnak egy másik webszolgáltatáshoz, például a Representational State Transfer (REST) API-hoz kell hozzáférnie. Ebben az esetben a webkiszolgáló-alkalmazás az OAuth 2.0 engedélyezési kódfolyamat használatával egy kombinált OpenID Connect- és OAuth 2.0-s folyamatot használ. Erről a forgatókönyvről további információt a kódmintánkban talál.
Webes API-k
A Microsoft Identitásplatform webszolgáltatások, például az alkalmazás RESTful webes API-jának védelmére használhatja. A webes API-k számos platformon és nyelven implementálhatók. HTTP-triggerekkel is implementálhatók az Azure Functionsben. Az azonosító jogkivonatok és a munkamenet-cookie-k helyett a webes API egy OAuth 2.0 hozzáférési jogkivonatot használ az adatok védelméhez és a bejövő kérések hitelesítéséhez.
A webes API hívója hozzáfűz egy hozzáférési jogkivonatot egy HTTP-kérés engedélyezési fejlécéhez, például a következőhöz:
GET /api/items HTTP/1.1
Host: www.mywebapi.com
Authorization: Bearer abC1dEf2Ghi3jkL4mNo5Pqr6stU7vWx8Yza9...
Accept: application/json
...
A webes API a hozzáférési jogkivonatot használja az API-hívó identitásának ellenőrzésére és a hívó adatainak kinyerésére a hozzáférési jogkivonatban kódolt jogcímekből. A Microsoft Identitásplatform használt különböző jogkivonatok további részletei megtalálhatók a hozzáférési jogkivonatok referenciájában és az azonosító jogkivonatok referenciájában.
A webes API-k lehetővé tehetik a felhasználók számára, hogy engedélyek, más néven hatókörök felfedésével kikapcsolják vagy kikapcsolják az adott funkciókat vagy adatokat. Ahhoz, hogy egy hívó alkalmazás engedélyt szerezzen egy hatókörhöz, a felhasználónak hozzá kell adnia a hatókört egy folyamat során. A Microsoft Identitásplatform engedélyt kér a felhasználótól, majd rögzíti az engedélyeket a webes API által kapott összes hozzáférési jogkivonatban. A webes API ellenőrzi az egyes hívásokhoz kapott hozzáférési jogkivonatokat, és engedélyezési ellenőrzéseket végez.
A webes API-k bármilyen típusú alkalmazásból kaphatnak hozzáférési jogkivonatokat, beleértve a webkiszolgáló alkalmazásokat, az asztali és mobilalkalmazásokat, az egyoldalas alkalmazásokat, a kiszolgálóoldali démonokat és még más webes API-kat is. A webes API magas szintű folyamata a következőképpen néz ki:
A webes API OAuth2 hozzáférési jogkivonatok használatával történő védelméről a webes API-kódmintákat a védett webes API-oktatóanyagban tekintheti meg.
A webes API-knak sok esetben kimenő kéréseket is kell küldenie más, Microsoft Identitásplatform által védett alsóbb rétegbeli webes API-khoz. Ehhez a webes API-k kihasználhatják az OBO (On-Behalf-Of- (OBO) folyamatot, amely lehetővé teszi, hogy a webes API egy bejövő hozzáférési jogkivonatot cseréljen egy másik hozzáférési jogkivonatra a kimenő kérelmekben való használatra. További információ: Microsoft Identitásplatform és OAuth 2.0 On-Behalf-Of flow.
Mobil- és natív alkalmazások
Az eszközre telepített alkalmazásoknak, például a mobil- és asztali alkalmazásoknak gyakran hozzá kell férnie a háttérszolgáltatásokhoz vagy a webes API-khoz, amelyek adatokat tárolnak, és egy felhasználó nevében hajtanak végre funkciókat. Ezek az alkalmazások az OAuth 2.0 engedélyezési kódfolyamatával adhatnak hozzá bejelentkezést és engedélyezést a háttérszolgáltatásokhoz.
Ebben a folyamatban az alkalmazás kap egy engedélyezési kódot a Microsoft Identitásplatform, amikor a felhasználó bejelentkezik. Az engedélyezési kód azt jelzi, hogy az alkalmazás jogosult-e a háttérszolgáltatások meghívására a bejelentkezett felhasználó nevében. Az alkalmazás a háttérben kicserélheti az engedélyezési kódot egy OAuth 2.0 hozzáférési jogkivonatra és egy frissítési jogkivonatra. Az alkalmazás a hozzáférési jogkivonat használatával hitelesítheti a webes API-kat a HTTP-kérésekben, és a frissítési jogkivonat használatával új hozzáférési jogkivonatokat szerezhet be a régebbi hozzáférési jogkivonatok lejáratakor.
Jegyzet
Ha az alkalmazás az alapértelmezett rendszer-webnézetet használja, ellenőrizze a "Bejelentkezés megerősítése" funkcióval és hibakóddal AADSTS50199
kapcsolatos információkat a Microsoft Entra hitelesítési és engedélyezési hibakódjaiban.
Kiszolgáló, démonok és szkriptek
Azok az alkalmazások, amelyek hosszú ideig futó folyamatokkal rendelkeznek, vagy amelyek a felhasználóval való interakció nélkül működnek, biztonságos erőforrásokhoz, például webes API-khoz való hozzáférésre is szükségük van. Ezek az alkalmazások az OAuth 2.0 ügyfél hitelesítő adatainak folyamatával hitelesíthetik és lekérhetik a jogkivonatokat az alkalmazás identitásával, nem pedig a felhasználó delegált identitásával. Az alkalmazás személyazonosságát ügyfélkód vagy tanúsítvány használatával bizonyíthatja. További információ: .NET démonkonzol-alkalmazás Microsoft Identitásplatform használatával.
Ebben a folyamatban az alkalmazás közvetlenül a végponttal lép kapcsolatba a /token
hozzáférés megszerzéséhez:
Démonalkalmazás létrehozásához tekintse meg az ügyfél hitelesítő adatainak dokumentációját, vagy próbáljon ki egy .NET-mintaalkalmazást.
Lásd még:
Most, hogy már ismeri a Microsoft Identitásplatform által támogatott alkalmazástípusokat, többet tudhat meg az OAuth 2.0-ról és az OpenID Connectről, hogy megismerkedjen a különböző forgatókönyvek által használt protokollösszetevőkkel.