Windows-Authentifizierung in ASP.NET Core: Manuelle Anmeldung vs. automatische Intranet-Anmeldung und verfügbare Gruppen

9

Ich habe eine ASP.NET Core 3.0-Anwendung, die mit der lokalen Intranet-Windows-Authentifizierung zusammenarbeitet, um angemeldete Benutzer zu identifizieren. Mit den Standardverhaltensweisen der Windows-Authentifizierung kann ich die Benutzer WindowsIdentityohne Probleme erfassen .

Abhängig davon, wie der Benutzer über die automatische Anmeldung im Intranet-Browser (dh ohne Dialogfeld "Kennwort") oder explizit über das Dialogfeld "Kennwort" des Browsers beim Browser angemeldet ist, erhalte ich unterschiedliche Ergebnisse für die Benutzergruppen .

Das Folgende ist eine API-Anforderung, die Benutzerinformationen einschließlich einer gefilterten Gruppenmitgliedschaftsliste (die integrierte Konten ausschließt) wiedergibt. Die linke ist eine manuelle Anmeldung, die rechte eine automatische Anmeldung.

Für die explizite Anmeldung sehe ich alle benutzerdefinierten Gruppen, zu denen der Benutzer gehört, korrekt. Bei der automatischen Anmeldung werden jedoch nicht dieselben Gruppen angezeigt:

Gruppenunterschiede für manuelle und automatische Anmeldung

Ich habe mir auch die Benutzer- und Identitätsinstanzen auf dem Server genau angesehen und sie verweisen auf genau dieselben SIDs für den Benutzer. Daher erscheint es seltsam, dass für die Gruppenmitgliedschaft unterschiedliche Ergebnisse zurückgegeben werden.

Irgendwelche Ideen, warum die Gruppenliste anders ist, wenn ich dasselbe Konto zurückerhalte? Beachten Sie, dass die Gruppen lokal sind, sodass dies aufgrund des Domänenzugriffs kein Problem darstellen sollte.

Hinweis: Ich teste sogar lokal auf localhost. Um dies zu testen, habe ich hier die Windows-Proxy-Einstellungen festgelegt:

Anmeldekonfiguration

Wenn die Kontrollkästchen deaktiviert sind, muss ich mich anmelden. Wenn sie aktiviert sind (in Chromium-Browsern sowieso), muss ich meine Anmeldeinformationen explizit in den Anmeldedialog des Browsers eingeben.

Rick Strahl
quelle

Antworten:

9

Hat sich der Benutzer von seinem Computer abgemeldet, seit er zu diesen Gruppen hinzugefügt wurde?

Die aufgelisteten Gruppen werden im Anmeldetoken des Benutzers gespeichert. Ich denke, was passieren könnte, ist, dass die automatische Anmeldung das vorhandene Anmeldetoken des Benutzers sendet (das bei der Anmeldung bei Windows erstellt wurde), sodass es keine Gruppen enthält, denen sie seit der letzten Anmeldung hinzugefügt wurden.

Die manuelle Eingabe des Benutzernamens und des Kennworts führt eine neue Anmeldung durch und erhält somit ein brandneues Token mit allen Gruppen zum Zeitpunkt der Anmeldung. Dort werden also neue Gruppen auftauchen.

Gabriel Luci
quelle
1
Nach einigen zusätzlichen Überprüfungen stellt sich heraus, dass Sie absolut korrekt sind. Anfangs dachte ich, ich hätte den Computer neu gestartet, seit die Probleme auftraten, aber nachdem ich tatsächlich ein Abmelden und Anmelden erzwungen hatte, stellte ich fest, dass ich die Gruppen tatsächlich nach dem erneuten Anmelden sehen konnte. Danke - im Nachhinein so offensichtlich und doch so leicht zu übersehen.
Rick Strahl