Hitelesítési folyamatok és alkalmazásforgatókönyvek
A Microsoft Identitásplatform különböző modern alkalmazásarchitektúrák hitelesítését támogatja. Az összes architektúra az OAuth 2.0 és az OpenID Connect iparági szabvány szerinti protokollokon alapul. A Microsoft Identitásplatform hitelesítési kódtáraival az alkalmazások hitelesítik az identitásokat, és jogkivonatokat szereznek be a védett API-k eléréséhez.
Ez a cikk a hitelesítési folyamatokat és a használt alkalmazásforgatókönyveket ismerteti.
Alkalmazáskategóriák
A jogkivonatok többféle alkalmazásból is beszerezhetők, például:
- Webalkalmazások
- Mobilalkalmazások
- Asztali alkalmazások
- Webes API-k
A jogkivonatokat olyan eszközökön futó alkalmazások is beszerezhetik, amelyek nem rendelkeznek böngészővel, vagy amelyek az Eszközök internetes hálózatán (IoT) futnak.
Az alábbi szakaszok az alkalmazások kategóriáit ismertetik.
Védett erőforrások és ügyfélalkalmazások
A hitelesítési forgatókönyvek két tevékenységet foglalnak magukban:
- Biztonsági jogkivonatok beszerzése védett webes API-hoz: Javasoljuk, hogy használja a Microsoft által fejlesztett és támogatott Microsoft Authentication Library (MSAL) eszközt.
- Webes API vagy webalkalmazás védelme: Az erőforrások védelmének egyik kihívása a biztonsági jogkivonat érvényesítése. Egyes platformokon a Microsoft köztes szoftvertárakat kínál.
Felhasználókkal vagy felhasználók nélkül
A legtöbb hitelesítési forgatókönyv jogkivonatokat szerez be a bejelentkezett felhasználók nevében.
Vannak azonban démonalkalmazások is. Ezekben az esetekben az alkalmazások jogkivonatokat szereznek be saját maguk nevében, felhasználó nélkül.
Egyoldalas, nyilvános ügyfél- és bizalmas ügyfélalkalmazások
A biztonsági jogkivonatok több alkalmazástípussal is beszerezhetők. Ezeket az alkalmazásokat általában a következő három kategóriába sorolják. Mindegyik különböző kódtárakkal és objektumokkal használható.
Egyoldalas alkalmazások: Más néven SPA-k, ezek olyan webalkalmazások, amelyekben a jogkivonatokat egy böngészőben futó JavaScript- vagy TypeScript-alkalmazás szerzi be. Számos modern alkalmazás rendelkezik egy egyoldalas alkalmazással az előtéren, amelyet elsősorban JavaScriptben írnak. Az alkalmazás gyakran használ keretrendszert, például Angular, React vagy Vue. MSAL.js az egyetlen microsoftos hitelesítési kódtár, amely támogatja az egyoldalas alkalmazásokat.
Nyilvános ügyfélalkalmazások: Az ebben a kategóriában lévő alkalmazások, például a következő típusok, mindig bejelentkeznek a felhasználókba:
- Asztali alkalmazások, amelyek webes API-kat hívnak meg a bejelentkezett felhasználók nevében
- Mobilalkalmazások
- Olyan eszközökön futó alkalmazások, amelyek nem rendelkeznek böngészővel, például az IoT-n futó alkalmazások
Bizalmas ügyfélalkalmazások: Az ebbe a kategóriába tartozó alkalmazások a következők:
- Webes API-t hívó webalkalmazások
- Webes API-kat hívó webes API-k
- Démonalkalmazások, még akkor is, ha konzolszolgáltatásként, például Linux-démonként vagy Windows-szolgáltatásként implementálva
Bejelentkezési közönség
A rendelkezésre álló hitelesítési folyamatok a bejelentkezési közönségtől függően eltérőek. Egyes folyamatok csak munkahelyi vagy iskolai fiókokhoz érhetők el. Mások munkahelyi vagy iskolai fiókokhoz és személyes Microsoft-fiókokhoz is elérhetők.
További információ: Támogatott fióktípusok.
Alkalmazáshasználati helyzetek
A Microsoft Identitásplatform az alábbi alkalmazásarchitektúrák hitelesítését támogatja:
- Egyoldalas alkalmazások
- Webalkalmazások
- Webes API-k
- Mobilalkalmazások
- Natív alkalmazások
- Démonalkalmazások
- Kiszolgálóoldali alkalmazások
Az alkalmazások a különböző hitelesítési folyamatokkal jelentkeznek be a felhasználókba, és jogkivonatokat kapnak a védett API-k meghívásához.
Egyoldalas alkalmazás
Számos modern webalkalmazás ügyféloldali egyoldalas alkalmazásként készült. Ezek az alkalmazások JavaScriptet vagy olyan keretrendszert használnak, mint a Angular, a Vue és a React. Ezek az alkalmazások webböngészőben futnak.
Az egyoldalas alkalmazások a hitelesítési jellemzők tekintetében eltérnek a hagyományos kiszolgálóoldali webalkalmazásoktól. Az Microsoft Identitásplatform használatával az egyoldalas alkalmazások bejelentkezhetnek a felhasználókba, és jogkivonatokat szerezhetnek be a háttérszolgáltatásokhoz vagy webes API-khoz való hozzáféréshez. A Microsoft Identitásplatform két támogatási típust kínál a JavaScript-alkalmazásokhoz:
MSAL.js (2.x) | MSAL.js (1.x) |
---|---|
Felhasználót bejelentkező webalkalmazás
A felhasználót bejelentkező webalkalmazás védelmének elősegítése:
Ha a .NET-ben fejleszt, ASP.NET vagy ASP.NET Core használ a ASP.NET OpenID Connect köztes szoftverrel. Az erőforrások védelme magában foglalja a biztonsági jogkivonat érvényesítését, amelyet a .NET IdentityModel bővítményei végeznek , és nem az MSAL-kódtárak.
Ha Node.js fejleszt, az MSAL-csomópontot használja.
További információ: A felhasználókat bejelentkező webalkalmazás.
Webalkalmazás, amely bejelentkezik egy felhasználóba, és meghív egy webes API-t a felhasználó nevében
Ha egy webalkalmazásból egy felhasználó nevében szeretne meghívni egy webes API-t, használja az engedélyezési kód folyamatát, és tárolja a megszerzett jogkivonatokat a jogkivonat-gyorsítótárban. Szükség esetén az MSAL frissíti a jogkivonatokat, és a vezérlő csendesen jogkivonatokat szerez be a gyorsítótárból.
További információ: Webalkalmazás, amely webes API-kat hív meg.
Asztali alkalmazás, amely meghív egy webes API-t egy bejelentkezett felhasználó nevében
Ahhoz, hogy egy asztali alkalmazás meghívjon egy olyan webes API-t, amely bejelentkezik a felhasználókba, használja az MSAL interaktív jogkivonat-beszerzési módszereit. Ezekkel az interaktív módszerekkel szabályozhatja a bejelentkezési felhasználói felület használatát. Az MSAL egy webböngészőt használ ehhez az interakcióhoz.
Egy másik lehetőség a Windows által üzemeltetett alkalmazásokra a Windows-tartományhoz vagy az Azure Active Directoryhoz (Azure AD) csatlakoztatott számítógépeken. Ezek az alkalmazások csendesen beszerezhetnek egy jogkivonatot integrált Windows-hitelesítéssel.
A böngésző nélküli eszközön futó alkalmazások továbbra is meghívhatnak egy API-t a felhasználó nevében. A hitelesítéshez a felhasználónak be kell jelentkeznie egy másik, webböngészővel rendelkező eszközön. Ehhez a forgatókönyvhez az eszköz kódfolyamatát kell használnia.
Bár nem javasoljuk, hogy használja, a felhasználónév/jelszó folyamat elérhető a nyilvános ügyfélalkalmazásokban. Ez a folyamat bizonyos forgatókönyvekben, például a DevOpsban is szükség van erre a folyamatra.
A felhasználónév/jelszó folyamat használata korlátozza az alkalmazásokat. Az alkalmazások például nem jelentkezhetnek be olyan felhasználóba, akinek többtényezős hitelesítést vagy feltételes hozzáférési eszközt kell használnia Azure AD. Az alkalmazások számára az egyszeri bejelentkezés sem előnyös. A felhasználónév/jelszó folyamattal történő hitelesítés a modern hitelesítés alapelveivel ellentétes, és csak örökölt okokból érhető el.
Asztali alkalmazásokban, ha azt szeretné, hogy a jogkivonat-gyorsítótár megmaradjon, testre szabhatja a jogkivonat-gyorsítótár szerializálását. A kettős jogkivonat-gyorsítótár szerializálásának implementálásával visszamenőlegesen kompatibilis és előre kompatibilis jogkivonat-gyorsítótárakat használhat. Ezek a jogkivonatok támogatják a hitelesítési kódtárak korábbi generációit. Bizonyos kódtárak közé tartozik Azure AD Hitelesítési kódtár a .NET-hez (ADAL.NET) 3- és 4-es verzió.
További információ: Webes API-kat meghívó asztali alkalmazás.
Mobilalkalmazás, amely egy webes API-t hív meg egy interaktív felhasználó nevében
Az asztali alkalmazásokhoz hasonlóan egy mobilalkalmazás meghívja az MSAL interaktív jogkivonat-beszerzési módszereit egy webes API meghívásához szükséges jogkivonat beszerzéséhez.
Az MSAL iOS és az MSAL Android alapértelmezés szerint a rendszer webböngészőt használja. Azonban a beágyazott webes nézet használatára is utasíthatja őket. A mobilplatformtól függő sajátosságok: Univerzális Windows-platform (UWP), iOS vagy Android.
Egyes forgatókönyvek, például az eszközazonosítóhoz vagy az eszközregisztrációhoz kapcsolódó feltételes hozzáféréssel kapcsolatos forgatókönyvek esetében közvetítőt kell telepíteni az eszközre. A közvetítők közé tartoznak például a Microsoft Céges portál Androidon és a Microsoft Authenticator androidos és iOS rendszeren. Az MSAL mostantól együttműködik a közvetítőkkel. A közvetítőkkel kapcsolatos további információkért lásd: Közvetítők használata Androidon és iOS-en.
További információ: Mobilalkalmazás, amely webes API-kat hív meg.
Megjegyzés
MSAL.iOS- és MSAL-t használó mobilalkalmazás. Az Android vagy a Xamarin MSAL.NET alkalmazásvédelmi szabályzatokat alkalmazhat rá. A szabályzatok például megakadályozhatják, hogy egy felhasználó védett szöveget másoljon. A mobilalkalmazást a Intune kezeli, és a Intune felügyelt alkalmazásként ismeri fel. További információ: Microsoft Intune App SDK áttekintése.
A Intune App SDK elkülönül az MSAL-kódtáraktól, és önállóan kommunikál a Azure AD.
Védett webes API
A Microsoft Identitásplatform végpont használatával biztonságossá teheti a webszolgáltatásokat, például az alkalmazás RESTful API-ját. A védett webes API-k meghívása hozzáférési jogkivonaton keresztül történik. A jogkivonat segít az API adatainak védelmében és a bejövő kérések hitelesítésében. 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.
Ha meg szeretné védeni a ASP.NET vagy ASP.NET Core webes API-t, ellenőrizze a hozzáférési jogkivonatot. Az ellenőrzéshez a JWT köztes szoftver ASP.NET kell használnia. Az ellenőrzést a .NET-kódtár IdentityModel bővítményei végzik , nem pedig a MSAL.NET.
További információ: Védett webes API.
Web API, amely egy felhasználó nevében hív meg egy másik webes API-t
Ahhoz, hogy a védett webes API meghívjon egy másik webes API-t egy felhasználó nevében, az alkalmazásnak jogkivonatot kell beszereznie az alsóbb rétegbeli webes API-hoz. Az ilyen hívásokat szolgáltatásközi hívásoknak is nevezik. A más webes API-kat hívó webes API-knak egyéni gyorsítótár-szerializálást kell biztosítaniuk.
További információt a webes API-kat meghívó webes API-k című témakörben talál.
Démonalkalmazás, amely meghív egy webes API-t a démon nevében
A hosszú ideig futó folyamatokkal rendelkező vagy felhasználói beavatkozás nélkül működő alkalmazásoknak is szükségük van a biztonságos webes API-k elérésére. Az ilyen alkalmazások az alkalmazás identitásával hitelesíthetik és lekérhetik a jogkivonatokat. Az alkalmazás ügyfélkód vagy tanúsítvány használatával bizonyítja az identitását.
Olyan démonalkalmazásokat írhat, amelyek jogkivonatot szereznek be a hívó alkalmazáshoz az ügyfél hitelesítő adatainak beszerzésére szolgáló módszerekkel az MSAL-ben. Ezekhez a metódusokhoz egy ügyfélkódra van szükség, amelyet hozzáad az alkalmazásregisztrációhoz a Azure AD. Az alkalmazás ezután megosztja a titkos kódot az úgynevezett démonnal. Ilyen titkos kódok például az alkalmazásjelszavak, a tanúsítványérvényesítés és az ügyfél-érvényesítés.
További információt a webes API-kat meghívó Démonalkalmazás című témakörben talál.
Forgatókönyvek és támogatott hitelesítési folyamatok
A hitelesítési folyamatokkal implementálhatja a jogkivonatokat kérő alkalmazásforgatókönyveket. Nincs egy-az-egyhez leképezés az alkalmazásforgatókönyvek és a hitelesítési folyamatok között.
A jogkivonatok beszerzésével járó forgatókönyvek az OAuth 2.0 hitelesítési folyamatait is leképezik. További információ: OAuth 2.0 és OpenID Connect protokollok a Microsoft Identitásplatform.
Eset | Részletes forgatókönyv– útmutató | OAuth 2.0 folyamat és engedélyezés | Célközönség |
---|---|---|---|
Egyoldalas alkalmazás | Engedélyezési kód a PKCE-vel | Munkahelyi vagy iskolai fiókok, személyes fiókok és Azure Active Directory B2C (Azure AD B2C) | |
Egyoldalas alkalmazás | Implicit | Munkahelyi vagy iskolai fiókok, személyes fiókok és Azure Active Directory B2C (Azure AD B2C) | |
Felhasználót bejelentkeztető webalkalmazás | Engedélyezési kód | Munkahelyi vagy iskolai fiókok, személyes fiókok és Azure AD B2C | |
Webes API-kat hívó webalkalmazás | Engedélyezési kód | Munkahelyi vagy iskolai fiókok, személyes fiókok és Azure AD B2C | |
Webes API-kat hívó asztali alkalmazás | Interaktív az engedélyezési kód és a PKCE használatával | Munkahelyi vagy iskolai fiókok, személyes fiókok és Azure AD B2C | |
Integrált Windows-hitelesítés | Munkahelyi vagy iskolai fiókok | ||
Erőforrás-tulajdonos jelszava | Munkahelyi vagy iskolai fiókok és Azure AD B2C | ||
Eszközkód | Munkahelyi vagy iskolai fiókok, személyes fiókok, de nem Azure AD B2C | ||
Webes API-kat hívó mobilalkalmazás | Interaktív az engedélyezési kód és a PKCE használatával | Munkahelyi vagy iskolai fiókok, személyes fiókok és Azure AD B2C | |
Erőforrás-tulajdonos jelszava | Munkahelyi vagy iskolai fiókok és Azure AD B2C | ||
Démonalkalmazás, amely webes API-kat hív meg | Ügyfél-hitelesítő adatok | Csak olyan alkalmazásengedélyek, amelyek nem rendelkeznek felhasználóval, és csak Azure AD szervezetekben használatosak | |
Webes API-kat hívó webes API | A nevében | Munkahelyi vagy iskolai fiókok és személyes fiókok |
Forgatókönyvek és támogatott platformok és nyelvek
A Microsoft Hitelesítési kódtárak több platformot is támogatnak:
- .NET Core
- .NET-keretrendszer
- Java
- JavaScript
- macOS
- Natív Android
- Natív iOS
- Node.js
- Python
- Windows 10/UWP
- Xamarin.iOS
- Xamarin.Android
Különböző nyelveket is használhat az alkalmazások létrehozásához.
Az alábbi táblázat Windows oszlopában a .NET Core minden említése esetén .NET-keretrendszer is lehetséges. Az utóbbi nincs megadva a táblázat zsúfoltságának elkerülése érdekében.
Eset | Windows | Linux | Mac | iOS | Android |
---|---|---|---|---|---|
Egyoldalas alkalmazás |
![]() MSAL.js |
![]() MSAL.js |
![]() MSAL.js |
![]() |
![]() MSAL.js |
Egyoldalas alkalmazás |
![]() MSAL.js |
![]() MSAL.js |
![]() MSAL.js |
![]() |
![]() MSAL.js |
Felhasználót bejelentkeztető webalkalmazás |
![]() ASP.NET Core ![]() MSAL-csomópont |
![]() ASP.NET Core ![]() MSAL-csomópont |
![]() ASP.NET Core ![]() MSAL-csomópont |
||
Webes API-kat hívó webalkalmazás |
![]() ASP.NET Core + MSAL.NET ![]() MSAL Java ![]() Flask + MSAL Python ![]() MSAL-csomópont |
![]() ASP.NET Core + MSAL.NET ![]() MSAL Java ![]() Flask + MSAL Python ![]() MSAL-csomópont |
![]() ASP.NET Core + MSAL.NET ![]() MSAL Java ![]() Flask + MSAL Python ![]() MSAL-csomópont |
||
Webes API-kat hívó asztali alkalmazás |
![]() ![]() MSAL Java ![]() MSAL Python ![]() MSAL-csomópont |
![]() ![]() MSAL Java ![]() MSAL Python ![]() MSAL-csomópont |
![]() ![]() MSAL Java ![]() MSAL Python ![]() MSAL-csomópont ![]() |
||
Webes API-kat hívó mobilalkalmazás |
![]() ![]() |
![]() |
![]() |
||
Démonalkalmazások |
![]() ![]() MSAL Java ![]() MSAL Python ![]() MSAL-csomópont |
![]() ![]() MSAL Java ![]() MSAL Python ![]() MSAL-csomópont |
![]() ![]() MSAL Java ![]() MSAL Python ![]() MSAL-csomópont |
||
Webes API-kat hívó webes API |
![]() ASP.NET Core + MSAL.NET ![]() MSAL Java ![]() MSAL Python ![]() MSAL-csomópont |
![]() ASP.NET Core + MSAL.NET ![]() MSAL Java ![]() MSAL Python ![]() MSAL-csomópont |
![]() ASP.NET Core + MSAL.NET ![]() MSAL Java ![]() MSAL Python ![]() MSAL-csomópont |
További információ: Microsoft Identitásplatform hitelesítési kódtárak.
Következő lépések
A hitelesítésről további információt a következő témakörben talál: