Anpassen von Ansprüchen im SAML-Token für Unternehmensanwendungen

Microsoft Identity Platform unterstützt derzeit einmaliges Anmelden (Single Sign-On, SSO) für die meisten Unternehmensanwendungen, darunter auch die im Azure AD-App-Katalog integrierten Anwendungen und benutzerdefinierte Anwendungen. Wenn sich ein Benutzer mithilfe des SAML 2.0-Protokolls über Microsoft Identity Platform bei einer Anwendung authentifiziert, sendet Microsoft Identity Platform ein Token an die Anwendung (über HTTP POST). Die Anwendung überprüft und verwendet dann das Token, um den Benutzer anzumelden, anstatt den Benutzernamen und das Kennwort anzufordern. Diese SAML-Token enthalten Informationen über den Benutzer, die als Ansprüche bezeichnet werden.

Ein Anspruch (Claim) bezeichnet Informationen, die ein Identitätsanbieter über einen Benutzer in dem für diesen Benutzer ausgestellten Token angibt. Im SAML-Token sind diese Daten in der Regel in der SAML-Attributanweisung enthalten. Die eindeutige ID des Benutzers wird normalerweise im SAML-Betreff dargestellt und auch als Namensbezeichner bezeichnet.

Standardmäßig stellt Microsoft Identity Platform für die Anwendung ein SAML-Token aus, das einen NameIdentifier-Anspruch enthält, dessen Wert dem Benutzernamen (auch als Benutzerprinzipalname bezeichnet) in Azure AD entspricht, durch den der Benutzer eindeutig identifiziert werden kann. Das SAML-Token enthält außerdem weitere Ansprüche, zu denen die E-Mail-Adresse des Benutzers, Vorname und Nachname zählen.

Um die im SAML-Token für die Anwendung ausgestellten Ansprüche anzuzeigen oder zu bearbeiten, öffnen Sie die Anwendung im Azure-Portal. Öffnen Sie dann den Abschnitt Benutzerattribute und Ansprüche.

Öffnen des Abschnitts „Benutzerattribute und Ansprüche“ im Azure-Portal

Es gibt zwei Gründe dafür, dass Sie die im SAML-Token ausgegebenen Ansprüche möglicherweise bearbeiten müssen:

  • Die Anwendung erfordert, dass es sich beim NameIdentifier- oder NameID-Anspruch nicht um den in Azure AD gespeicherten Benutzernamen (oder Benutzerprinzipalnamen) handelt.
  • Die Anwendung wurde so geschrieben, dass sie einen anderen Satz an Anspruchs-URIs oder Anspruchswerten erfordert.

Bearbeiten der NameID

Gehen Sie wie folgt vor, um die NameID (den Wert für den Namensbezeichner) zu bearbeiten:

  1. Öffnen Sie die Seite Wert für Namensbezeichner.

  2. Wählen Sie das gewünschte Attribut oder die auf das Attribut anzuwendende Transformation aus. Optional können Sie auch das Format für den NameID-Anspruch angeben.

    NameID-Wert (Wert für Namensbezeichner) bearbeiten

NameID-Format

Wenn die SAML-Anforderung das NameIDPolicy-Element in einem bestimmten Format enthält, berücksichtigt Microsoft Identity Platform das Format in der Anforderung.

Wenn die SAML-Anforderung kein Element für NameIDPolicy enthält, gibt Microsoft Identity Platform die NameID in dem von Ihnen angegebenen Format aus. Wenn kein Format angegeben ist, verwendet Microsoft Identity Platform das Standardquellformat, das der ausgewählten Anspruchsquelle zugeordnet ist. Wenn eine Transformation zu einem NULL- oder ungültigen Wert führt, sendet Azure AD in nameIdentifier einen persistenten paarweisen Bezeichner.

Im Dropdownmenü Namensbezeichnerformat auswählen können Sie eine der folgenden Optionen auswählen.

NameID-Format BESCHREIBUNG
Standard Microsoft Identity Platform verwendet das Standardquellformat.
Persistent Microsoft Identity Platform verwendet „Persistent“ als NameID-Format.
E-Mail-Adresse Microsoft Identity Platform verwendet „EmailAddress“ als NameID-Format.
Nicht angegeben Microsoft Identity Platform verwendet „Unspecified“ als NameID-Format.
Qualifizierter Name der Windows-Domäne Microsoft Identity Platform verwendet das Format „WindowsDomainQualifiedName“.

