NameIdentifier vs ObjectIdentifier

Ich habe eine ASP.NET-Anwendung mit mehreren Mandanten, die OpenIdConnect und Azure AD als Identitätsanbieter für Office 365 verwendet. Wenn der Benutzer authentifiziert ist, erhalte ich meine Ansprüche in ClaimsPrincipal.Current.

Ich wollte einen Benutzer identifizieren und diese ID-Referenz in meiner Datenbank speichern. Ich fragtediese Frag. Es wurde geantwortet, dass

Wenn Sie versuchen, einen Benutzer eindeutig zu identifizieren, sollten Sie sich für [NameIdentifier] entscheiden.

Aber es scheint, dass dieNameIdentifier Anspruch,http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier hängt von der Anwendung ab. Wenn ich dann eine andere Anwendung in Azure AD erstelle, wird dasNameIdentifier wird nicht gleich sein für das gleicheech Office365-Benutzer. Bedenken Sie, dass wir möglicherweise ein anderes Azure AD-Manifest erstellen müssen (da wir möglicherweise andere Bereiche benötigen) und in der Lage sein sollten, dieselben Endbenutzer wiederzufinden.

ährenddessen bemerkte ich eine weitere Behauptung:ObjectIdentifier http://schemas.microsoft.com/identity/claims/objectidentifier

Es scheint, dassObjectIdentifier ist für alle Azure AD-gesicherten Anwendungen für einen bestimmten Office 365-Benutzer gleich.

annst du den Unterschied zwischen diesen beiden Behauptungen genau erklären? Und was noch wichtiger ist, können Sie bestätigen, dass dasObjectIdentifier kann als "universeller" Bezeichner für einen Benutzer in jedem Office 365-Abonnement verwendet werden.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage