De Microsoft Authentication Library verkennen

Voltooid

De Microsoft Authentication Library (MSAL) kan worden gebruikt om beveiligde toegang te bieden tot Microsoft Graph, andere Microsoft-API's 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 Core, 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.

Stroom Beschrijving
Autorisatiecode Systeemeigen en web-apps verkrijgen veilig tokens in de naam van de gebruiker
Clientreferenties Servicetoepassingen worden uitgevoerd zonder gebruikersinteractie
On-behalf-of De toepassing roept een service/web-API aan, die op zijn beurt Microsoft Graph aanroept
Impliciet Wordt gebruikt in browsertoepassingen
Apparaatcode Hiermee kunt u zich aanmelden bij een apparaat met een ander apparaat dat een browser heeft
Geïntegreerde Windows Windows-computers verkrijgen op de achtergrond een toegangstoken wanneer ze lid zijn van een domein
Interactief Toepassingen voor mobiele apparaten en desktops roepen Microsoft Graph aan in de naam van een gebruiker
Gebruikersnaam/wachtwoord De toepassing meldt zich aan bij een gebruiker met behulp van zijn gebruikersnaam en wachtwoord

Openbare client en vertrouwelijke clienttoepassingen

Meerdere typen toepassingen kunnen beveiligingstokens verkrijgen. Deze toepassingen worden meestal onderverdeeld in de volgende twee categorieën. Elk wordt gebruikt met verschillende bibliotheken en objecten.

  • Openbare clienttoepassingen: Zijn apps die worden uitgevoerd op apparaten of desktopcomputers of in een webbrowser. Deze worden niet vertrouwd om toepassingsgeheimen veilig te bewaren, zodat ze alleen toegang hebben tot web-API's namens de gebruiker. (Ze ondersteunen alleen openbare-clientstromen.) Openbare clients kunnen geen configuratietijdgeheimen bevatten, zodat ze geen clientgeheimen hebben.

  • Vertrouwelijke clienttoepassingen: Zijn apps die worden uitgevoerd op servers (web-apps, web-API-apps of zelfs service-/daemon-apps). Ze worden beschouwd als moeilijk toegankelijk en daarom kunnen ze een toepassingsgeheim bewaren. Vertrouwelijke clients kunnen configuratietijdgeheimen bevatten. Elk exemplaar van de client heeft een afzonderlijke configuratie (inclusief client-id en clientgeheim).