0

In System.IdentityModel.Claims gibt es drei Einträge: UPN, Name und Nameidentifier "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name" "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn" "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier"Ansprüche: Differenz zwischen UPN, Namen mit Azure AD

Während des Debuggens nach der Authentifizierung mit AzureAD, OpenIdConnect und Office365. Ich sehe, dass Name und Upn immer gleich sind, etwas, das wie die "E-Mail" eines gegebenen Benutzers aussieht: z.B. [email protected] oder [email protected] , während die Namenskennung eine nicht von Menschen lesbare Kennung ist.

Dann, ich ein paar Fragen:

1) Ist ‚Name‘ und ‚UPN‘ immer gleich in meinem Zusammenhang sein?

2) Sind sie veränderbar? Wir sehen, dass der Domainname im Namen (oder upn) vorhanden ist, bedeutet dies, dass, wenn contoso.com von rototo.com erworben wird, der Name und upn geändert werden könnten? Oder ähnlich, wenn das Unternehmen sein Office365-Abonnement ohne einen benutzerdefinierten Domänennamen gestartet hat, aber später entscheiden sie sich für eins? Die Werte dieser Ansprüche können sich ändern?

3) Es bezieht sich auf 2) aber ist NameIdentifier die einzige sichere Möglichkeit, einen Verweis auf einen bestimmten Benutzer zu erhalten? Zum Beispiel um als Fremdschlüssel in der Datenbank zu speichern?

Antwort

2
  1. UPN ist der Benutzerprinzipalname. Es ist immer im Format, das wie eine E-Mail-Adresse aussieht. Im Wesentlichen hat es 3 Teile. Name des Benutzerkontos, Trennzeichen (z. B. @ Symbol) und UPN-Suffix oder Domänenname. Sein Hauptzweck ist während der Authentifizierung zu verwenden. Wohingegen der Name für Anzeigezwecke sein soll. Der Name und UPN können gleich oder verschieden sein. Abhängig von Ihrem Ziel sollten Sie eins gegen das andere verwenden.

Siehe User Name Formats

  1. Die ersten Antworten auf die zweite Frage zu einem gewissen Teil. UPN wird basierend auf der Domain geändert. Domain ist das UPN-Suffix. Der Name ist der Anzeigename und darf sich nur ändern, wenn Sie die Regeln beim Migrieren von AD-Benutzern von einer Domäne zu einer anderen angeben.

  2. NameIdentifier ist der eindeutige "SAML Name Identifier des Benutzers". Mit anderen Worten, es ist nur die ID des Benutzerobjekts. Zweck: Wenn Sie versuchen, einen Benutzer eindeutig zu identifizieren, sollte dies Ihre erste Wahl sein.

Siehe:

+0

Ich sah die "früher" Frage, aber es war nicht klar, ob die UPN "wandelbar" war ... Danke. –

+0

Ich habe eine andere verwandte Frage http://stackoverflow.com/questions/36747534/nameidentifier-vs-objectidentifier erstellt –