Alkalmazástípusok a Microsoft Identitásplatformhoz

A Microsoft Identitásplatform támogatja a különböző modern alkalmazásarchitektúrák hitelesítését, amelyek mindegyike az OAuth 2.0 vagy az OpenID Csatlakozás 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 támogatja ezeket az alkalmazásokat az OpenID Csatlakozás protokoll használatával a hitelesítéshez, valamint az OAuth 2.0 által meghatározott kétféle engedélyezési támogatás egyikével. A támogatott támogatási típusok az OAuth 2.0 implicit engedélyezési folyamat vagy a legutóbbi OAuth 2.0 engedélyezési kód + PKCE-folyamat (lásd alább).

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-Csatlakozás kéréssel is kérik (itt nem látható).

Egyoldalas alkalmazás és a biztonsági jogkivonat szolgáltatásvégpontja közötti OAuth 2.0 engedélyezési kódfolyamatot bemutató ábra.

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.

Engedélyezési kódfolyamat és implicit folyamat

Az OAuth 2.0 engedélyezési kódfolyama mostantól ajánlott módszer az SLA-k létrehozására az alkalmazás kompatibilitásának biztosítása érdekében a Safariban és más, adatvédelemre tudatos böngészőkben. A harmadik féltől származó cookie-k eltávolítását és nagyobb figyelmet követően az implicit folyamat folyamatos használata nem ajánlott.

Webalkalmazások

A böngészőn keresztül elérhető webalkalmazások (.NET, PHP, Java, Ruby, Python, Node) esetében az OpenID Csatlakozás használhatja a felhasználói bejelentkezéshez. Az OpenID Csatlakozás 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": "ab12cd34-effe-5678-9012-abcdef012345"
    ...
}

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 webalkalmazás-hitelesítési folyamat megjelenítése

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 egyesített OpenID-Csatlakozás é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 hitelesítési folyamatának megjelenítése

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.

A natív alkalmazás-hitelesítési folyamat megjelenítése

Feljegyzés

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:

A démonalkalmazás hitelesítési folyamatának megjelenítése

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, az OAuth 2.0 és az OpenID Csatlakozás megismerheti a különböző forgatókönyvek által használt protokollösszetevőket.