Eine vorübergehende NameID wird ebenfalls unterstützt, ist jedoch im Dropdownmenü nicht verfügbar und kann in Azure nicht konfiguriert werden. Weitere Informationen zum NameIDPolicy-Attribut finden Sie unter SAML-Protokoll für einmaliges Anmelden.

Attributes

Wählen Sie die gewünschte Quelle für den Anspruch NameIdentifier (oder NameID) aus. Sie können aus folgenden Optionen auswählen:

Name BESCHREIBUNG
Email E-Mail-Adresse des Benutzers
userprincipalName Benutzerprinzipalname (User Principal Name, UPN) des Benutzers
onpremisessamaccountname Der SAM-Kontoname der aus der lokalen Azure AD-Instanz synchronisiert wurde.
objectid Objekt-ID des Benutzers in Azure AD
employeeid Mitarbeiter-ID des Benutzers
Verzeichniserweiterungen Verzeichniserweiterungen, die über die Azure AD Connect-Synchronisierung aus dem lokalen Active Directory synchronisiert wurden.
Erweiterungsattribute 1–15 Die lokalen Erweiterungsattribute, die zur Erweiterung des Azure AD-Schemas verwendet werden.
pairwiseid​ Dauerhafte Form des Benutzerbezeichners

Weitere Informationen finden Sie in Table 3: Valid ID values per source (Tabelle 3: Gültige ID-Werte pro Quelle).

Ferner können Sie Ansprüchen einen beliebigen konstanten (statischen) Wert zuweisen, den Sie in Azure AD definieren. In den Schritten unten wird beschrieben, wie Sie einen Konstantenwert zuweisen:

  1. Klicken Sie im Azure-Portal im Abschnitt Benutzerattribute und Ansprüche auf das Symbol Bearbeiten, um die Ansprüche zu bearbeiten.

  2. Klicken Sie auf den erforderlichen Anspruch, den Sie ändern möchten.

  3. Geben Sie als Quellattribut den konstanten Wert (ohne Anführungszeichen) entsprechend Ihrer Organisation ein, und klicken Sie auf Speichern.

    Abschnitt „Organisationsattribute und Ansprüche“ im Azure-Portal

  4. Der konstante Wert wird wie unten dargestellt angezeigt.

    Abschnitt „Attribute und Ansprüche bearbeiten“ im Azure-Portal

Besondere Ansprüche – Transformationen

Sie können auch die Funktionen für Anspruchstransformationen verwenden.

Funktion BESCHREIBUNG
ExtractMailPrefix() Entfernt das Domänensuffix aus der E-Mail-Adresse oder dem Benutzerprinzipalnamen. Dadurch wird nur der erste Teil des Benutzernamens übergeben (z.B. „joe_smith“ anstelle von joe_smith@contoso.com).
ToLower() Konvertiert die Zeichen des ausgewählten Attributs in Kleinbuchstaben.
ToUpper() Konvertiert die Zeichen des ausgewählten Attributs in Großbuchstaben.

Hinzufügen anwendungsspezifischer Ansprüche

Gehen Sie wie folgt vor, um anwendungsspezifische Ansprüche hinzuzufügen:

  1. Wählen Sie im Abschnitt Benutzerattribute und Ansprüche die Option Neuen Anspruch hinzufügen aus, um die Seite Benutzeransprüche verwalten zu öffnen.
  2. Geben Sie den Namen der Ansprüche ein. Der Wert muss nicht unbedingt einem URI-Muster gemäß der SAML-Spezifikation folgen. Wenn Sie ein URI-Muster benötigen, können Sie es im Feld Namespace angeben.
  3. Wählen Sie die Quelle aus, aus der der Anspruch den zugehörigen Wert abruft. Sie können ein Benutzerattribut aus der Dropdownliste für „Quellattribut“ auswählen oder eine Transformation auf das Benutzerattribut anwenden, bevor es als Anspruch ausgegeben wird.

Anspruchstransformationen

