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

Microsoft Identity Platform unterstützt einmaliges Anmelden (Single Sign-On, SSO) für die meisten Unternehmensanwendungen, darunter auch die im Azure AD-Anwendungskatalog (Azure Active Directory) 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. 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. In einem SAML-Token sind Anspruchsdaten in der Regel in der SAML-Attributanweisung enthalten. Die eindeutige ID des Benutzers wird normalerweise im SAML-Betreff dargestellt und auch als Namensbezeichner (nameID) bezeichnet.

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

Anzeigen oder Bearbeiten von Ansprüchen

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 Attribute und Ansprüche.

Screenshot: Öffnen des Abschnitts „Attribute 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 von 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.

    Screenshot: Bearbeiten des NameID-Werts (Namensbezeichner) im Azure-Portal

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-Wert oder einem ungültigen Wert führt, sendet Azure AD in nameIdentifier einen persistenten paarweisen Bezeichner.

Wählen Sie im Dropdownmenü Namensbezeichnerformat auswählen eine der Optionen in der folgenden Tabelle aus:

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 zu Bezeichnerwerten finden Sie unter Tabelle 3: Gültige ID-Werte pro Quelle.

Jeder Konstantenwert (statischer Wert) kann beliebigen, in Azure AD definierten Ansprüchen zugewiesen werden. In den folgenden Schritten wird beschrieben, wie Sie einen Konstantenwert zuweisen:

  1. Wählen Sie im Azure-Portal im Abschnitt Benutzerattribute und Ansprüche das Symbol Bearbeiten aus, um die Ansprüche zu bearbeiten.

  2. Wählen Sie den erforderlichen Anspruch aus, 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.

    Screenshot: Abschnitt „Attribute und Ansprüche“ der Organisation im Azure-Portal

  4. Der Konstantenwert wird wie in der folgenden Abbildung dargestellt angezeigt:

    Screenshot: Bearbeiten des Abschnitts „Attribute und Ansprüche“ im Azure-Portal

Transformationen besonderer Ansprüche

Sie können die folgenden Funktionen für die Transformation besonderer Ansprüche verwenden:

Funktion BESCHREIBUNG
ExtractMailPrefix() Entfernt das Domänensuffix aus der E-Mail-Adresse oder dem Benutzerprinzipalnamen. Mit dieser Funktion 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. Quelle als mehrwertige Quelle behandeln 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 wird 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.

    Screenshot: Anspruchstransformation

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. Mit dieser Funktion 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 sie 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 diese Eingabekombination 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. Konfigurieren Sie zum Ausführen dieser Funktion 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. Konfigurieren Sie zum Ausführen dieser Funktion 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. Konfigurieren Sie zum Ausführen dieser Funktion 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. Konfigurieren Sie zum Ausführen dieser Funktion 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 leer ist. Konfigurieren Sie zum Ausführen dieser Funktion 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 der Transformation, die ausgeführt werden soll
StartIndex: Die nullbasierte Anfangsposition einer Teilzeichenfolge in dieser Instanz.
Length: Die Länge der Teilzeichenfolge in Zeichen.
Beispiel:
sourceClaim: PleaseExtractThisNow
StartIndex: 6
Length: 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 der Transformation, die ausgeführt werden 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 finden Sie weiter unten in diesem Artikel.

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

RegEx-basierte Anspruchstransformation

Die folgende Abbildung zeigt ein Beispiel für die Transformation der ersten Ebene:

Screenshot: Transformation der ersten Ebene

Die folgende Tabelle enthält Informationen zur Transformation der ersten Ebene. Die in der Tabelle aufgeführten Aktionen entsprechen den Bezeichnungen in der vorherigen Abbildung. Wählen Sie Bearbeiten aus, um das Blatt für die Anspruchstransformation zu öffnen.

Aktion Feld BESCHREIBUNG
1 Transformation Wählen Sie aus den Optionen Transformation die Option RegexReplace() aus, um die RegEx-basierte Anspruchstransformationsmethode für die Anspruchstransformation zu verwenden.
2 Parameter 1 Die Eingabe für die Transformation regulärer Ausdrücke. „user.mail“ ergibt beispielsweise die E-Mail-Adresse des Benutzers, etwa admin@fabrikam.com.
3 Quelle als mehrwertige Quelle behandeln 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 Quelle als mehrwertige Quelle behandeln auswählen. Wenn diese Option ausgewählt ist, werden alle Werte für die RegEx-Übereinstimmung verwendet, andernfalls wird nur der erste Wert verwendet.
4 RegEx-Muster Ein regulärer 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)(\@fabrikam\.com)$ lauten.
5 Hinzufügen eines zusätzlichen Parameters Für die Transformation können mehrere Benutzerattribute verwendet werden. Die Werte der Attribute würden dann mit der RegEx-Transformationsausgabe zusammengeführt. Es werden bis zu fünf zusätzliche Parameter unterstützt.
6 Ersetzungsmuster Das Ersetzungsmuster ist die Textvorlage, die Platzhalter für RegEx-Ergebnisse 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 ist das erwartete Ergebnis US.swmal@xyz.com.

Die folgende Abbildung zeigt ein Beispiel für die Transformation der zweiten Ebene:

Screenshot: Transformation der zweiten Ebene

Die folgende Tabelle enthält Informationen zur Transformation der zweiten Ebene. Die in der Tabelle aufgeführten Aktionen entsprechen den Bezeichnungen in der vorherigen Abbildung.

Aktion Feld BESCHREIBUNG
1 Transformation 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.
2 Parameter 1 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.
3 RegEx-Muster RegEx-Muster ist der reguläre Ausdruck für die Transformation der zweiten Ebene.
4 Parametereingabe Benutzerattributeingaben für die Transformationen der zweiten Ebene.
5 Parametereingabe Administratoren können den ausgewählten Eingabeparameter löschen, wenn sie ihn nicht mehr benötigen.
6 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 ist das erwartete Ergebnis US.swmal@xyz.com.
7 Testen der Transformation 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. Um auf den Testabschnitt zuzugreifen, wählen Sie Testtransformation aus.

Die folgende Abbildung zeigt ein Beispiel zum Testen der Transformationen:

Screenshot: Testen der Transformation

Die folgende Tabelle enthält Informationen zum Testen der Transformationen. Die in der Tabelle aufgeführten Aktionen entsprechen den Bezeichnungen in der vorherigen Abbildung.

Aktion Feld BESCHREIBUNG
1 Testen der Transformation Wählen Sie die Schaltfläche „Schließen“ (X) aus, um den Testabschnitt auszublenden und die Schaltfläche Testtransformation wieder auf dem Blatt anzuzeigen.
2 RegEx-Testeingabe Akzeptiert die Eingabe, die für die Testauswertung des regulären Ausdrucks verwendet wird. Falls die RegEx-basierte Anspruchstransformation als Transformation der zweiten Ebene konfiguriert ist, wird ein Wert angegeben, der die erwartete Ausgabe der ersten Transformation darstellt.
3 Durchführen des Tests Nachdem die RegEx-Testeingabe bereitgestellt und das RegEx-Muster, das Ersetzungsmuster und die Eingabeparameter konfiguriert wurden, kann der Ausdruck durch Auswählen von Test ausführen ausgewertet werden.
4 Testtransformationsergebnis Wenn die Auswertung erfolgreich war, wird eine Ausgabe der Testtransformation mit der Bezeichnung Testtransformationsergebnis gerendert.
5 Transformation entfernen Die Transformation der zweiten Ebene kann entfernt werden, indem Sie Transformation entfernen auswählen.
6 Ausgabe angeben, wenn keine Übereinstimmung vorliegt 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 können Sie das alternative Benutzerattribut konfigurieren, das dem Token für den Anspruch hinzugefügt wird, indem Sie das Kontrollkästchen Ausgabe angeben, wenn keine Übereinstimmung vorliegt aktivieren.
7 Parameter 3 Falls ein alternatives Benutzerattribute zurückgegeben werden muss, wenn keine Übereinstimmung vorhanden ist und Ausgabe angeben, wenn keine Übereinstimmung vorliegt aktiviert ist, kann ein alternatives Benutzerattribute mithilfe der Dropdownliste ausgewählt werden. Dieses Dropdownmenü ist für Parameter 3 (Ausgabe bei Nichtübereinstimmung) verfügbar.
8 Zusammenfassung Am unteren Rand des Blatts wird eine vollständige Zusammenfassung des Formats angezeigt, die die Bedeutung der Transformation in einfachem Text erläutert.
9 Hinzufügen Nach der Überprüfung der Konfigurationseinstellungen für die Transformation kann diese in einer Anspruchsrichtlinie gespeichert werden, indem Sie Hinzufügen auswählen. Änderungen werden nur gespeichert, wenn Sie auf dem Blatt Anspruch verwalten die Option Speichern auswählen.

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

RegexReplace()-Transformationsüberprüfungen

Wenn die folgenden Bedingungen auftreten, nachdem Hinzufügen oder Test ausführen ausgewählt wurde, wird eine Meldung mit weiteren Informationen zum Problem angezeigt:

  • Eingabeparameter mit doppelten Benutzerattributen sind nicht zulässig.
  • Nicht verwendete Eingabeparameter gefunden. Definierte Eingabeparameter sollten eine entsprechende Verwendung im Text des Ersetzungsmusters aufweisen.
  • Die bereitgestellte RegEx-Testeingabe stimmt nicht mit dem angegebenen regulären Ausdruck überein.
  • Die Quelle für die Gruppen im Ersatzmuster wurde nicht gefunden.

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 Attribute und Ansprüche hinzugefügt werden. Er kann allerdings im Azure-Portal über App-Registrierungen als optionaler Anspruch hinzugefügt werden.

Öffnen Sie die Anwendung 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 zum Token hinzuzufügen.

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.

Der Benutzertyp 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önnen angeben, dass NameID aus „user.email“ erstellt wird, wenn es sich bei dem Benutzer um einen Mitarbeiter handelt. Wenn der Benutzer ein Gast ist, wird NameID aus „user.extensionattribute1“ erstellt.

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 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 folgenden Konfiguration für die Fabrikam-Anwendung versucht, sich bei Fabrikam anzumelden, wertet Microsoft Identity Platform die Bedingungen 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 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

Erweiterte Anspruchsoptionen können für SAML2.0-Anwendungen konfiguriert werden, um denselben Anspruch für OIDC-Token verfügbar zu machen, und umgekehrt für Anwendungen, die denselben Anspruch sowohl für SAML2.0- als auch für OIDC-Antworttoken verwenden möchten.

Erweiterte Anspruchsoptionen können konfiguriert werden, indem Sie auf dem Blatt Ansprüche verwalten das Kontrollkästchen unter Erweiterte SAML-Anspruchsoptionen aktivieren.

In der folgenden Tabelle sind weitere 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 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