Utforsk Microsoft Authentication Library
Microsoft Authentication Library (MSAL) gjør det mulig for utviklere å skaffe seg sikkerhetstokener fra Microsofts identitetsplattform for å godkjenne brukere og få tilgang til sikrede nett-API-er. Den kan brukes til å gi sikker tilgang til Microsoft Graph, andre Microsoft API-er, tredjeparts nett-API-er eller din egen nett-API. MSAL støtter mange forskjellige programarkitekturer og plattformer, inkludert .NET, JavaScript, Java, Python, Android og iOS.
MSAL gir deg mange måter å få tokener på, med en konsekvent API for mange plattformer. Bruk av MSAL gir følgende fordeler:
- Du trenger ikke å bruke OAuth-bibliotekene eller koden direkte mot protokollen i programmet.
- Henter tokener på vegne av en bruker eller på vegne av et program (når det gjelder plattformen).
- Opprettholder en tokenhurtigbuffer og oppdaterer tokener for deg når de er nær utløp. Du trenger ikke å håndtere tokenutløp på egen hånd.
- Hjelper deg med å angi hvilken målgruppe du vil at programmet skal logge på.
- Hjelper deg med å konfigurere programmet fra konfigurasjonsfiler.
- Hjelper deg med å feilsøke appen ved å avsløre handlingsunntak, logging og telemetri.
Programtyper og scenarioer
I MSAL kan et token hentes fra mange programtyper: nettprogrammer, nett-API-er, enkeltsiders apper (JavaScript), mobile og opprinnelige programmer og daemoner og programmer på serversiden. MSAL støtter for øyeblikket plattformene og rammeverkene som er oppført i tabellen nedenfor.
| Bibliotek | Støttede plattformer og rammeverk |
|---|---|
| MSAL for Android | Androide |
| MSAL kantet | Enkeltsideapper med Angular og Angular.js frameworks |
| MSAL for iOS og macOS | iOS og macOS |
| MSAL Go (forhåndsversjon) | Windows, macOS, Linux |
| MSAL Java | Windows, macOS, Linux |
| MSAL.js | JavaScript/TypeScript-rammeverk, for eksempel Vue.js, Ember.jseller Durandal.js |
| MSAL.NET | .NET Framework, .NET, .NET MAUI, WINUI, Xamarin Android, Xamarin iOS, universell Windows-plattform |
| MSAL-node | Nettapper med Express, skrivebordsapper med Electron, konsollapper på tvers av plattformer |
| MSAL Python- | Windows, macOS, Linux |
| MSAL reagerer | Enkeltsideapper med React- og React-baserte biblioteker (Next.js, Gatsby.js) |
Godkjenningsflyter
Tabellen nedenfor viser noen av de ulike godkjenningsflytene som leveres av Microsoft Authentication Library (MSAL). Disse flytene kan brukes i ulike programscenarioer.
| Godkjenningsflyt | Gjør | Støttede programtyper |
|---|---|---|
| Autorisasjonskode | Brukerpålogging og tilgang til nett-API-er på vegne av brukeren. | Skrivebord, mobil, enkeltsideapp (SPA) (krever PKCE), nett |
| Klientlegitimasjon | Tilgang til nett-API-er ved hjelp av selve programmets identitet. Brukes vanligvis for server-til-server-kommunikasjon og automatiserte skript som ikke krever brukersamhandling. | Daemon |
| Enhetskode | Brukerpålogging og tilgang til nett-API-er på vegne av brukeren på inndatabegrensede enheter som smart-TV-er og IoT-enheter. Brukes også av kommandolinjegrensesnittprogrammer (CLI). | Skrivebord, mobil |
| Implisitt bevilgning | Brukerpålogging og tilgang til nett-API-er på vegne av brukeren. Implisitt tildelingsflyt anbefales ikke lenger – bruk autorisasjonskode med PKCE i stedet. | Enkeltsideapp (SPA), Nett |
| På vegne av (OBO) | Tilgang fra en «oppstrøms» nett-API til en «nedstrøms» nett-API på vegne av brukeren. Brukerens identitet og delegerte tillatelser sendes til nedstrøms-API-en fra oppstrøms-API-en. | Web-API |
| Brukernavn/passord (ROPC) | Tillater at et program logger på brukeren ved å behandle passordet direkte. ROPC-flyten anbefales IKKE. | Skrivebord, mobil |
| Integrert Windows-godkjenning (IWA) | Gjør det mulig for programmer på domenet eller Microsoft Entra-sammenføyde datamaskiner å skaffe seg et token stille (uten grensesnittsamhandling fra brukeren). | Skrivebord, mobil |
Offentlige klient- og konfidensielle klientprogrammer
Microsoft Authentication Library (MSAL) definerer to typer klienter. offentlige klienter og konfidensielle klienter. En klient er en programvareenhet som har en unik identifikator tilordnet av en identitetsleverandør. Klienttypene er forskjellige basert på deres evne til å godkjenne sikkert med godkjenningsserveren og å holde sensitiv identitetsbevisingsinformasjon slik at den ikke får tilgang til eller er kjent for en bruker innenfor tilgangsomfanget.
Når vi undersøker den offentlige eller konfidensielle karakteren til en gitt klient, evaluerer vi klientens evne til å bevise identiteten til godkjenningsserveren. Dette er viktig fordi godkjenningsserveren må kunne klarere identiteten til klienten for å kunne utstede tilgangstokener.
offentlige klientprogrammer kjøre på enheter, for eksempel stasjonære, nettleserløse API-er, mobilapper eller nettleserapper på klientsiden. De kan ikke klareres til å oppbevare programhemmeligheter på en trygg måte, slik at de bare kan få tilgang til nett-API-er på vegne av brukeren. Hver gang kilden, eller kompilert bytekode for en gitt app, sendes hvor som helst den kan leses, demonteres eller på annen måte inspiseres av ikke-klarerte parter. Siden de også bare støtter offentlige klientflyter og ikke kan holde konfigurasjonstidshemmeligheter, kan de ikke ha klienthemmeligheter.
Konfidensielle klientprogrammer kjøre på servere, for eksempel nettapper, nett-API-apper eller tjeneste-/daemon-apper. De anses som vanskelige å få tilgang til av brukere eller angripere, og kan derfor tilstrekkelig holde konfigurasjonstidshemmeligheter for å hevde bevis på identiteten. Klient-ID-en vises via nettleseren, men hemmeligheten sendes bare i bakkanalen og vises aldri direkte.