So wenden Sie eine Transformation auf ein Benutzerattribut an

  1. Wählen Sie unter Anspruch verwalten die Option Transformation als Anspruchsquelle aus, um die Seite Transformation verwalten zu öffnen.

  2. Wählen Sie in der Dropdownliste der Transformationen die Funktion aus. Abhängig von der ausgewählten Funktion müssen Sie Parameter und einen konstanten Wert angeben, die in der Transformation ausgewertet werden sollen. Weitere Informationen zu den verfügbaren Funktionen finden Sie in der folgenden Tabelle.

  3. (Vorschau) Treat source as multivalued ist ein Kontrollkästchen, das angibt, ob die Transformation auf alle Werte oder nur auf den ersten angewendet werden soll. Standardmäßig werden Transformationen nur auf das erste Element in einem Mehrwertanspruch angewendet. Durch Aktivieren dieses Kontrollkästchens stellen Sie sicher, dass sie auf alle angewendet werden. Dieses Kontrollkästchen ist nur für mehrwertige Attribute aktiviert (z. B. user.proxyaddresses).

  4. Klicken Sie auf Transformation hinzufügen, um mehrere Transformationen anzuwenden. Sie können maximal zwei Transformationen auf einen Anspruch anwenden. Beispielsweise könnten Sie zuerst das E-Mail-Präfix von user.mailextrahieren. Dann könnten Sie die Zeichenfolge in Großbuchstaben umwandeln.

    Transformieren mehrerer Ansprüche

Zum Transformieren von Ansprüchen können Sie die folgenden Funktionen verwenden.

Funktion BESCHREIBUNG
ExtractMailPrefix() Entfernt das Domänensuffix aus der E-Mail-Adresse oder dem Benutzerprinzipalnamen. Dadurch wird nur der erste Teil des Benutzernamens übergeben (z.B. „joe_smith“ anstelle von joe_smith@contoso.com).
Join() Erstellt einen neuen Wert durch Verknüpfen von zwei Attributen. Optional können Sie ein Trennzeichen zwischen den beiden Attributen verwenden. Bei der NameID-Anspruchstransformation weist die Join()-Funktion ein bestimmtes Verhalten auf, wenn die Transformationseingabe einen Domänenteil beinhaltet. Sie entfernt den Domänenteil aus der Eingabe, bevor er mit der Trennlinie und dem ausgewählten Parameter verbunden wird. Wenn die Eingabe der Transformation beispielsweise „joe_smith@contoso.com“, die Trennlinie „@“ und der Parameter „fabrikam.com“ ist, führt dies zu joe_smith@fabrikam.com.
ToLowercase() Konvertiert die Zeichen des ausgewählten Attributs in Kleinbuchstaben.
ToUppercase() Konvertiert die Zeichen des ausgewählten Attributs in Großbuchstaben.
Contains() Gibt ein Attribut oder eine Konstante aus, wenn die Eingabe dem angegebenen Wert entspricht. Andernfalls können Sie eine andere Ausgabe angeben, wenn keine Übereinstimmung vorhanden ist.
Beispiel: Sie möchten einen Anspruch ausgeben, dessen Wert die E-Mail-Adresse des Benutzers ist, wenn er die Domäne „@contoso.com“ enthält, andernfalls soll der Benutzerprinzipalname ausgegeben werden. Hierzu konfigurieren Sie die folgenden Werte:
Parameter 1 (Eingabe) : user.email
Value: „@contoso.com“
Parameter 2 (Ausgabe): user.email
Parameter 3 (Ausgabe, wenn keine Übereinstimmung vorhanden ist): user.userprincipalname
EndWith() Gibt ein Attribut oder eine Konstante aus, wenn die Eingabe mit dem angegebenen Wert endet. Andernfalls können Sie eine andere Ausgabe angeben, wenn keine Übereinstimmung vorhanden ist.
Beispiel: Sie möchten einen Anspruch ausgeben, dessen Wert der Mitarbeiter-ID des Benutzers entspricht, wenn die Mitarbeiter-ID mit „000“ endet. Andernfalls soll ein Erweiterungsattribut ausgegeben werden. Hierzu konfigurieren Sie die folgenden Werte:
Parameter 1 (Eingabe) : user.employeeid
Value: „000“
Parameter 2 (Ausgabe): user.employeeid
Parameter 3 (Ausgabe, wenn keine Übereinstimmung vorhanden ist): user.extensionattribute1
StartWith() Gibt ein Attribut oder eine Konstante aus, wenn die Eingabe mit dem angegebenen Wert beginnt. Andernfalls können Sie eine andere Ausgabe angeben, wenn keine Übereinstimmung vorhanden ist.
Beispiel: Sie möchten einen Anspruch ausgeben, bei dem der Wert der Mitarbeiter-ID des Benutzer entspricht, wenn das Land bzw. die Region mit „US“ beginnt. Andernfalls soll ein Erweiterungsattribut ausgegeben werden. Hierzu konfigurieren Sie die folgenden Werte:
Parameter 1 (Eingabe) : user.country
Value: „US“
Parameter 2 (Ausgabe): user.employeeid
Parameter 3 (Ausgabe, wenn keine Übereinstimmung vorhanden ist): user.extensionattribute1
Extract() – nach dem Abgleich Gibt die Teilzeichenfolge bei Übereinstimmung mit dem angegebenen Wert zurück.
Beispiel: Wenn der Eingabewert „Finance_BSimon“ und der übereinstimmende Wert „Finance_“ ist, dann lautet die Ausgabe des Anspruchs „BSimon“.
Extract() – vor dem Abgleich Gibt die Teilzeichenfolge zurück, bis sie mit dem angegebenen Wert übereinstimmt.
Beispiel: Wenn der Eingabewert „BSimon_US“ und der übereinstimmende Wert „_US“ ist, dann lautet die Ausgabe des Anspruchs „BSimon“.
Extract() – zwischen Abgleichen Gibt die Teilzeichenfolge zurück, bis sie mit dem angegebenen Wert übereinstimmt.
Beispiel: Wenn der Eingabewert „Finance_BSimon_US“ ist, der erste übereinstimmende Wert „Finance_“ und der zweite übereinstimmende Wert „_US“ lautet, dann ist die Ausgabe des Anspruchs „BSimon“.
ExtractAlpha() – Präfix Gibt den alphabetischen Teil des Präfixes der Zeichenfolge zurück.
Beispiel: Wenn der Eingabewert „BSimon_123“ lautet, wird „BSimon“ zurückgegeben.
ExtractAlpha() – Suffix Gibt den alphabetischen Teil des Suffixes der Zeichenfolge zurück.
Beispiel: Wenn der Eingabewert „123_Simon“ lautet, wird „Simon“ zurückgegeben.
ExtractNumeric() – Präfix Gibt den numerischen Teil des Präfixes der Zeichenfolge zurück.
Beispiel: Wenn der Eingabewert „123_BSimon“ lautet, wird „123“ zurückgegeben.
ExtractNumeric() – Suffix Gibt den numerischen Teil des Suffixes der Zeichenfolge zurück.
Beispiel: Wenn der Eingabewert „BSimon_123“ lautet, wird „123“ zurückgegeben.
IfEmpty() Gibt ein Attribut oder eine Konstante aus, wenn die Eingabe null oder leer ist.
Beispiel: Sie möchten ein in einem Erweiterungsattribut (extensionattribute) gespeichertes Attribut ausgeben, wenn die Mitarbeiter-ID für einen bestimmten Benutzer leer ist. Hierzu konfigurieren Sie die folgenden Werte:
Parameter 1 (Eingabe): user.employeeid
Parameter 2 (Ausgabe): user.extensionattribute1
Parameter 3 (Ausgabe, wenn keine Übereinstimmung vorhanden ist): user.employeeid
IfNotEmpty() Gibt ein Attribut oder eine Konstante aus, wenn die Eingabe nicht null oder leer ist.
Beispiel: Sie möchten ein in einem Erweiterungsattribut (extensionattribute) gespeichertes Attribut ausgeben, wenn die Mitarbeiter-ID für einen bestimmten Benutzer nicht leer ist. Hierzu konfigurieren Sie die folgenden Werte:
Parameter 1 (Eingabe): user.employeeid
Parameter 2 (Ausgabe): user.extensionattribute1
Substring() – Feste Länge (Vorschau) Extrahiert Teile eines Zeichenfolgenanspruchstyps ab dem Zeichen an der angegebenen Position und gibt die angegebene Anzahl von Zeichen zurück.
SourceClaim: Die Anspruchsquelle, die die Transformation ausführen soll.
StartIndex: Die nullbasierte Anfangsposition einer Teilzeichenfolge in dieser Instanz.
Length: Die Länge der Teilzeichenfolge in Zeichen.
Beispiel:
sourceClaim – PleaseExtractThisNow
StartIndex – 6
Länge – 11
Output: ExtractThis
Substring() – EndOfString (Vorschau) Extrahiert Teile eines Zeichenfolgenanspruchstyps ab dem Zeichen an der angegebenen Position und gibt den Rest des Anspruchs vom angegebenen StartIndex-Wert zurück.
SourceClaim: Die Anspruchsquelle, die die Transformation ausführen soll.
StartIndex: Die nullbasierte Anfangsposition einer Teilzeichenfolge in dieser Instanz.
Beispiel:
sourceClaim – PleaseExtractThisNow
StartIndex – 6
Output: ExtractThisNow
RegexReplace() (Vorschau) Die RegexReplace()-Transformation akzeptiert diese Werte als Eingabeparameter:
– Parameter 1: ein Benutzerattribut als RegEx-Eingabe
– Eine Option zum Vertrauen der mehrwertigen Quelle
– RegEx-Muster
– Ersetzungsmuster Das Ersetzungsmuster kann statisches Textformat zusammen mit einem Verweis auf Regex-Ausgabegruppen und zusätzliche Eingabeparameter enthalten.

Weitere Anweisungen zur Verwendung der RegexReplace()-Transformation sind unten beschrieben.

Wenn Sie zusätzliche Transformationen benötigen, senden Sie Ihre Vorschläge an das Azure AD-Feedbackforum. Verwenden Sie dort die Kategorie SaaS-Anwendung.

Verwenden der RegexReplace()-Transformation

Screenshot der Abbildung zur RegexReplace()-Transformation.

  1. Wählen Sie die Schaltfläche „Bearbeiten“ (Stiftsymbol) aus, um das Blatt für die Anspruchstransformation zu öffnen.

  2. Wählen Sie aus den Optionen „Transformation“ die Option „RegexReplace()“ aus, um die RegEx-basierte Anspruchstransformationsmethode für die Anspruchstransformation zu verwenden.

  3. „Parameter 1“ ist das Quellbenutzer-Eingabeattribut, das eine Eingabe für die Transformation regulärer Ausdrücke darstellt. „user.mail“ ergibt beispielsweise die E-Mail-Adresse des Benutzers, etwa admin@contoso.com.

  4. Einige Eingabebenutzerattribute können mehrwertige Benutzerattribute sein. Wenn das ausgewählte Benutzerattribut mehrere Werte unterstützt und der Benutzer mehrere Werte für die Transformation verwenden möchte, muss er das Kontrollkästchen „Quelle als mehrwertige Quelle behandeln“ aktivieren. Wenn der Administrator das Kontrollkästchen aktiviert, werden alle Werte für den RegEx-Abgleich verwendet, andernfalls wird nur der erste Wert verwendet.

  5. Das Textfeld für das „RegEx-Muster“ akzeptiert einen regulären Ausdruck, der anhand des Werts des als „Parameter 1“ ausgewählten Benutzerattributs ausgewertet wird. Ein regulärer Ausdruck zum Extrahieren des Benutzeralias aus der E-Mail-Adresse des Benutzers würde z. B. „(?'domain'^.*?) (?i)(@contoso.com)$“ lauten.

  6. Mithilfe der Schaltfläche „Zusätzliche Parameter hinzufügen“ kann ein Administrator weitere Benutzerattribute auswählen, die für die Transformation verwendet werden können. Die Werte der zusätzlichen Attribute würden dann mit der RegEx-Transformationsausgabe zusammengeführt. Aktuell werden bis zu fünf zusätzliche Parameter unterstützt.

    Zur Veranschaulichung verwenden wir das Attribut „user.country“ als Eingabeparameter. Der Wert dieses Attributs ist „US“. Zum Zusammenführen im Ersetzungsmuster muss der Administrator innerhalb des Ersetzungsmusters darauf als „{country}“ verweisen. Nachdem der Administrator das Benutzerattribut für den Parameter ausgewählt hat, erläutert ein Info-Popup für den Parameter, wie der Parameter innerhalb des Ersetzungsmusters verwendet werden kann.
    Screenshot der Abbildung zum RegexReplace()-Info-Popup.

  7. Das Textfeld „Ersetzungsmuster“ akzeptiert das Ersetzungsmuster. Das Ersetzungsmuster ist die Textvorlage, die Platzhalter für den Namen der RegEx-Ergebnisgruppe, den Namen der Eingabeparametergruppe und den statischen Textwert enthält. Alle Gruppennamen müssen in geschweifte Klammern eingeschlossen sein, z. B. {group-name}. Angenommen, der Administrator möchte den Benutzeralias mit einem anderen Domänennamen (etwa xyz.com) verwenden und den Ländernamen damit zusammenführen. In diesem Fall wäre das Ersetzungsmuster „{country}.{domain}@xyz.com“. Dabei steht „{country}“ für den Wert des Eingabeparameters und „{domain}“ für die Gruppenausgabe der Auswertung regulärer Ausdrücke. In diesem Fall wäre das erwartete Ergebnis „US.swmal@xyz.com“.

  8. Die RegexReplace()-Transformation wird nur ausgewertet, wenn der Wert des ausgewählten Benutzerattributs für „Parameter 1“ mit dem regulären Ausdruck übereinstimmt, der im Textfeld „RegEx-Muster“ angegeben ist. Stimmen die Werte nicht überein, wird dem Token der Standardanspruchswert hinzugefügt. Um den regulären Ausdruck anhand des Eingabeparameterwerts zu überprüfen, steht eine Testumgebung auf dem Transformationsblatt zur Verfügung. Diese Testumgebung funktioniert nur für Dummywerte. Wenn zusätzliche Eingabeparameter verwendet werden, wird dem Testergebnis der Name des Parameters anstelle des tatsächlichen Werts hinzugefügt. Sie sehen eine Beispielausgabe unter Punkt 18. Um auf den Testabschnitt zuzugreifen, kann ein Administrator die Schaltfläche „Testtransformation“ auswählen. Screenshot der RegexReplace()-Testtransformation.

  9. RegEx-basierte Anspruchstransformationen sind nicht auf die erste Transformation beschränkt und können auch als Transformation der zweiten Ebene verwendet werden. Jede andere Transformationsmethode kann als erste Transformation verwendet werden.

  10. Wenn „RegexReplace()“ als Transformation der zweiten Ebene ausgewählt wird, wird die Ausgabe der Transformation der ersten Ebene als Eingabe für die Transformation der zweiten Ebene verwendet. Der RegEx-Ausdruck der zweiten Ebene muss der Ausgabe der ersten Transformation entsprechen, andernfalls wird keine Transformation angewendet.

  11. Ebenso wie in Punkt 5 oben ist „Regex-Muster“ der reguläre Ausdruck für die Transformation der zweiten Ebene.

  12. Dies sind die Eingabebenutzerattribute für die Transformationen der zweiten Ebene.

  13. Administratoren können den ausgewählten Eingabeparameter löschen, wenn sie ihn nicht mehr benötigen.

  14. Sobald der Administrator auf „Testtransformation“ klickt, wird der Abschnitt „Testtransformation“ angezeigt, und die Schaltfläche „Testtransformation“ wird ausgeblendet.

  15. Wählen Sie die Schaltfläche „Schließen“ (X) aus, um den Testabschnitt auszublenden und die Schaltfläche „Testtransformation“ wieder auf dem Blatt anzuzeigen.

  16. Das Textfeld „RegEx-Testeingabe“ akzeptiert die Dummy-Eingabe, die als Eingabe für die Testauswertung des regulären Ausdrucks verwendet wird. Falls die RegEx-basierte Anspruchstransformation als Transformation der zweiten Ebene konfiguriert ist, müssen Administratoren einen Dummywert angeben, der die erwartete Ausgabe der ersten Transformation darstellt.

  17. Nachdem der Administrator die RegEx-Eingabe für den Test bereitgestellt und „RegEx-Muster“, „Ersetzungsmuster“ und „Eingabeparameter“ konfiguriert hat, kann er den Ausdruck auswerten, indem er auf die Schaltfläche „Test ausführen“ klickt.

  18. Wenn die Auswertung erfolgreich war, wird eine Ausgabe der Testtransformation mit der Bezeichnung „Testtransformationsergebnis“ gerendert.

  19. Der Administrator kann die Transformation der zweiten Ebene mithilfe der Schaltfläche „Transformation entfernen“ entfernen.

  20. Wenn ein RegEx-Eingabewert für „Parameter 1“ konfiguriert wird, der nicht mit „Regulärer Ausdruck“ übereinstimmt, wird die Transformation übersprungen. In solchen Fällen kann der Administrator das alternative Benutzerattribut konfigurieren, das dem Token für den Anspruch hinzugefügt wird, indem er das Kontrollkästchen „Ausgabe angeben, wenn keine Übereinstimmung vorliegt“ aktiviert.

  21. Wenn ein Administrator ein alternatives Benutzerattribut zurückgeben möchte, wenn keine Übereinstimmung vorliegt, und er das Kontrollkästchen „Ausgabe angeben, wenn keine Übereinstimmung vorliegt“ aktiviert hat, kann er das zu verwendende alternative Benutzerattribut mithilfe des Dropdownmenüs auswählen. Dieses Dropdownmenü ist für „Parameter 3 (Ausgabe bei Nichtübereinstimmung)“ verfügbar.

  22. Am unteren Rand des Blatts wird eine vollständige Zusammenfassung des Formats angezeigt, die die Bedeutung der Transformation in einfachem Text erläutert.

  23. Sobald der Administrator mit den Konfigurationseinstellungen für die Transformation zufrieden ist, kann er sie in einer Anspruchsrichtlinie speichern, indem er die Schaltfläche „Hinzufügen“ auswählt. Änderungen werden jedoch erst gespeichert, wenn der Administrator manuell die Symbolleistenschaltfläche „Speichern“ auswählt, die auf dem Blatt „Anspruch verwalten“ verfügbar ist.

