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.
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:
Öffnen Sie die Seite Wert für Namensbezeichner.
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-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 |
---|---|
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:
Wählen Sie im Azure-Portal im Abschnitt Benutzerattribute und Ansprüche das Symbol Bearbeiten aus, um die Ansprüche zu bearbeiten.
Wählen Sie den erforderlichen Anspruch aus, den Sie ändern möchten.
Geben Sie als Quellattribut den konstanten Wert (ohne Anführungszeichen) entsprechend Ihrer Organisation ein, und klicken Sie auf Speichern.
Der Konstantenwert wird wie in der folgenden Abbildung dargestellt angezeigt:
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:
- Wählen Sie im Abschnitt Benutzerattribute und Ansprüche die Option Neuen Anspruch hinzufügen aus, um die Seite Benutzeransprüche verwalten zu öffnen.
- 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.
- 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
Wählen Sie unter Anspruch verwalten die Option Transformation als Anspruchsquelle aus, um die Seite Transformation verwalten zu öffnen.
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.
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
).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.mail
extrahieren. Dann könnten Sie die Zeichenfolge in Großbuchstaben umwandeln.
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:
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:
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:
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
- Erweitern Sie unter Anspruch verwalten die Anspruchsbedingungen.
- Wählen Sie den Benutzertyp aus.
- 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.
- 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.
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.
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. |