Typy aplikací pro Microsoft Identity Platform

Platforma Microsoft Identity Platform podporuje ověřování pro různé moderní architektury aplikací, všechny z nich založené na standardních protokolech OAuth 2.0 nebo OpenID Připojení. Tento článek popisuje typy aplikací, které můžete vytvářet pomocí platformy Microsoft Identity Platform bez ohledu na preferovaný jazyk nebo platformu. Informace jsou navržené tak, aby vám pomohly porozumět scénářům vysoké úrovně před zahájením práce s kódem ve scénářích aplikace.

Základy

Každou aplikaci, která používá platformu Microsoft Identity Platform, musíte zaregistrovat v centru pro správu Microsoft Entra Registrace aplikací. Proces registrace aplikace shromažďuje a přiřazuje tyto hodnoty pro vaši aplikaci:

  • ID aplikace (klienta), které jednoznačně identifikuje vaši aplikaci
  • Identifikátor URI přesměrování, který můžete použít k přesměrování odpovědí zpět do aplikace
  • Několik dalších hodnot specifických pro scénáře, jako jsou podporované typy účtů

Podrobnosti najdete v tématu o tom, jak zaregistrovat aplikaci.

Po registraci aplikace aplikace komunikuje s platformou Microsoft Identity Platform odesláním požadavků do koncového bodu. Poskytujeme opensourcové architektury a knihovny, které zpracovávají podrobnosti těchto požadavků. Můžete také implementovat logiku ověřování sami vytvořením požadavků na tyto koncové body:

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

Typy aplikací podporované platformou Microsoft Identity Platform jsou;

  • Jednostránková aplikace (SPA)
  • Webová aplikace
  • Webové rozhraní API
  • Mobilní a nativní aplikace
  • Služba, démon, skript

Jednostránkové aplikace

Mnoho moderních aplikací má front-end jednostránkové aplikace (SPA) napsaný primárně v JavaScriptu, často s architekturou, jako je Angular, React nebo Vue. Platforma Microsoft Identity Platform podporuje tyto aplikace pomocí protokolu OpenID Připojení pro ověřování a jednoho ze dvou typů autorizačních grantů definovaných OAuth 2.0. Podporované typy grantů jsou buď implicitní tok udělení OAuth 2.0, nebo novější autorizační kód OAuth 2.0 + tok PKCE (viz níže).

Vývojový diagram znázorňuje tok udělení autorizačního kódu OAuth 2.0 (s podrobnostmi o vynechání PKCE), kde aplikace obdrží kód z koncového bodu Microsoft Identity Platform authorize a uplatní ho pro přístupový token a obnovovací token pomocí webových požadavků mezi weby. U spA je přístupový token platný 1 hodinu a po vypršení platnosti musí požádat o další kód pomocí obnovovacího tokenu. Kromě přístupového tokenu, který představuje přihlášeného uživatele do klientské aplikace, id_token se obvykle vyžaduje také prostřednictvím stejného toku nebo samostatného požadavku OpenID Připojení (zde není uvedený).

Diagram znázorňující tok autorizačního kódu OAuth 2.0 mezi jednostránkovou aplikací a koncovým bodem služby tokenu zabezpečení

Pokud se chcete podívat na tuto akci, projděte si rychlý start: Přihlášení uživatelů do jednostránkové aplikace (SPA) a volání rozhraní Microsoft Graph API pomocí JavaScriptu.

Tok autorizačního kódu vs. implicitní tok

Tok autorizačního kódu OAuth 2.0 je teď doporučeným způsobem, jak vytvořit spA, aby byla zajištěna kompatibilita vaší aplikace v Safari a dalších prohlížečích s vědomím ochrany osobních údajů. Po odstranění souborů cookie třetích stran a větší pozornost se nedoporučuje pokračovat v používání implicitního toku.

Webové aplikace

U webových aplikací (.NET, PHP, Java, Ruby, Python, Node), ke kterým uživatel přistupuje prostřednictvím prohlížeče, můžete použít OpenID Připojení pro přihlášení uživatele. Ve Připojení OpenID obdrží webová aplikace token ID. Token ID je token zabezpečení, který ověřuje identitu uživatele a poskytuje informace o uživateli ve formě deklarací identity:

// 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"
    ...
}

Další podrobnosti o různých typech tokenů používaných na platformě Microsoft Identity Platform jsou k dispozici v referenčních informacích k přístupovém tokenu a id_token referenci .

V aplikacích webového serveru tok ověřování přihlašování provádí tyto základní kroky:

Zobrazuje tok ověřování webové aplikace.

Identitu uživatele můžete zajistit tak, že token ID ověříte pomocí veřejného podpisového klíče, který se přijímá z platformy Microsoft Identity Platform. Nastaví se soubor cookie relace, který lze použít k identifikaci uživatele v následných požadavcích na stránku.

Další informace o vytvoření webové aplikace ASP.NET Core, která přihlašuje uživatele v následující sérii kurzů s více částmi

Kromě jednoduchého přihlášení může aplikace webového serveru potřebovat přístup k jiné webové službě, jako je rozhraní REST API (Representational State Transfer). V tomto případě se aplikace webového serveru zapojí do kombinovaného toku openID Připojení a OAuth 2.0 pomocí toku autorizačního kódu OAuth 2.0. Další informace o tomto scénáři najdete v ukázce kódu.

Webová rozhraní API

Platformu Microsoft Identity Platform můžete použít k zabezpečení webových služeb, jako je například webové rozhraní RESTful API vaší aplikace. Webová rozhraní API je možné implementovat v mnoha platformách a jazycích. Je možné je také implementovat pomocí triggerů HTTP ve službě Azure Functions. Místo tokenů ID a souborů cookie relace používá webové rozhraní API přístupový token OAuth 2.0 k zabezpečení dat a ověřování příchozích požadavků.

Volající webového rozhraní API připojí přístupový token v autorizační hlavičce požadavku HTTP, například takto:

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

Webové rozhraní API používá přístupový token k ověření identity volajícího rozhraní API a k extrahování informací o volajícím z deklarací identity, které jsou kódovány v přístupovém tokenu. Další podrobnosti o různých typech tokenů používaných na platformě Microsoft Identity Platform jsou k dispozici v referenčních informacích o přístupovém tokenu a odkazu na token ID.

Webové rozhraní API může uživatelům umožnit vyjádřit výslovný souhlas nebo vyjádřit výslovný nesouhlas s konkrétními funkcemi nebo daty tím, že zpřístupňuje oprávnění, označovaná také jako obory. Aby volající aplikace získala oprávnění k oboru, musí uživatel během toku udělit souhlas s oborem. Platforma Microsoft Identity Platform požádá uživatele o oprávnění a potom zaznamenává oprávnění ve všech přístupových tokenech, které webové rozhraní API přijímá. Webové rozhraní API ověřuje přístupové tokeny, které přijímá při každém volání, a provádí kontroly autorizace.

Webové rozhraní API může přijímat přístupové tokeny ze všech typů aplikací, včetně aplikací webového serveru, desktopových a mobilních aplikací, jednostránkových aplikací, démonů na straně serveru a dokonce i jiných webových rozhraní API. Tok vysoké úrovně pro webové rozhraní API vypadá takto:

Zobrazuje tok ověřování webového rozhraní API.

Informace o zabezpečení webového rozhraní API pomocí přístupových tokenů OAuth2 najdete v ukázkách kódu webového rozhraní API v kurzu chráněného webového rozhraní API.

V mnoha případech musí webová rozhraní API také provádět odchozí požadavky na jiná podřízená webová rozhraní API zabezpečená platformou Microsoft Identity Platform. K tomu můžou webová rozhraní API využívat tok On-Behalf-Of (OBO), který webovému rozhraní API umožňuje vyměnit příchozí přístupový token za jiný přístupový token, který se použije v odchozích požadavcích. Další informace najdete v toku Microsoft Identity Platform a OAuth 2.0 On-Behalf-Of.

Mobilní a nativní aplikace

Aplikace nainstalované zařízením, jako jsou mobilní a desktopové aplikace, často potřebují přístup k back-endovým službám nebo webovým rozhraním API, která ukládají data a provádějí funkce jménem uživatele. Tyto aplikace můžou do back-endových služeb přidávat přihlašování a autorizaci pomocí toku autorizačního kódu OAuth 2.0.

V tomto toku aplikace obdrží autorizační kód z platformy Microsoft Identity Platform, když se uživatel přihlásí. Autorizační kód představuje oprávnění aplikace volat back-endové služby jménem uživatele, který je přihlášený. Aplikace může vyměnit autorizační kód na pozadí pro přístupový token OAuth 2.0 a obnovovací token. Aplikace může použít přístupový token k ověření u webových rozhraní API v požadavcích HTTP a pomocí obnovovacího tokenu získat nové přístupové tokeny, když vyprší platnost starších přístupových tokenů.

Zobrazuje tok ověřování nativní aplikace.

Poznámka:

Pokud aplikace používá výchozí systémové webové zobrazení, zkontrolujte informace o funkci Potvrdit moje přihlášení a kód AADSTS50199 chyby v kódech chyb ověřování a autorizace Microsoft Entra.

Server, démoni a skripty

Aplikace, které mají dlouhotrvající procesy nebo které pracují bez interakce s uživatelem, potřebují také způsob přístupu k zabezpečeným prostředkům, jako jsou webová rozhraní API. Tyto aplikace se můžou ověřovat a získávat tokeny pomocí identity aplikace místo delegované identity uživatele s tokem přihlašovacích údajů klienta OAuth 2.0. Identitu aplikace můžete prokázat pomocí tajného klíče klienta nebo certifikátu. Další informace najdete v konzolové aplikaci démon .NET pomocí platformy Microsoft Identity Platform.

V tomto toku aplikace komunikuje přímo s /token koncovým bodem, aby získala přístup:

Zobrazuje tok ověřování aplikace démona.

Pokud chcete vytvořit aplikaci démona, podívejte se do dokumentace k přihlašovacím údajům klienta nebo vyzkoušejte ukázkovou aplikaci .NET.

Viz také

Teď, když znáte typy aplikací podporovaných platformou Microsoft Identity Platform, přečtěte si další informace o OAuth 2.0 a OpenID Připojení, abyste získali přehled o komponentách protokolu používaných různými scénáři.