Die RegexReplace()-Transformation ist auch für Gruppenanspruchstransformationen verfügbar. Screenshot der RegexReplace()-Gruppenanspruchstransformation.

RegexReplace()-Transformationsüberprüfungen

Eingabeparameter mit doppelten Benutzerattributen sind nicht zulässig. Wenn doppelte Benutzerattribute ausgewählt werden, wird die folgende Überprüfungsnachricht angezeigt, nachdem der Administrator die Schaltfläche „Hinzufügen“ oder „Test ausführen“ ausgewählt hat.

Screenshot der RegexReplace()-Überprüfung auf doppelte Benutzer.

Wenn nicht verwendete Eingabeparameter gefunden werden, wird nach dem Klicken auf „Hinzufügen“ und „Test ausführen“ die folgende Meldung gerendert. Definierte Eingabeparameter sollten eine entsprechende Verwendung im Text des Ersetzungsmusters aufweisen.

Screenshot der RegexReplace()-Überprüfung der Eingabeparameter.

Wenn die angegebene Regex-Eingabe für den Test nicht mit dem angegebenen regulären Ausdruck übereinstimmt, wird in der Testumgebung die folgende Meldung angezeigt. Für diese Überprüfung ist ein Eingabewert erforderlich, daher wird sie nicht angewendet, wenn der Benutzer auf die Schaltfläche „Hinzufügen“ klickt.

Screenshot der RegexReplace()-Überprüfung auf Fehler beim regulären Ausdruck im Test-Regex.

Wenn die Quelle für die Gruppen für das Ersetzungsmuster nicht gefunden wird, erhält der Benutzer in der Testumgebung die folgende Meldung. Diese Überprüfung wird nicht angewendet, wenn der Benutzer auf die Schaltfläche „Hinzufügen“ klickt.

Screenshot der RegexReplace()-Überprüfung auf nicht gefundene Gruppen im Test-Regex.

Hinzufügen des UPN-Anspruchs zu SAML-Token

Der http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn-Anspruch ist Teil des eingeschränkten SAML-Anspruchssatzes und kann nicht im Abschnitt Benutzerattribute und Ansprüche hinzugefügt werden. Er kann allerdings im Azure-Portal über App-Registrierungen als optionaler Anspruch hinzugefügt werden.

Öffnen Sie die App unter App-Registrierungen. Wählen Sie Tokenkonfiguration und dann Optionalen Anspruch hinzufügen aus. Wählen Sie den Tokentyp SAML und dann UPN in der Liste aus. Klicken Sie auf Hinzufügen, um den Anspruch im Token zu erhalten.

Ausgeben von Ansprüchen aufgrund von Bedingungen

Sie können die Anspruchsquelle auf Basis des Benutzertyps und der Gruppe, zu der der Benutzer gehört, angeben.

Folgende Benutzertypen stehen zur Auswahl:

  • Alle: Alle Benutzer dürfen auf die Anwendung zugreifen.
  • Mitglieder: Native Mitglieder des Mandanten
  • Alle Gäste: Der Benutzer stammt aus einer externen Organisation mit oder ohne Azure AD.
  • AAD-Gäste: Der Gastbenutzer gehört zu einer anderen Organisation, die Azure AD verwendet.
  • Externe Gäste: Der Gastbenutzer gehört zu einer externen Organisation, die nicht über Azure AD verfügt.

Diese Option ist hilfreich bei einem Szenario, bei dem sich die Anspruchsquelle für einen Gast und einen Mitarbeiter, die auf eine Anwendung zugreifen, unterscheidet. Sie könnten beispielsweise angeben, dass die NameID von „user.email“ abgerufen wird, wenn der Benutzer ein Mitarbeiter ist, oder von „user.extensionattribute1“, wenn der Benutzer ein Gast ist.

So fügen Sie eine Anspruchsbedingung hinzu

  1. Erweitern Sie unter Anspruch verwalten die Anspruchsbedingungen.
  2. Wählen Sie den Benutzertyp aus.
  3. Wählen Sie die Gruppe(n) aus, zu der bzw. denen der Benutzer gehören soll. Sie können übergreifend über alle Ansprüche für eine bestimmte Anwendung bis zu 50 eindeutige Gruppen auswählen.
  4. Wählen Sie die Quelle aus, aus der der Anspruch den zugehörigen Wert abruft. Sie können ein Benutzerattribut aus der Dropdownliste für „Quellattribut“ auswählen oder eine Transformation auf das Benutzerattribut anwenden, bevor es als Anspruch ausgegeben wird.

Die Reihenfolge, in der Sie die Bedingungen hinzufügen, spielt eine wichtige Rolle. Azure AD wertet zuerst alle Bedingungen mit der Quelle Attribute und dann alle Bedingungen mit der Quelle Transformation aus, um zu entscheiden, welcher Wert im Anspruch ausgegeben werden soll. Bedingungen mit derselben Quelle werden von oben nach unten ausgewertet. Der letzte Wert, der mit dem Ausdruck übereinstimmt, wird im Anspruch ausgegeben. Transformationen wie IsNotEmpty und Contains fungieren wie zusätzliche Einschränkungen.

Beispiel: Britta Simon ist Gastbenutzer im Contoso-Mandanten. Britta gehört zu einer anderen Organisation, die ebenfalls Azure AD verwendet. Wenn Britta bei der unten abgebildeten Konfiguration für die Fabrikam-Anwendung versucht, sich bei Fabrikam anzumelden, wertet Microsoft Identity Platform die Bedingungen wie folgt aus.

Zuerst überprüft Microsoft Identity Platform, ob der Benutzertyp von Britta Alle Gäste lautet. Da dies der Fall ist, weist Microsoft Identity Platform anschließend user.extensionattribute1 die Quelle für den Anspruch zu. Zweitens überprüft Microsoft Identity Platform, ob der Benutzertyp von Britta AAD-Gäste lautet. Da dies ebenfalls zutrifft, weist Microsoft Identity Platform user.mail die Quelle für den Anspruch zu. Abschließend wird der Anspruch mit dem Wert user.mail für Britta ausgegeben.

Screenshot der bedingten Konfiguration von Ansprüchen.

Ein weiteres Beispiel: Britta Simon versucht, sich anzumelden, und sie verwendet die folgende Konfiguration. Azure AD wertet zuerst alle Bedingungen mit der Quelle Attribute aus. Da der Benutzertyp von Britta AAD-Gäste ist, wird user.mail als Quelle für den Anspruch zugewiesen. Als Nächstes wertet Azure AD die Transformationen aus. Da Britta Gast ist, ist user.extensionattribute1 jetzt die neue Quelle für den Anspruch. Da Britta sich in AAD-Gäste befindet, ist user.othermail jetzt die neue Quelle für diesen Anspruch. Abschließend wird der Anspruch mit dem Wert user.othermail für Britta ausgegeben.

Screenshot der bedingten Konfiguration weiterer Ansprüche.

Als letztes Beispiel betrachten wir, was geschieht, wenn Britta den Wert user.othermail nicht konfiguriert hat oder dieser leer ist. In beiden Fällen wird der Bedingungseintrag ignoriert, und der Anspruch verwendet stattdessen user.extensionattribute1.

Erweiterte SAML-Anspruchsoptionen

In der folgenden Tabelle sind erweiterte Optionen aufgeführt, die für eine Anwendung konfiguriert werden können.

Option BESCHREIBUNG
Anwendungs-ID an Aussteller anfügen Fügt dem Ausstelleranspruch automatisch die Anwendungs-ID hinzu. Diese Option stellt einen eindeutigen Anspruchswert für jede Instanz sicher, wenn mehrere Instanzen derselben Anwendung vorhanden sind. Diese Einstellung wird ignoriert, wenn kein benutzerdefinierter Signaturschlüssel für die Anwendung konfiguriert ist.
Zielgruppenanspruch überschreiben Ermöglicht die Außerkraftsetzung des Zielgruppenanspruchs, der an die Anwendung gesendet wird. Der bereitgestellte Wert muss ein gültiger absoluter URI sein. Diese Einstellung wird ignoriert, wenn kein benutzerdefinierter Signaturschlüssel für die Anwendung konfiguriert ist.
Format des Attributnamens einschließen Falls ausgewählt, fügt Azure Active Directory ein zusätzliches Attribut namens NameFormat hinzu, das das Format des Namens für eingeschränkte, zentrale und optionale Ansprüche für die Anwendung beschreibt. Weitere Informationen finden Sie unter Richtlinientyp für die Anspruchszuordnung.

Nächste Schritte