Typy aplikací platformy Microsoft Identity Platform a toky ověřování

Platforma Microsoft Identity Platform podporuje ověřování pro různé druhy moderních aplikačních architektur. Všechny architektury jsou založené na standardních protokolech OAuth 2.0 a OpenID Připojení. Pomocí knihoven ověřování pro platformu Microsoft Identity Platform aplikace ověřují identity a získávají tokeny pro přístup k chráněným rozhraním API.

Tento článek popisuje toky ověřování a scénáře aplikací, ve kterých se používají.

Kategorie aplikací

Tokeny zabezpečení je možné získat z několika typů aplikací, mezi které patří:

  • Webové aplikace
  • Mobilní aplikace
  • Desktopové aplikace
  • Webová rozhraní API

Tokeny je možné získat také aplikacemi běžícími na zařízeních, která nemají prohlížeč nebo běží na internetu věcí (IoT).

Následující části popisují kategorie aplikací.

Chráněné prostředky vs. klientské aplikace

Scénáře ověřování zahrnují dvě aktivity:

  • Získání tokenů zabezpečení pro chráněné webové rozhraní API: Doporučujeme používat knihovnu MSAL (Microsoft Authentication Library) vyvinutou a podporovanou společností Microsoft.
  • Ochrana webového rozhraní API nebo webové aplikace: Jedním z úkolů ochrany těchto prostředků je ověření tokenu zabezpečení. Na některých platformách microsoft nabízí middlewarové knihovny.

S uživateli nebo bez uživatelů

Většina scénářů ověřování získává tokeny jménem přihlášených uživatelů.

Scénáře s uživateli

Existují ale také aplikace démona. V těchto scénářích aplikace získávají tokeny jménem sebe sama bez uživatele.

Scénáře s aplikacemi démona

Jednostrákovou, veřejnou klientskou a důvěrnou klientskou aplikaci

Tokeny zabezpečení je možné získat několika typy aplikací. Tyto aplikace jsou obvykle rozdělené do následujících tří kategorií. Každý se používá s různými knihovnami a objekty.

  • Jednostrákové aplikace: Označované také jako spA, jedná se o webové aplikace, ve kterých tokeny získává JavaScript nebo TypeScript spuštěná v prohlížeči. Mnoho moderních aplikací má jednostráňovou aplikaci na front-endu, která je primárně napsaná v JavaScriptu. Aplikace často používá architekturu, jako je Angular, React nebo Vue. MSAL.js je jediná knihovna Microsoft Authentication Library, která podporuje jednostránkové aplikace.

  • Veřejné klientské aplikace: Aplikace v této kategorii, jako jsou následující typy, vždy přihlašují uživatele:

    • Desktopové aplikace, které volají webová rozhraní API jménem přihlášených uživatelů
    • Mobilní aplikace
    • Aplikace spuštěné na zařízeních, která nemají prohlížeč, jako jsou aplikace spuštěné v IoT
  • Důvěrné klientské aplikace: Mezi aplikace v této kategorii patří:

    • Webové aplikace, které volají webové rozhraní API
    • Webová rozhraní API, která volají webové rozhraní API
    • Aplikace démona, i když jsou implementované jako konzolová služba, jako je démon Linuxu nebo služba pro Windows

Cílová skupina přihlášení

Dostupné toky ověřování se liší v závislosti na cílové skupině přihlašování. Některé toky jsou dostupné jenom pro pracovní nebo školní účty. Ostatní jsou k dispozici pro pracovní i školní účty i pro osobní účty Microsoft.

Další informace najdete v tématu Podporované typy účtů.

Typy aplikací

Platforma Microsoft Identity Platform podporuje ověřování pro tyto architektury aplikací:

  • Jednostránkové aplikace
  • Webové aplikace
  • Webová rozhraní API
  • Mobilní aplikace
  • Nativní aplikace
  • Aplikace démonů
  • Serverové aplikace

Aplikace používají různé toky ověřování k přihlášení uživatelů a získání tokenů pro volání chráněných rozhraní API.

Jednostránková aplikace

Mnoho moderních webových aplikací je sestaveno jako jednostrákové aplikace na straně klienta. Tyto aplikace používají JavaScript nebo architekturu, jako je Angular, Vue a React. Tyto aplikace běží ve webovém prohlížeči.

Jednostrákové aplikace se liší od tradičních webových aplikací na straně serveru z hlediska charakteristik ověřování. Pomocí platformy Microsoft Identity Platform se můžou jednostránka přihlásit uživatele a získat tokeny pro přístup k back-endovým službám nebo webovým rozhraním API. Platforma Microsoft Identity Platform nabízí dva typy grantů pro javascriptové aplikace:

MSAL.js (2.x) MSAL.js (1.x)
Ověřování jednostrákovou aplikací Implicitní jednostráková aplikace

