Seznámení s knihovnou Microsoft Authentication Library

Dokončeno

Knihovna MICROSOFT Authentication Library (MSAL) umožňuje vývojářům získávat tokeny zabezpečení z platformy Microsoft Identity Platform k ověřování uživatelů a přístupu k zabezpečeným webovým rozhraním API. Dá se použít k zajištění zabezpečeného přístupu k Microsoft Graphu, dalším rozhraním API Microsoftu, webovým rozhraním API třetích stran nebo k vlastnímu webovému rozhraní API. MSAL podporuje mnoho různých aplikačních architektur a platforem, včetně .NET, JavaScriptu, Javy, Pythonu, Androidu a iOS.

MSAL poskytuje mnoho způsobů, jak získat tokeny s konzistentním rozhraním API pro mnoho platforem. Používání knihovny MSAL poskytuje následující výhody:

  • Nemusíte přímo používat knihovny OAuth ani kód proti protokolu ve vaší aplikaci.
  • Získá tokeny jménem uživatele nebo jménem aplikace (pokud je to možné pro platformu).
  • Udržuje mezipaměť tokenů a aktualizuje tokeny za vás, když jsou blízko vypršení platnosti. Vypršení platnosti tokenu nemusíte zpracovávat sami.
  • Pomáhá určit, kterou cílovou skupinu chcete, aby se vaše aplikace přihlásila.
  • Pomáhá nastavit aplikaci z konfiguračních souborů.
  • Pomáhá řešit potíže s aplikací zveřejněním výjimek, protokolování a telemetrie, které je možné provádět s akcemi.

Typy aplikací a scénáře

V rámci knihovny MSAL lze token získat z mnoha typů aplikací: webových aplikací, webových rozhraní API, jednostránkových aplikací (JavaScript), mobilních a nativních aplikací a démonů a aplikací na straně serveru. MSAL v současné době podporuje platformy a architektury uvedené v následující tabulce.

Knihovna Podporované platformy a architektury
MSAL pro Android Android
MSAL Angular Jednostrákové aplikace s architekturou Angular a Angular.js
MSAL pro iOS a macOS iOS a macOS
MSAL Go (Preview) Windows, macOS, Linux
MSAL Java Windows, macOS, Linux
MSAL.js Rozhraní JavaScript/TypeScript, jako jsou Vue.js, Ember.js nebo Durandal.js
MSAL.NET .NET Framework, .NET, .NET MAUI, WINUI, Xamarin Android, Xamarin iOS, Univerzální platforma Windows
Uzel MSAL Webové aplikace s Expressem, desktopové aplikace s elektronovými, multiplatformní konzolovými aplikacemi
MSAL Python Windows, macOS, Linux
MSAL React Jednostrákové aplikace s knihovnami React a React (Next.js, Gatsby.js)

Toky ověřování

Následující tabulka uvádí některé různé toky ověřování poskytované knihovnou MSAL (Microsoft Authentication Library). Tyto toky je možné použít v různých scénářích aplikace.

Tok ověřování Umožňuje Podporované typy aplikací
Autorizační kód Přihlášení uživatele a přístup k webovým rozhraním API jménem uživatele Desktopová, mobilní, jednostránká aplikace (SPA) (vyžaduje PKCE), web
Přihlašovací údaje klienta Přístup k webovým rozhraním API pomocí identity samotné aplikace. Obvykle se používá pro komunikaci mezi servery a automatizované skripty, které nevyžadují žádnou interakci uživatele. Démon
Kód zařízení Přihlášení uživatele a přístup k webovým rozhraním API jménem uživatele na vstupních zařízeních s omezeným přístupem, jako jsou inteligentní televizory a zařízení IoT. Používá se také v aplikacích rozhraní příkazového řádku (CLI). Stolní počítač, Mobilní zařízení
Implicitní udělení Přihlášení uživatele a přístup k webovým rozhraním API jménem uživatele Implicitní tok udělení se už nedoporučuje – místo toho použijte autorizační kód s PKCE. Jednostránkové aplikace (SPA), web
Jménem (OBO) Přístup z "upstreamového" webového rozhraní API na "podřízené" webové rozhraní API jménem uživatele. Identita uživatele a delegovaná oprávnění se předávají do podřízeného rozhraní API z upstreamového rozhraní API. Webové rozhraní API
Uživatelské jméno a heslo (ROPC) Umožňuje aplikaci přihlásit se k uživateli přímým zpracováním hesla. Tok ROPC se nedoporučuje. Stolní počítač, Mobilní zařízení
Integrované ověřování systému Windows (IWA) Umožňuje aplikacím v doméně nebo počítačích připojených k Microsoft Entra získat token bezobslužně (bez zásahu uživatelského rozhraní od uživatele). Stolní počítač, Mobilní zařízení

Veřejný klient a důvěrné klientské aplikace

Knihovna MSAL (Microsoft Authentication Library) definuje dva typy klientů; veřejných klientů a důvěrných klientů. Klient je softwarová entita, která má jedinečný identifikátor přiřazený zprostředkovatelem identity. Typy klientů se liší podle své schopnosti bezpečně ověřovat pomocí autorizačního serveru a uchovávat citlivé informace o ověření identity, aby k nim uživatel neměl přístup ani je v rámci jeho přístupu nepoznal.

Při zkoumání veřejné nebo důvěrné povahy daného klienta vyhodnocujeme schopnost tohoto klienta prokázat jeho identitu autorizačnímu serveru. To je důležité, protože autorizační server musí být schopný důvěřovat identitě klienta, aby mohl vydávat přístupové tokeny.

  • Veřejné klientské aplikace běží na zařízeních, jako jsou desktopová, bez prohlížečů rozhraní API, mobilní aplikace nebo aplikace prohlížeče na straně klienta. Nemůžou být důvěryhodní, aby bezpečně uchovávali tajné kódy aplikací, takže můžou přistupovat jenom k webovým rozhraním API jménem uživatele. Kdykoli se zdrojový nebo kompilovaný bajtový kód dané aplikace přenáší kdekoli, kde může být přečteno, zpětně rozebráno nebo jinak kontrolováno nedůvěryhodnými stranami. Protože také podporují jen toky veřejných klientů a nemůžou uchovávat tajné kódy v době konfigurace, nemůžou mít tajné kódy klienta.

  • Důvěrné klientské aplikace běží na serverech, jako jsou webové aplikace, aplikace webového rozhraní API nebo aplikace služby/démona. Uživatelé nebo útočníci se považují za obtížně přístupné, a proto mohou odpovídajícím způsobem uchovávat tajné kódy v době konfigurace, aby bylo možné prokázat jeho identitu. ID klienta se vystavuje prostřednictvím webového prohlížeče, ale tajný kód se předává jenom v back channelu a nikdy přímo nezpřístupní.