Ne cerem scuze în avans dacă această întrebare este mai potrivită pe un alt site StackExchange; aceasta a fost cea mai bună alegere.
fundal
Am o aplicație web (.NET Framework, ASP.NET Web Forms și MVC) care rulează pe IIS (orice versiune). Aplicația nu are logică de autentificare, în schimb se bazează doar pe IIS configurat pentru autentificare Windows (Negociare); apoi aplicația face referire la HttpContext.Current.User.Identity.Name pentru a prelua utilizatorul Windows.
Am fost însărcinat să adaug MFA la fluxul de conectare, dar am lovit un blocaj dacă acest lucru este chiar posibil. Mai jos este înțelegerea mea actuală și de ce cred că nu este posibil; întrebarea mea este dacă am omis ceva.
Obiective:
- Când un utilizator final se conectează la aplicație, este necesară o verificare a autentificării cu un al doilea factor
- Nicio modificare a nivelului de aplicație
Înțelegerea curentă:
- Cu autentificarea Windows, utilizatorul este deja autentificat, iar provocarea de la IIS este doar să includă jetonul de autentificare curent împreună cu cererea
- IIS avea o opțiune de a întrerupe acest flux și de a redirecționa către provocarea MFA prin serverul MFA al Microsoft, dar acesta a fost întrerupt și nu mai este disponibil.
- Nu există alte opțiuni disponibile în prezent pentru a întrerupe fluxul de autentificare IIS
- Opțiunea potențială #1 - Aplicația de reluare pentru a include logica de autentificare (cel mai probabil către OAuth / OpenID Connect) și pentru a invoca provocarea MFA în acel moment
- Opțiunea potențială #2 - Plasați un proxy de aplicație între utilizatorul final și aplicație; proxy-ul aplicației ar necesita autentificare plus MFA și apoi redirecționare către aplicație.
Sunt în punctul în care știu suficient ca să știu că nu știu suficient, dar îmi lipsește ce să mai înțeleg pentru a săpa mai departe.
Este corectă înțelegerea mea despre autentificarea Windows și despre opțiunile disponibile pentru a obține MFA sau mai există ceva ce îmi lipsește care mă va ajuta să merg mai departe?