Webová aplikace, která se přihlásí k uživateli

Webová aplikace, která se přihlásí k uživateli

Pomoc s ochranou webové aplikace, která se přihlásí k uživateli:

  • Pokud vyvíjíte v .NET, použijete ASP.NET nebo ASP.NET Core s Připojení middlewarem ASP.NET OpenID. Ochrana prostředku zahrnuje ověření tokenu zabezpečení, který provádí rozšíření IdentityModel pro .NET , a ne knihovny MSAL.

  • Pokud vyvíjíte v Node.js, použijete uzel MSAL.

Další informace najdete v tématu Webová aplikace, která přihlašuje uživatele.

Webová aplikace, která přihlašuje uživatele a volá webové rozhraní API jménem uživatele

Webová aplikace, která volá webová rozhraní API

Pokud chcete volat webové rozhraní API z webové aplikace jménem uživatele, použijte tok autorizačního kódu a uložte získané tokeny do mezipaměti tokenů. V případě potřeby msAL aktualizuje tokeny a kontroler bezobslužně získá tokeny z mezipaměti.

Další informace najdete v tématu Webová aplikace, která volá webová rozhraní API.

Desktopová aplikace, která volá webové rozhraní API jménem přihlášeného uživatele

Aby desktopová aplikace volala webové rozhraní API, které přihlašuje uživatele, použijte interaktivní metody získávání tokenů knihovny MSAL. Pomocí těchto interaktivních metod můžete řídit prostředí uživatelského rozhraní přihlašování. Knihovna MSAL používá pro tuto interakci webový prohlížeč.

Desktopová aplikace, která volá webové rozhraní API

Existuje další možnost pro aplikace hostované systémem Windows na počítačích připojených buď k doméně Windows, nebo službě Microsoft Entra ID. Tyto aplikace mohou bezobslužně získat token pomocí integrovaného ověřování systému Windows.

Aplikace spuštěné na zařízení bez prohlížeče můžou za uživatele stále volat rozhraní API. Aby se uživatel ověřil, musí se přihlásit na jiném zařízení s webovým prohlížečem. Tento scénář vyžaduje použití toku kódu zařízení.

Tok kódu zařízení

I když ho nedoporučujeme používat, je tok uživatelského jména a hesla dostupný ve veřejných klientských aplikacích. Tento tok je stále potřeba v některých scénářích, jako je DevOps.

Použití toku uživatelského jména a hesla omezuje vaše aplikace. Aplikace se například nemůžou přihlásit uživatele, který potřebuje použít vícefaktorové ověřování nebo nástroj podmíněného přístupu v Microsoft Entra ID. Vaše aplikace také nemají prospěch z jednotného přihlašování. Ověřování s tokem uživatelského jména a hesla se řídí zásadami moderního ověřování a poskytuje se pouze z důvodu starší verze.

Pokud chcete v desktopových aplikacích zachovat mezipaměť tokenů, můžete přizpůsobit serializaci mezipaměti tokenů. Implementací serializace mezipaměti s duálním tokenem můžete použít zpětně kompatibilní a dopředné mezipaměti tokenů.

Další informace najdete v tématu Desktopová aplikace, která volá webová rozhraní API.

Mobilní aplikace, která volá webové rozhraní API jménem interaktivního uživatele

Podobně jako desktopová aplikace volá mobilní aplikace interaktivní metody získávání tokenů msAL k získání tokenu pro volání webového rozhraní API.

Mobilní aplikace, která volá webové rozhraní API

MSAL iOS a MSAL Android ve výchozím nastavení používají systémový webový prohlížeč. Můžete je ale nasměrovat tak, aby místo toho používaly vložené webové zobrazení. Na mobilní platformě závisí určitá specifika: Univerzální platforma Windows (UPW), iOS nebo Android.

Některé scénáře, jako jsou ty, které zahrnují podmíněný přístup související s ID zařízení nebo registrací zařízení, vyžadují instalaci zprostředkovatele na zařízení. Příklady zprostředkovatelů jsou Microsoft Portál společnosti v Androidu a Microsoft Authenticatoru v Androidu a iOSu. Služba MSAL teď může komunikovat se zprostředkovateli. Další informace o zprostředkovatelích najdete v tématu Využití zprostředkovatelů v Androidu a iOSu.

Další informace najdete v tématu Mobilní aplikace, která volá webová rozhraní API.

Poznámka:

Mobilní aplikace, která používá MSAL.iOS, MSAL. Android nebo MSAL.NET v Xamarinu můžou mít použité zásady ochrany aplikací. Zásady můžou například bránit uživateli v kopírování chráněného textu. Mobilní aplikace je spravovaná službou Intune a intune ji rozpozná jako spravovanou aplikaci. Další informace najdete v přehledu sady Microsoft Intune App SDK.

