Explorați biblioteca de autentificare Microsoft
Biblioteca de autentificare Microsoft (MSAL) permite dezvoltatorilor să achiziționeze tokenuri de securitate de la platforma de identitate Microsoft pentru a autentifica utilizatorii și a accesa API-uri web securizate. Acesta poate fi utilizat pentru a oferi acces securizat la Microsoft Graph, la alte API-uri Microsoft, la API-uri web de la terți sau la propriul API web. MSAL acceptă multe arhitecturi și platforme diferite de aplicații, inclusiv .NET, JavaScript, Java, Python, Android și iOS.
MSAL vă oferă multe modalități de a obține tokenuri, cu un API consistent pentru multe platforme. Utilizarea MSAL oferă următoarele beneficii:
- Nu este nevoie să utilizați direct bibliotecile OAuth sau să codificați protocolul din aplicația dvs.
- Achiziționează token-uri în numele unui utilizator sau în numele unei aplicații (atunci când este aplicabil platformei).
- Menține un cache de tokenuri și reîmprospătează tokenurile pentru tine când sunt aproape de expirare. Nu trebuie să vă ocupați singur de expirarea token-ului.
- Vă ajută să specificați publicul în care doriți să se conecteze aplicația.
- Vă ajută să configurați aplicația din fișierele de configurare.
- Vă ajută să depanați aplicația prin expunerea excepțiilor acționabile, a înregistrării în jurnal și a telemetriei.
Tipuri de aplicații și scenarii
În cadrul MSAL, un token poate fi achiziționat din mai multe tipuri de aplicații: aplicații web, API-uri web, aplicații cu o singură pagină (JavaScript), aplicații mobile și native și demoni și aplicații pe server. MSAL acceptă în prezent platformele și cadrele enumerate în tabelul următor.
| Bibliotecă | Platforme și cadre acceptate |
|---|---|
| MSAL pentru Android | Android |
| MSAL unghiular | Aplicații cu o singură pagină cu cadre Angular și Angular.js |
| MSAL pentru iOS și macOS | iOS și macOS |
| MSAL Go (previzualizare) | Windows, macOS, Linux |
| MSAL Java | Windows, macOS, Linux |
| MSAL.js | Framework-uri JavaScript/TypeScript, cum ar fi Vue.js, Ember.js sau Durandal.js |
| MSAL.NET | .NET Framework, .NET, .NET MAUI, WINUI, Xamarin Android, Xamarin iOS, Platforma Windows universală |
| Nod MSAL | Aplicații web cu Express, aplicații desktop cu Electron, aplicații de consolă multiplatformă |
| MSAL Python | Windows, macOS, Linux |
| MSAL Reacționează | Aplicații cu o singură pagină cu React și biblioteci bazate pe React (Next.js, Gatsby.js) |
Fluxuri de autentificare
Următorul tabel prezintă unele dintre diferitele fluxuri de autentificare furnizate de Microsoft Authentication Library (MSAL). Aceste fluxuri pot fi utilizate în diferite scenarii de aplicare.
| Fluxul de autentificare | Permite | Tipuri de aplicații acceptate |
|---|---|---|
| Cod de autorizare | Conectarea utilizatorului și accesul la API-urile web în numele utilizatorului. | Desktop, mobil, aplicație cu o singură pagină (SPA) (necesită PKCE), Web |
| Acreditările clientului | Acces la API-uri web utilizând identitatea aplicației în sine. De obicei utilizat pentru comunicarea server-la-server și scripturile automate care nu necesită interacțiune cu utilizatorul. | Daemon |
| Codul dispozitivului | Conectarea utilizatorului și accesul la API-urile web în numele utilizatorului pe dispozitive cu constrângere de intrare, cum ar fi televizoarele inteligente și dispozitivele IoT. Folosit și de aplicațiile de interfață de linie de comandă (CLI). | Desktop, mobil |
| Acordare implicită | Conectarea utilizatorului și accesul la API-urile web în numele utilizatorului. Fluxul implicit de acordare nu mai este recomandat - utilizați în schimb codul de autorizare cu PKCE. | Aplicație cu o singură pagină (SPA), Web |
| În numele (OBO) | Acces de la un API web "în amonte" la un API web "în aval" în numele utilizatorului. Identitatea utilizatorului și permisiunile delegate sunt transmise API-ului din aval din API-ul din amonte. | API web |
| Nume de utilizator/parolă (ROPC) | Permite unei aplicații să se conecteze la utilizator prin gestionarea directă a parolei acestuia. Fluxul ROPC NU este recomandat. | Desktop, mobil |
| Autentificare Windows integrată (IWA) | Permite aplicațiilor de pe computerele asociate domeniului sau Microsoft Entra să obțină un simbol în mod silențios (fără nicio interacțiune cu interfața de utilizare din partea utilizatorului). | Desktop, mobil |
Aplicații publice pentru clienți și clienți confidențiali
Biblioteca de autentificare Microsoft (MSAL) definește două tipuri de clienți; clienți publici și clienți confidențiali. Un client este o entitate software care are un identificator unic atribuit de un furnizor de identitate. Tipurile de clienți diferă în funcție de capacitatea lor de a se autentifica în siguranță cu serverul de autorizare și de a păstra informații sensibile, care dovedesc identitatea, astfel încât acestea să nu poată fi accesate sau cunoscute de un utilizator în cadrul accesului lor.
Când examinăm natura publică sau confidențială a unui anumit client, evaluăm capacitatea clientului respectiv de a-și dovedi identitatea serverului de autorizare. Acest lucru este important deoarece serverul de autorizare trebuie să poată avea încredere în identitatea clientului pentru a emite tokenuri de acces.
Aplicațiile client publice rulează pe dispozitive, cum ar fi desktop, API-uri fără browser, aplicații de browser mobile sau pe partea clientului. Nu se poate avea încredere că păstrează în siguranță secretele aplicației, așa că pot accesa API-urile web doar în numele utilizatorului. Ori de câte ori sursa sau codul de octeți compilat al unei anumite aplicații este transmis oriunde, poate fi citit, dezasamblat sau inspectat în alt mod de părți care nu sunt de încredere. Deoarece acceptă doar fluxuri de client publice și nu pot deține secrete de timp de configurare, nu pot avea secrete de client.
Aplicațiile client confidențiale rulează pe servere, cum ar fi aplicații web, aplicații API web sau aplicații de serviciu/demon. Acestea sunt considerate dificil de accesat de către utilizatori sau atacatori și, prin urmare, pot deține în mod adecvat secrete în timpul configurării pentru a afirma dovada identității lor. ID-ul clientului este expus prin browserul web, dar secretul este transmis doar în canalul din spate și nu este niciodată expus direct.