OAuth 2.0 a OpenID Connect (OIDC) na platformě Microsoft Identity Platform

Znalost OAuth nebo OpenID Connect (OIDC) na úrovni protokolu není nutná k používání platformy Microsoft Identity Platform. Při použití platformy identity k přidání ověřování do aplikací ale narazíte na termíny a koncepty protokolu. Při práci s Centrem pro správu Microsoft Entra vám může pomoct naše dokumentace a knihovny ověřování, protože znalost některých základů vám může pomoct s integrací a celkovým prostředím.

Role v OAuth 2.0

Čtyři strany jsou obecně zapojeny do ověřování OAuth 2.0 a OpenID Connect a výměny autorizace. Tyto výměny se často označují jako toky ověřování nebo toky ověřování.

Diagram znázorňující role OAuth 2.0

  • Autorizační server – Platforma Microsoft Identity Platform je autorizační server. Označuje se také jako zprostředkovatel identity nebo zprostředkovatele identity, bezpečně zpracovává informace koncového uživatele, jejich přístup a vztahy důvěryhodnosti mezi stranami v toku ověřování. Autorizační server vydává tokeny zabezpečení, které vaše aplikace a rozhraní API používají k udělení, zamítnutí nebo odvolání přístupu k prostředkům (autorizaci), jakmile se uživatel přihlásí (ověří).

  • Klient – Klient v exchangi OAuth je aplikace požadující přístup k chráněnému prostředku. Klientem může být webová aplikace spuštěná na serveru, jednostráňová webová aplikace spuštěná ve webovém prohlížeči uživatele nebo webové rozhraní API, které volá jiné webové rozhraní API. Klient se často označuje jako klientská aplikace, aplikace nebo aplikace.

  • Vlastník prostředku – Vlastník prostředku v toku ověřování je obvykle uživatel aplikace nebo koncový uživatel v terminologii OAuth. Koncový uživatel "vlastní" chráněný prostředek (jejich data), ke kterému vaše aplikace přistupuje svým jménem. Vlastníci prostředků můžou aplikaci udělit nebo odepřít přístup k prostředkům, které vlastní. Vaše aplikace může například volat rozhraní API externího systému, aby získala e-mailovou adresu uživatele ze svého profilu v tomto systému. Jejich profilová data jsou prostředkem, který koncový uživatel vlastní v externím systému, a koncový uživatel může souhlasit nebo odepřít žádost o přístup k datům vaší aplikace.

  • Server prostředků – Server prostředků je hostitelem nebo poskytuje přístup k datům vlastníka prostředku. Server prostředků je nejčastěji webovým rozhraním API, které předčítá úložiště dat. Server prostředků spoléhá na autorizační server k ověřování a používá informace v nosných tokenech vydaných autorizačním serverem k udělení nebo odepření přístupu k prostředkům.

Tokeny

Strany v toku ověřování používají nosné tokeny k zajištění, ověření a ověření objektu zabezpečení (uživatele, hostitele nebo služby) a k udělení nebo zamítnutí přístupu k chráněným prostředkům (autorizaci). Nosné tokeny na platformě Microsoft Identity Platform jsou formátované jako webové tokeny JSON (JWT).

Platforma identit používá tři typy nosných tokenů jako tokeny zabezpečení:

  • Přístupové tokeny – Přístupové tokeny vydává autorizační server klientské aplikaci. Klient předává přístupové tokeny k serveru prostředků. Přístupové tokeny obsahují oprávnění, která klient udělil autorizačnímu serveru.

  • Tokeny ID – Tokeny ID vydává autorizační server klientské aplikaci. Klienti používají tokeny ID při přihlašování uživatelů a získání základních informací o nich.

  • Obnovovací tokeny – Klient používá obnovovací token nebo RT k vyžádání nových přístupových a ID tokenů ze autorizačního serveru. Váš kód by měl zacházet s obnovovacími tokeny a obsahem jejich řetězce jako s citlivými daty, protože jsou určeny pouze autorizačním serverem.

Registrace aplikace

Vaše klientská aplikace potřebuje způsob, jak důvěřovat tokenům zabezpečení vydaným platformou Microsoft Identity Platform. Prvním krokem při navázání důvěryhodnosti je registrace aplikace. Když aplikaci zaregistrujete, platforma identit ji automaticky přiřadí určitým hodnotám, zatímco jiné, které nakonfigurujete na základě typu aplikace.

Mezi nejčastěji používaná nastavení registrace aplikací patří:

  • ID aplikace (klienta) – označuje se také jako ID aplikace a ID klienta, tato hodnota je přiřazena vaší aplikaci platformou identit. ID klienta jednoznačně identifikuje vaši aplikaci na platformě Identity Platform a je součástí tokenů zabezpečení, které platforma řeší.
  • Identifikátor URI přesměrování – Autorizační server používá identifikátor URI přesměrování k nasměrování uživatelského agenta vlastníka prostředku (webový prohlížeč, mobilní aplikace) do jiného cíle po dokončení interakce. Například po ověření koncového uživatele s autorizačním serverem. Ne všechny typy klientů používají identifikátory URI přesměrování.

Registrace vaší aplikace obsahuje také informace o ověřovacích a autorizačních koncových bodech, které v kódu použijete k získání ID a přístupových tokenů.

Koncové body

Platforma Microsoft Identity Platform nabízí služby ověřování a autorizace s využitím implementací kompatibilních se standardy OAuth 2.0 a OpenID Connect (OIDC) 1.0. Autorizační servery vyhovující standardům, jako je platforma identit, poskytují sadu koncových bodů HTTP pro použití stranami v toku ověřování ke spuštění toku.

Identifikátory URI koncových bodů pro vaši aplikaci se generují automaticky při registraci nebo konfiguraci aplikace. Koncové body, které použijete v kódu aplikace, závisí na typu aplikace a identitách (typech účtů), které by měla podporovat.

Dva běžně používané koncové body jsou autorizační koncový bod a koncový bod tokenu. Tady jsou příklady koncových authorizetoken bodů:

# Authorization endpoint - used by client to obtain authorization from the resource owner.
https://login.microsoftonline.com/<issuer>/oauth2/v2.0/authorize
# Token endpoint - used by client to exchange an authorization grant or refresh token for an access token.
https://login.microsoftonline.com/<issuer>/oauth2/v2.0/token

# NOTE: These are examples. Endpoint URI format may vary based on application type,
#       sign-in audience, and Azure cloud instance (global or national cloud).

#       The {issuer} value in the path of the request can be used to control who can sign into the application. 
#       The allowed values are **common** for both Microsoft accounts and work or school accounts, 
#       **organizations** for work or school accounts only, **consumers** for Microsoft accounts only, 
#       and **tenant identifiers** such as the tenant ID or domain name.

Pokud chcete najít koncové body pro aplikaci, kterou jste zaregistrovali, přejděte v Centru pro správu Microsoft Entra na:

Aplikace> identit>Registrace aplikací>< KONCOVÉ body APLIKACE>>

Další kroky

Dále se dozvíte o tocích ověřování OAuth 2.0 používaných každým typem aplikace a knihovnami, které můžete v aplikacích použít k jejich provedení:

Důrazně doporučujeme vytvořit vlastní knihovnu nebo nezpracovaná volání HTTP pro spouštění toků ověřování. Microsoft Authentication Library je bezpečnější a jednodušší. Pokud vám ale váš scénář brání v používání našich knihoven nebo byste se chtěli dozvědět víc o implementaci platformy Microsoft Identity Platform, máme odkaz na protokol:

  • Tok udělení autorizačního kódu – jednostránkové aplikace (SPA), mobilní aplikace, nativní (desktopové) aplikace
  • Tok přihlašovacích údajů klienta – procesy na straně serveru, skripty, démony
  • Tok on-behalf-of (OBO) – webová rozhraní API, která volají jiné webové rozhraní API jménem uživatele
  • OpenID Connect – Přihlášení uživatele, odhlášení a jednotné přihlašování (SSO)