Intune App SDK je oddělená od knihoven MSAL a interaguje s MICROSOFT Entra ID samostatně.

Chráněné webové rozhraní API

Koncový bod Microsoft Identity Platform můžete použít k zabezpečení webových služeb, jako je rozhraní RESTful API vaší aplikace. Chráněné webové rozhraní API se volá prostřednictvím přístupového tokenu. Token pomáhá zabezpečit data rozhraní API a ověřovat příchozí požadavky. Volající webového rozhraní API připojí přístupový token v autorizační hlavičce požadavku HTTP.

Pokud chcete chránit ASP.NET nebo ASP.NET core webové rozhraní API, ověřte přístupový token. Pro toto ověření použijete middleware ASP.NET JWT. Ověření provádí rozšíření IdentityModel pro knihovnu .NET , nikoli MSAL.NET.

Další informace najdete v tématu Chráněné webové rozhraní API.

Webové rozhraní API, které volá jiné webové rozhraní API jménem uživatele

Aby vaše chráněné webové rozhraní API za uživatele volala jiné webové rozhraní API, musí vaše aplikace získat token pro podřízené webové rozhraní API. Taková volání se někdy označují jako volání typu služba-služba . Webová rozhraní API, která volají jiná webová rozhraní API, musí poskytovat vlastní serializaci mezipaměti.

Webové rozhraní API volající jiné webové rozhraní API

Další informace najdete v tématu Webové rozhraní API, které volá webová rozhraní API.

Aplikace démona, která volá webové rozhraní API v názvu démona

Aplikace, které mají dlouhotrvající procesy nebo které pracují bez zásahu uživatele, potřebují také způsob přístupu k zabezpečeným webovým rozhraním API. Taková aplikace může ověřovat a získávat tokeny pomocí identity aplikace. Aplikace prokáže svou identitu pomocí tajného klíče klienta nebo certifikátu.

Takové aplikace démona, které získávají token pro volající aplikaci, můžete napsat pomocí metod získání přihlašovacích údajů klienta v knihovně MSAL. Tyto metody vyžadují tajný klíč klienta, který přidáte do registrace aplikace v Microsoft Entra ID. Aplikace pak sdílí tajný kód s názvem démon. Mezi příklady takových tajných kódů patří hesla aplikací, kontrolní výraz certifikátu a klientské kontrolní výrazy.

Aplikace démona volaná jinými aplikacemi a rozhraními API

Další informace naleznete v tématu Démon aplikace, která volá webová rozhraní API.

Scénáře a podporované toky ověřování

Toky ověřování se používají k implementaci scénářů aplikace, které požadují tokeny. Mezi scénáři aplikací a toky ověřování neexistuje mapování 1:1.

Scénáře, které zahrnují získání tokenů, se mapují také na toky ověřování OAuth 2.0. Další informace najdete v protokolech OAuth 2.0 a OpenID Připojení na platformě Microsoft Identity Platform.

Scénář Podrobný návod ke scénáři Tok OAuth 2.0 a udělení Cílová skupina
Jednostráková aplikace s ověřovacím kódem Jednostránková aplikace Autorizační kód s pkCE Pracovní nebo školní účty, osobní účty a Azure Active Directory B2C (Azure AD B2C)
Jednostráňová aplikace s implicitní Jednostránková aplikace Implicitní Pracovní nebo školní účty, osobní účty a Azure Active Directory B2C (Azure AD B2C)
Webová aplikace, která přihlašuje uživatele Webová aplikace, která přihlašuje uživatele Autorizační kód Pracovní nebo školní účty, osobní účty a Azure AD B2C
Webová aplikace, která volá webová rozhraní API Webová aplikace, která volá webová rozhraní API Autorizační kód Pracovní nebo školní účty, osobní účty a Azure AD B2C
Desktopová aplikace, které volá webová rozhraní API Desktopová aplikace, které volá webová rozhraní API Interaktivní pomocí autorizačního kódu s PKCE Pracovní nebo školní účty, osobní účty a Azure AD B2C
Integrované ověřování systému Windows Pracovní nebo školní účty
Heslo vlastníka prostředku Pracovní nebo školní účty a Azure AD B2C
Aplikace bez prohlížeče Kód zařízení Pracovní nebo školní účty, osobní účty, ale ne Azure AD B2C
Mobilní aplikace, která volá webová rozhraní API Mobilní aplikace, která volá webová rozhraní API Interaktivní pomocí autorizačního kódu s PKCE Pracovní nebo školní účty, osobní účty a Azure AD B2C
Heslo vlastníka prostředku Pracovní nebo školní účty a Azure AD B2C
Aplikace démona, která volá webová rozhraní API Aplikace démona, která volá webová rozhraní API Přihlašovací údaje klienta Oprávnění jen pro aplikace, která nemají žádného uživatele a používají se jenom v organizacích Microsoft Entra
Webové rozhraní API, které volá webová rozhraní API Webové rozhraní API, které volá webová rozhraní API On-behalf-of Pracovní nebo školní účty a osobní účty

