De Microsoft Authentication Library verkennen

Voltooid

Met de Microsoft Authentication Library (MSAL) kunnen ontwikkelaars beveiligingstokens verkrijgen van het Microsoft Identity Platform om gebruikers te verifiëren en toegang te krijgen tot beveiligde web-API's. Het kan worden gebruikt om veilige toegang te bieden tot Microsoft Graph, andere Microsoft-API's, web-API's van derden of uw eigen web-API MSAL ondersteunt veel verschillende toepassingsarchitecturen en -platforms, waaronder .NET, JavaScript, Java, Python, Android en iOS.

MSAL biedt u veel manieren om tokens op te halen, met een consistente API voor veel platforms. Het gebruik van MSLAL biedt de volgende voordelen:

  • U hoeft de OAuth-bibliotheken of -code niet rechtstreeks te gebruiken voor het protocol in uw toepassing.
  • Hiermee verkrijgt u tokens in naam van een gebruiker of een toepassing (indien van toepassing op het platform).
  • Onderhoudt een tokencache en vernieuwt tokens voor u wanneer ze bijna verlopen. U hoeft tokenverloop niet zelf te verwerken.
  • Hiermee kunt u opgeven welke doelgroep u wilt dat uw toepassing zich aanmeldt.
  • Helpt u bij het instellen van uw toepassing vanaf configuratiebestanden.
  • Helpt u bij het oplossen van problemen met uw app door praktische uitzonderingen, logboekregistratie en telemetrie beschikbaar te maken.

Typen apps en scenario's

Binnen MSAL kan een token worden verkregen uit veel toepassingstypen: webtoepassingen, web-API's, apps met één pagina (JavaScript), mobiele en systeemeigen toepassingen, en daemons en toepassingen aan de serverzijde. MSAL ondersteunt momenteel de platforms en frameworks die worden vermeld in de volgende tabel.

Bibliotheek Ondersteunde platforms en frameworks
MSAL voor Android Android
MSAL Angular Apps met één pagina met Angular en Angular.js frameworks
MSAL voor iOS en macOS iOS en macOS
MSAL Go (preview) Windows, macOS, Linux
MSAL Java Windows, macOS, Linux
MSAL.js JavaScript/TypeScript-frameworks zoals Vue.js, Ember.js of Durandal.js
MSAL.NET .NET Framework, .NET, .NET MAUI, WINUI, Xamarin Android, Xamarin iOS, Universeel Windows-platform
MSAL-knooppunt Web-apps met Express, desktop-apps met Electron, platformoverschrijdende console-apps
MSAL Python Windows, macOS, Linux
MSAL React Apps met één pagina met React- en op React gebaseerde bibliotheken (Next.js, Gatsby.js)

Verificatiestromen

In de volgende tabel ziet u enkele van de verschillende verificatiestromen van Microsoft Authentication Library (MSAL). Deze stromen kunnen worden gebruikt in verschillende toepassingsscenario's.

Verificatiestroom Schakelt in Ondersteunde soorten toepassingen
Autorisatiecode Gebruikersaanmelding en toegang tot web-API's namens de gebruiker. Desktop, Mobile, app met één pagina (SPA) (vereist PKCE), web
Clientreferenties Toegang tot web-API's door de identiteit te gebruiken van de toepassing zelf. Doorgaans gebruikt voor server-naar-servercommunicatie en geautomatiseerde scripts waarvoor geen gebruikersinteractie is vereist. Daemon
Apparaatcode Gebruikersaanmelding en toegang tot web-API's namens de gebruiker op apparaten met beperkte invoer, zoals smart-tv's en IoT-apparaten. Ook gebruikt door opdrachtregelinterface-toepassingen (CLI-toepassingen). Desktop, mobiel
Impliciete toekenning Gebruikersaanmelding en toegang tot web-API's namens de gebruiker. De impliciete toekenningsstroom wordt niet meer aanbevolen - gebruik in plaats daarvan de autorisatiecode met PKCE. App met één pagina (SPA), web
Namens (OBO) Toegang vanuit een upstream web-API naar een downstream web-API namens de gebruiker. De identiteit en gedelegeerde machtigingen van de gebruiker worden via de upstream-API doorgegeven aan de downstream-API. Web-API
Gebruikersnaam/wachtwoord (ROPC) Hiermee kan een toepassing gebruikers aanmelden door hun wachtwoord rechtstreeks te verwerken. De ROPC-stroom wordt NIET aanbevolen. Desktop, mobiel
Geïntegreerde Windows-verificatie (IWA) Hiermee kunnen toepassingen op domeincomputers of aan Microsoft Entra gekoppelde computers op de achtergrond een token verkrijgen (zonder tussenkomst van de gebruikersinterface). Desktop, mobiel

Openbare en vertrouwelijke clienttoepassingen

De Microsoft Authentication Library (MSAL) definieert twee typen clients; openbare clients en vertrouwelijke clients. Een client is een software-entiteit met een unieke id die is toegewezen door een id-provider. De clienttypen verschillen op basis van hun mogelijkheid om veilig te verifiëren met de autorisatieserver en gevoelige gegevens te bewaren, identiteitsgegevens te bewijzen, zodat deze niet kunnen worden geopend of bekend zijn bij een gebruiker binnen het bereik van de toegang.

Bij het onderzoeken van de openbare of vertrouwelijke aard van een bepaalde client evalueren we de mogelijkheid van die client om zijn identiteit aan de autorisatieserver te bewijzen. Dit is belangrijk omdat de autorisatieserver de identiteit van de client moet kunnen vertrouwen om toegangstokens uit te geven.

  • Openbare clienttoepassingen worden uitgevoerd op apparaten, zoals desktop, browserloze API's, mobiele of browser-apps aan de clientzijde. Ze kunnen niet worden vertrouwd om toepassingsgeheimen veilig te bewaren, zodat ze alleen namens de gebruiker toegang hebben tot web-API's. Telkens wanneer de bron, of gecompileerde bytecode van een bepaalde app, wordt verzonden waar deze kan worden gelezen, gedemonteerd of anderszins door niet-vertrouwde partijen kan worden geïnspecteerd. Omdat ze ook alleen openbare clientstromen ondersteunen en geen configuratietijdgeheimen kunnen bevatten, kunnen ze geen clientgeheimen hebben.

  • Vertrouwelijke clienttoepassingen worden uitgevoerd op servers, zoals web-apps, web-API-apps of service-/daemon-apps. Ze worden beschouwd als moeilijk toegankelijk voor gebruikers of aanvallers en kunnen daarom voldoende configuratietijdgeheimen bevatten om het bewijs van de identiteit te bevestigen. De client-id wordt weergegeven via de webbrowser, maar het geheim wordt alleen doorgegeven in het Upstream-kanaal en wordt nooit rechtstreeks weergegeven.