Autenticazione di Windows in ASP.NET Core: accesso manuale vs. accesso intranet automatico e gruppi disponibili


9

Ho un'applicazione ASP.NET Core 3.0 che funziona con l'autenticazione Windows Intranet locale per identificare gli utenti che hanno effettuato l'accesso. Usando i comportamenti standard di autenticazione di Windows sono in grado di catturare l'utente WindowsIdentitysenza problemi.

Tuttavia, a seconda di come l'utente ha effettuato l'accesso al browser utilizzando l'accesso automatico al browser Intranet (ovvero nessuna finestra di dialogo per la password) o l'accesso esplicito mediante la finestra di dialogo Password del browser, ottengo risultati diversi per i gruppi dell'utente .

Quella che segue è una richiesta API che recupera le informazioni dell'utente, incluso un elenco di appartenenze al gruppo filtrato (che esclude gli account integrati). Quello a sinistra è un accesso manuale, quello a destra un accesso automatico.

Per il login esplicito vedo correttamente tutti i gruppi personalizzati di cui l'utente fa parte. Tuttavia, per l'accesso automatico, quegli stessi gruppi non vengono visualizzati:

differenze di gruppo per l'accesso manuale o automatico

Ho anche dato un'occhiata ravvicinata alle istanze di User e Identity sul server e fa riferimento agli stessi identici SID per l'utente, quindi sembra strano che vengano restituiti risultati diversi per l'iscrizione al gruppo.

Qualche idea sul perché l'elenco dei gruppi sia diverso quando ricevo lo stesso account restituito? Nota che i gruppi sono locali, quindi non dovrebbe essere un problema a causa dell'accesso al dominio.

Nota: sto testando localmente anche su localhost e per testare ho impostato qui le impostazioni proxy di Windows:

Configurazione di accesso

Senza le caselle di controllo sono costretto ad accedere. Con loro su (nei browser Chromium) devo inserire esplicitamente le mie credenziali nella finestra di dialogo di accesso del browser.

Risposte:


9

L'utente si è disconnesso dal proprio computer da quando è stato aggiunto a quei gruppi?

I gruppi elencati sono mantenuti nel token di accesso dell'utente. Penso che ciò che potrebbe accadere è che il login automatico invia il token di accesso esistente dell'utente (creato quando hanno effettuato l'accesso a Windows), quindi non conterrebbe alcun gruppo a cui sono stati aggiunti dall'ultimo accesso.

L'immissione manuale di nome utente e password esegue un nuovo accesso e quindi ottiene un nuovo token con tutti i gruppi al momento dell'accesso. Quindi nuovi gruppi appariranno lì.


1
Dopo qualche controllo aggiuntivo risulta che hai assolutamente ragione. Inizialmente pensavo di aver riavviato la macchina da quando i problemi hanno mostrato, ma dopo aver forzato in realtà una disconnessione e l'accesso, ho scoperto che effettivamente dopo aver effettuato nuovamente l'accesso sono stato in grado di vedere i gruppi. Grazie - così ovvio in retrospettiva ma ancora così facile da perdere.
Rick Strahl,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.