Scénáře a podporované platformy a jazyky

Knihovny ověřování Microsoft podporují více platforem:

  • .NET
  • .NET Framework
  • Java
  • JavaScript
  • macOS
  • Nativní Android
  • Nativní iOS
  • Node.js
  • Python
  • Windows 10 nebo UPW
  • Xamarin.iOS
  • Xamarin.Android

K vytváření aplikací můžete použít také různé jazyky.

Ve sloupci Windows v následující tabulce je možné pokaždé, když je zmíněn .NET, rozhraní .NET Framework je také možné. Druhá možnost se vynechá, aby se zabránilo nepotřebné tabulce.

Scénář Windows Linux Mac iOS Android
Jednostránková aplikace
Ověřování jednostrákovou aplikací
MSAL.js
MSAL.js
MSAL.js
MSAL.js
MSAL.js
MSAL.js
MSAL.js MSAL.js MSAL.js
MSAL.js
Jednostránková aplikace
Implicitní jednostráňová aplikace
MSAL.js
MSAL.js
MSAL.js
MSAL.js
MSAL.js
MSAL.js
MSAL.js MSAL.js MSAL.js
MSAL.js
Webová aplikace, která přihlašuje uživatele
Webová aplikace, která přihlašuje uživatele
ASP.NET Core
ASP.NET Core Uzel MSAL
Uzel MSAL
ASP.NET Core
ASP.NET Core Uzel MSAL
Uzel MSAL
ASP.NET Core
ASP.NET Core Uzel MSAL
Uzel MSAL
Webová aplikace, která volá webová rozhraní API

Webová aplikace, která volá webová rozhraní API
ASP.NET Core
ASP.NET Core + MSAL.NET MSAL v Javě
MSAL v Javě
MSAL Python
Flask + MSAL Python Uzel MSAL
Uzel MSAL
ASP.NET Core
ASP.NET Core + MSAL.NET MSAL v Javě
MSAL v Javě
MSAL Python
Flask + MSAL Python Uzel MSAL
Uzel MSAL
ASP.NET Core
ASP.NET Core + MSAL.NET MSAL v Javě
MSAL v Javě
MSAL Python
Flask + MSAL Python Uzel MSAL
Uzel MSAL
Desktopová aplikace, které volá webová rozhraní API

Desktopová aplikace, které volá webová rozhraní APITok kódu zařízení
.NETMSAL.NET MSAL v Javě
MSAL v Javě
MSAL Python
MSAL Python Uzel MSAL
Uzel MSAL
.NETMSAL.NET MSAL v Javě
MSAL v Javě
MSAL Python
MSAL Python Uzel MSAL
Uzel MSAL
.NETMSAL.NET MSAL v Javě
MSAL v Javě
MSAL Python
MSAL Python
Uzel MSAL
Uzel MSAL
iOS / Objective C nebo swift MSAL.objc
Mobilní aplikace, která volá webová rozhraní API
Mobilní aplikace, která volá webová rozhraní API
UWP MSAL.NET Xamarin MSAL.NET iOS / Objective C nebo swift MSAL.objc Android MSAL. Android
Aplikace démon
Aplikace démona
.NETMSAL.NET MSAL v Javě
MSAL v Javě
MSAL Python
MSAL Python Uzel MSAL
Uzel MSAL
.NET MSAL.NET MSAL v Javě
MSAL v Javě
MSAL Python
MSAL Python Uzel MSAL
Uzel MSAL
.NETMSAL.NET MSAL v Javě
MSAL v Javě
MSAL Python
MSAL Python Uzel MSAL
Uzel MSAL
Webové rozhraní API, které volá webová rozhraní API

Webové rozhraní API, které volá webová rozhraní API
ASP.NET Core
ASP.NET Core + MSAL.NET MSAL v Javě
MSAL v Javě
MSAL Python
MSAL Python Uzel MSAL
Uzel MSAL
.NET
ASP.NET Core + MSAL.NET MSAL v Javě
MSAL v Javě
MSAL Python
MSAL Python Uzel MSAL
Uzel MSAL
.NET
ASP.NET Core + MSAL.NET MSAL v Javě
MSAL v Javě
MSAL Python
MSAL Python Uzel MSAL
Uzel MSAL

Další informace najdete v tématu Knihovny ověřování platformy Microsoft Identity Platform.

Další kroky

Další informace o ověřování najdete tady: