A Microsoft Identity platform alkalmazási típusaiApplication types for the Microsoft identity platform

A Microsoft Identity platform számos modern alkalmazás-architektúra hitelesítését támogatja, amelyek mindegyike az iparági szabványoknak megfelelő protokollok, az 2,0-es vagy az OpenID Connect OAuthalapul.The Microsoft identity platform supports authentication for a variety of modern app architectures, all of them based on industry-standard protocols OAuth 2.0 or OpenID Connect. Ez a cikk a Microsoft Identity platform használatával felépíthető alkalmazások típusait ismerteti, az Ön által választott nyelvtől és platformtól függetlenül.This article describes the types of apps that you can build by using Microsoft identity platform, regardless of your preferred language or platform. Az információ úgy van kialakítva, hogy segítsen megérteni a magas szintű forgatókönyveket, mielőtt elkezdi a kód használatát az alkalmazási forgatókönyvekben.The information is designed to help you understand high-level scenarios before you start working with the code in the application scenarios.

Az alapokThe basics

Regisztrálnia kell minden olyan alkalmazást, amely a Microsoft Identity platformot használja a Azure Portal Alkalmazásregisztrációk.You must register each app that uses the Microsoft identity platform in the Azure portal App registrations. Az alkalmazás regisztrációs folyamata összegyűjti és hozzárendeli ezeket az értékeket az alkalmazáshoz:The app registration process collects and assigns these values for your app:

  • Egy alkalmazás-(ügyfél-) azonosító , amely egyedileg azonosítja az alkalmazástAn Application (client) ID that uniquely identifies your app
  • Egy átirányítási URI , amely a válaszok visszairányítására használható az alkalmazásbaA Redirect URI that you can use to direct responses back to your app
  • Néhány más forgatókönyv-specifikus érték, például a támogatott fióktípusA few other scenario-specific values such as supported account types

Részletekért olvassa el az alkalmazások regisztrálásátismertető témakört.For details, learn how to register an app.

Az alkalmazás regisztrálása után az alkalmazás kommunikál a Microsoft Identity platformmal, ha kéréseket küld a végpontnak.After the app is registered, the app communicates with the Microsoft identity platform by sending requests to the endpoint. Nyílt forráskódú keretrendszereket és könyvtárakat biztosítunk, amelyek kezelik a kérelmek részleteit.We provide open-source frameworks and libraries that handle the details of these requests. Lehetősége van arra is, hogy saját maga is megvalósítsa a hitelesítési logikát, ha kéréseket hoz létre ezekhez a végpontokhoz:You also have the option to implement the authentication logic yourself by creating requests to these endpoints:

https://login.microsoftonline.com/common/oauth2/v2.0/authorize
https://login.microsoftonline.com/common/oauth2/v2.0/token

Egyoldalas alkalmazások (JavaScript)Single-page apps (JavaScript)

Számos modern alkalmazás rendelkezik egy egyoldalas alkalmazás-előtérrel, amely elsősorban a JavaScriptben íródott, gyakran olyan keretrendszerrel, mint a szögletes, a reakciós vagy a Vue.Many modern apps have a single-page app front end written primarily in JavaScript, often with a framework like Angular, React, or Vue. A Microsoft Identity platform támogatja ezeket az alkalmazásokat az OpenID Connect protokoll használatával történő hitelesítéshez, illetve az OAuth 2,0 implicit engedélyezési folyamat vagy a legújabb OAUTH 2,0 engedélyezési kód + PKCE folyamat engedélyezéséhez (lásd alább).The Microsoft identity platform supports these apps by using the OpenID Connect protocol for authentication and either OAuth 2.0 implicit grant flow or the more recent OAuth 2.0 authorization code + PKCE flow for authorization (see below).

Az alábbi folyamatábra a OAuth 2,0 engedélyezési kód engedélyezését mutatja be (a PKCE kihagyott részletekkel), ahol az alkalmazás kódot kap a Microsoft Identity platform authorize végponttól, és visszaváltja a tokenekhez, és frissíti a tokeneket a helyek közötti webes kérelmek használatával.The flow diagram below demonstrates the OAuth 2.0 authorization code grant (with details around PKCE omitted), where the app receives a code from the Microsoft identity platform authorize endpoint, and redeems it for tokens and refresh tokens using cross-site web requests. A frissítési jogkivonat 24 óránként lejár, és az alkalmazásnak egy másik kódot kell igényelnie.The refresh token expires every 24 hours, and the app must request another code. A hozzáférési tokenen kívül a id_token bejelentkezett felhasználót az ügyfélalkalmazás számára általában ugyanarra a folyamatra és/vagy egy külön OpenID Connect-kérelemre is kéri (itt nem látható).In addition to the access token, an id_token that represents the signed-in user to the client application is typically also requested through the same flow and/or a separate OpenID Connect request (not shown here).

A OAuth 2 engedélyezési kód egy egyoldalas alkalmazás és a biztonsági jogkivonat szolgáltatás végpontja közötti folyamatát ábrázoló diagram.

Ha szeretné megtekinteni ezt a forgatókönyvet működés közben, tekintse meg az oktatóanyagot: Jelentkezzen be a felhasználókba, és hívja meg a Microsoft Graph API-t egy JavaScript Spa-beli hitelesítési kód használatával.To see this scenario in action, check out the Tutorial: Sign in users and call the Microsoft Graph API from a JavaScript SPA using auth code flow.

Engedélyezési kód folyamatábrája és implicit folyamataAuthorization code flow vs. implicit flow

A OAuth 2,0-es verziójának többsége esetében az implicit folyamat az ajánlott módszer az egylapos alkalmazások létrehozására.For most of the history of OAuth 2.0, the implicit flow was the recommended way to build single-page apps. A harmadik féltől származó cookie-k eltávolításával, valamint az implicit folyamat körüli biztonsági vonatkozásokkal járó nagyobb odafigyeléssel a rendszer áthelyezte az egyoldalas alkalmazások engedélyezési kódjának folyamatát.With the removal of third-party cookies and greater attention paid to security concerns around the implicit flow, we've moved to the authorization code flow for single-page apps.

Az alkalmazás Safariban és más adatvédelmi böngészőkben való kompatibilitásának biztosításához már nem javasoljuk az implicit folyamat használatát, ehelyett javasoljuk az engedélyezési kód áramlását.To ensure compatibility of your app in Safari and other privacy-conscious browsers, we no longer recommend use of the implicit flow and instead recommend the authorization code flow.

WebalkalmazásokWeb apps

Webalkalmazásokhoz (.NET, PHP, Java, Ruby, Python, node) a felhasználó egy böngészőben keresztül fér hozzá, az OpenID Connect felhasználói bejelentkezéshez használható.For web apps (.NET, PHP, Java, Ruby, Python, Node) that the user accesses through a browser, you can use OpenID Connect for user sign-in. Az OpenID Connect szolgáltatásban a webalkalmazás megkapja az azonosító tokent.In OpenID Connect, the web app receives an ID token. Az azonosító jogkivonat egy biztonsági jogkivonat, amely ellenőrzi a felhasználó identitását, és a jogcímek formájában szolgáltat információkat a felhasználóról:An ID token is a security token that verifies the user's identity and provides information about the user in the form of claims:

// Partial raw ID token
eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6ImtyaU1QZG1Cd...

// Partial content of a decoded ID token
{
    "name": "John Smith",
    "email": "john.smith@gmail.com",
    "oid": "d9674823-dffc-4e3f-a6eb-62fe4bd48a58"
    ...
}

A Microsoft Identity platformon használt különböző típusú tokenek további részletei a hozzáférési jogkivonat referenciájában és a id_token dokumentációjában találhatók.Further details of different types of tokens used in the Microsoft identity platform are available in the access token reference and id_token reference

A webkiszolgáló alkalmazásokban a bejelentkezési hitelesítési folyamat a következő magas szintű lépéseket hajtja végre:In web server apps, the sign-in authentication flow takes these high-level steps:

A webalkalmazás-hitelesítési folyamat megjelenítése

A felhasználó identitását úgy ellenőrizheti, hogy az azonosító tokent a Microsoft Identity platformtól kapott nyilvános aláírási kulccsal ellenőrzi.You can ensure the user's identity by validating the ID token with a public signing key that is received from the Microsoft identity platform. Be van állítva egy munkamenet-cookie, amely a felhasználó azonosítására szolgál a következő lapokra vonatkozó kérelmeknél.A session cookie is set, which can be used to identify the user on subsequent page requests.

Ha szeretné megtekinteni ezt a forgatókönyvet működés közben, próbálja ki a webalkalmazásban a felhasználók forgatókönyvébenmegjelenő kód mintáit.To see this scenario in action, try the code samples in the Web app that signs in users scenario.

Az egyszerű bejelentkezés mellett előfordulhat, hogy egy webkiszolgáló alkalmazásnak hozzá kell férnie egy másik webszolgáltatáshoz, például egy REST API.In addition to simple sign-in, a web server app might need to access another web service, such as a REST API. Ebben az esetben a webkiszolgáló alkalmazás egy kombinált OpenID Connect és OAuth 2,0 flow-t alkalmaz a OAuth 2,0 engedélyezési kód folyamatával.In this case, the web server app engages in a combined OpenID Connect and OAuth 2.0 flow, by using the OAuth 2.0 authorization code flow. További információ erről a forgatókönyvről: Ismerkedés a Web Apps szolgáltatással és a webes API-kkal.For more information about this scenario, read about getting started with web apps and Web APIs.

Webes API-kWeb APIs

A Microsoft Identity platform használatával biztonságossá teheti a webszolgáltatásokat, például az alkalmazás REST-alapú webes API-ját.You can use the Microsoft identity platform to secure web services, such as your app's RESTful web API. A webes API-kat számos platformon és nyelven lehet megvalósítani.Web APIs can be implemented in numerous platforms and languages. A Azure Functions HTTP-eseményindítók használatával is megvalósítható.They can also be implemented using HTTP Triggers in Azure Functions. Az azonosító tokenek és a munkamenet-cookie-k helyett a webes API egy OAuth 2,0 hozzáférési tokent használ az adatai védelméhez és a bejövő kérések hitelesítéséhez.Instead of ID tokens and session cookies, a web API uses an OAuth 2.0 access token to secure its data and to authenticate incoming requests. A webes API hívója hozzáfűz egy hozzáférési jogkivonatot egy HTTP-kérelem engedélyezési fejlécében, például a következőhöz:The caller of a web API appends an access token in the authorization header of an HTTP request, like this:

GET /api/items HTTP/1.1
Host: www.mywebapi.com
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6...
Accept: application/json
...

A webes API a hozzáférési jogkivonattal ellenőrzi az API-hívó identitását, és Kinyeri a hívó információit a hozzáférési jogkivonatban kódolt jogcímekről.The web API uses the access token to verify the API caller's identity and to extract information about the caller from claims that are encoded in the access token. A Microsoft Identity platformon használt különböző típusú tokenek további részletei a hozzáférési jogkivonat referenciájában és a id_token -referenciában érhetők el.Further details of different types of tokens used in the Microsoft identity platform are available in the access token reference and id_token reference.

A webes API-k lehetővé teszik a felhasználók számára, hogy a jogosultságok, más néven hatókörökmegadásával vagy letiltásával eldönthetik, hogy bizonyos funkciókat vagy adatokból választhatnak.A web API can give users the power to opt in or opt out of specific functionality or data by exposing permissions, also known as scopes. Ahhoz, hogy egy hívó alkalmazás egy hatókörhöz engedélyt szerezzen, a felhasználónak a folyamat során hozzá kell járulnia a hatókörhöz.For a calling app to acquire permission to a scope, the user must consent to the scope during a flow. A Microsoft Identity platform megkéri a felhasználótól az engedélyt, majd rögzíti az engedélyeket a webes API által fogadott összes hozzáférési jogkivonatban.The Microsoft identity platform asks the user for permission, and then records permissions in all access tokens that the web API receives. A webes API ellenőrzi az egyes hívásokhoz kapott hozzáférési jogkivonatokat, és végrehajtja az engedélyezési ellenőrzéseket.The web API validates the access tokens it receives on each call and performs authorization checks.

A webes API-k bármilyen típusú alkalmazásból fogadhatnak hozzáférési jogkivonatokat, beleértve a webkiszolgáló alkalmazásokat, az asztali és a mobil alkalmazásokat, az egyoldalas alkalmazásokat, a kiszolgálóoldali démonokat és akár más webes API-kat is.A web API can receive access tokens from all types of apps, including web server apps, desktop and mobile apps, single-page apps, server-side daemons, and even other web APIs. A webes API-k magas szintű folyamata így néz ki:The high-level flow for a web API looks like this:

A webes API-hitelesítési folyamat megjelenítése

Ha szeretné megtudni, hogyan védheti meg a webes API-t a OAuth2 hozzáférési jogkivonatok használatával, tekintse meg a webes API-kód mintáit a védett webes API-forgatókönyvben.To learn how to secure a web API by using OAuth2 access tokens, check out the web API code samples in the protected web API scenario.

Sok esetben a webes API-knak a Microsoft Identity platform által védett más, az alsóbb rétegbeli webes API-khoz is el kell végezniük a kimenő kérelmeket.In many cases, web APIs also need to make outbound requests to other downstream web APIs secured by Microsoft identity platform. Ehhez a webes API - k kihasználhatják a folyamaton kívüli folyamatot, amely lehetővé teszi a webes API számára a bejövő hozzáférési tokenek cseréjét egy másik hozzáférési jogkivonat számára, amelyet a kimenő kérésekben használni fog.To do so, web APIs can take advantage of the On-Behalf-Of flow, which allows the web API to exchange an incoming access token for another access token to be used in outbound requests. További információ: Microsoft Identity platform és OAuth 2,0 on-Half-of flow.For more info, see the Microsoft identity platform and OAuth 2.0 On-Behalf-Of flow.

Mobil- és natív alkalmazásokMobile and native apps

Az eszközre telepített alkalmazások, például a mobil-és asztali alkalmazások, gyakran olyan háttér-szolgáltatásokhoz vagy webes API-khoz szükségesek, amelyek az adatok tárolását és a függvények a felhasználók nevében való elvégzését végzik.Device-installed apps, such as mobile and desktop apps, often need to access back-end services or web APIs that store data and perform functions on behalf of a user. Ezek az alkalmazások a OAuth 2,0 engedélyezési kód folyamatávaladhatnak hozzá bejelentkezést és engedélyezést a háttér-szolgáltatásokhoz.These apps can add sign-in and authorization to back-end services by using the OAuth 2.0 authorization code flow.

Ebben a folyamatban az alkalmazás megkapja a Microsoft Identity platform engedélyezési kódját, amikor a felhasználó bejelentkezik.In this flow, the app receives an authorization code from the Microsoft identity platform when the user signs in. Az engedélyezési kód az alkalmazásnak a bejelentkezett felhasználó nevében történő meghívására vonatkozó engedélyét jelöli.The authorization code represents the app's permission to call back-end services on behalf of the user who is signed in. Az alkalmazás a háttérben egy OAuth 2,0 hozzáférési jogkivonat és egy frissítési jogkivonat számára is kicserélheti az engedélyezési kódot.The app can exchange the authorization code in the background for an OAuth 2.0 access token and a refresh token. Az alkalmazás a hozzáférési token használatával hitelesíti a webes API-kat a HTTP-kérelmekben, és a frissítési token használatával új hozzáférési jogkivonatokat kérhet le, ha a régebbi hozzáférési tokenek lejárnak.The app can use the access token to authenticate to web APIs in HTTP requests, and use the refresh token to get new access tokens when older access tokens expire.

Megjeleníti a natív alkalmazás hitelesítési folyamatát.

Megjegyzés

Ha az alkalmazás az alapértelmezett webnézetet használja, tekintse meg a "bejelentkezési adatok megerősítése" funkció és a hibakód AADSTS50199 az Azure ad-hitelesítési és-engedélyezési hibakódokbancímű témakört.If the application uses the default system webview, check the information about "Confirm My Sign-In" functionality and error code AADSTS50199 in Azure AD authentication and authorization error codes.

Démonok és kiszolgálóoldali alkalmazásokDaemons and server-side apps

A hosszan futó folyamatokkal rendelkező vagy a felhasználóval való interakció nélkül működő alkalmazások esetében is szükség van a biztonságos erőforrásokhoz, például a webes API-khoz való hozzáférésre.Apps that have long-running processes or that operate without interaction with a user also need a way to access secured resources, such as web APIs. Ezek az alkalmazások a felhasználó delegált identitása helyett az alkalmazás identitását használva hitelesíthetők és lekérhetik a jogkivonatokat a OAuth 2,0 ügyfél-hitelesítő adatokkal.These apps can authenticate and get tokens by using the app's identity, rather than a user's delegated identity, with the OAuth 2.0 client credentials flow. Az alkalmazás identitását az ügyfél titkos kódjával vagy tanúsítványával igazolhatja.You can prove the app's identity using a client secret or certificate. További információ: .net Core Daemon Console Application a Microsoft Identity platform használatával.For more info, see .NET Core daemon console application using Microsoft identity platform.

Ebben a folyamatban az alkalmazás közvetlenül a /token végpontot használja a hozzáférés eléréséhez:In this flow, the app interacts directly with the /token endpoint to obtain access:

A démon-alkalmazás hitelesítési folyamatát mutatja

Daemon-alkalmazás létrehozásához tekintse meg az ügyfél hitelesítő adatait tartalmazó dokumentációt, vagy próbálkozzon egy .net-minta alkalmazással.To build a daemon app, see the client credentials documentation, or try a .NET sample app.

Következő lépésekNext steps

Most, hogy már ismeri a Microsoft Identity platform által támogatott típusú alkalmazásokat, ismerkedjen meg a OAuth 2,0 és az OpenID Connecttel , hogy megértse a különböző forgatókönyvekben használt protokoll-összetevőket.Now that you're familiar with the types of applications supported by the Microsoft identity platform, learn more about OAuth 2.0 and OpenID Connect to gain an understanding of the protocol components used by the different scenarios.