Pas claims aan die zijn uitgegeven in het SAML-token voor ondernemingstoepassingen

De Microsoft identity platform ondersteunt eenmalige aanmelding (SSO) met de meeste bedrijfstoepassingen, waaronder zowel toepassingen die vooraf zijn geïntegreerd in de Azure Active Directory-toepassingsgalerie (Azure AD) als aangepaste toepassingen. Wanneer een gebruiker zich verifieert bij een toepassing via de Microsoft identity platform met behulp van het SAML 2.0-protocol, verzendt de Microsoft identity platform een token naar de toepassing. Vervolgens valideert en gebruikt de toepassing het token om de gebruiker te registreren in plaats van om een gebruikersnaam en wachtwoord te vragen.

Deze SAML-tokens bevatten stukjes informatie over de gebruiker die claims worden genoemd. Een claim is informatie die een id-provider verstrekt over een gebruiker in het token dat deze uitgeeft voor die gebruiker. In een SAML-token worden claimgegevens doorgaans opgenomen in de SAML-kenmerkinstructie. De unieke id van de gebruiker wordt meestal weergegeven in het SAML-onderwerp, ook wel de naam-id (nameID) genoemd.

Standaard geeft de Microsoft identity platform een SAML-token uit aan een toepassing die een NameIdentifier claim bevat met een waarde van de gebruikersnaam van de gebruiker (ook wel de user principal name genoemd) in Azure AD, waarmee de gebruiker uniek kan worden geïdentificeerd. Het SAML-token bevat ook andere claims, waaronder het e-mailadres, de voornaam en de achternaam van de gebruiker.

Claims weergeven of bewerken

Als u de claims die zijn uitgegeven in het SAML-token naar de toepassing wilt weergeven of bewerken, opent u de toepassing in Azure Portal. Open vervolgens de sectie Attributes & Claims .

Schermopname van het openen van de sectie Attributes & Claims in de Azure Portal.

Er zijn twee redenen waarom u mogelijk de claims moet bewerken die zijn uitgegeven in het SAML-token:

  • De toepassing vereist dat de NameIdentifier of NameID-claim iets anders is dan de gebruikersnaam (of user principal name) die is opgeslagen in Azure AD.
  • De toepassing is zodanig geschreven dat een andere set claim-URI's of claimwaarden is vereist.

NameID bewerken

De NameID bewerken (naam-id-waarde):

  1. Open de pagina Naam id-waarde.

  2. Selecteer het kenmerk of de transformatie die u wilt toepassen op het kenmerk. U kunt desgewenst de indeling opgeven die de NameID-claim moet hebben.

    Schermopname van het bewerken van de nameID-waarde (naam-id) in de Azure Portal.

NameID-indeling

Als de SAML-aanvraag het element NameIDPolicy met een specifieke indeling bevat, houdt de Microsoft identity platform zich aan de indeling in de aanvraag.

Als de SAML-aanvraag geen element voor NameIDPolicy bevat, geeft de Microsoft identity platform de NameID uit met de indeling die u opgeeft. Als er geen indeling is opgegeven, gebruikt de Microsoft identity platform de standaardbronindeling die is gekoppeld aan de geselecteerde claimbron. Als een transformatie resulteert in een null- of ongeldige waarde, verzendt Azure AD een permanente pairwise-id in de nameIdentifier.

Selecteer in de vervolgkeuzelijst Naam-id-indeling kiezen een van de opties in de volgende tabel.

NameID-indeling Description
Standaard Microsoft identity platform gebruikt de standaardbronindeling.
Permanent Microsoft identity platform gebruikt Persistent als de NameID-indeling.
E-mailadres Microsoft identity platform gebruikt EmailAddress als nameID-indeling.
Niet opgegeven Microsoft identity platform gebruikt Unspecified als nameID-indeling.
Gekwalificeerde Windows-domeinnaam Microsoft identity platform gebruikt de indeling WindowsDomainQualifiedName.

Tijdelijke NameID wordt ook ondersteund, maar is niet beschikbaar in de vervolgkeuzelijst en kan niet worden geconfigureerd bij Azure. Zie Het SAML-protocol voor eenmalige aanmelding voor meer informatie over het kenmerk NameIDPolicy.

Kenmerken

Selecteer de gewenste bron voor de NameIdentifier claim (of NameID). U kunt uit de volgende opties selecteren.

Naam Beschrijving
E-mail Het e-mailadres van de gebruiker
userPrincipalName UPN (User principal name, Principal-naam van gebruiker) van de gebruiker
onpremisessamaccountname SAM-accountnaam die is gesynchroniseerd vanuit on-premises Azure AD
objectid Objectid van de gebruiker in Azure AD
employeeid Werknemer-id van de gebruiker
Uitbreidingen van de directory Adreslijstextensies die vanuit on-premises Active Directory zijn gesynchroniseerd met Azure AD Connect Sync
Extensiekenmerken 1-15 On-premises extensiekenmerken die worden gebruikt om het Azure AD-schema uit te breiden
pairwiseid Permanente vorm van gebruikers-id

Zie Tabel 3: Geldige id-waarden per bron voor meer informatie over id-waarden.

Elke constante (statische) waarde kan worden toegewezen aan elke claim die is gedefinieerd in Azure AD. In de volgende stappen wordt beschreven hoe u een constante waarde toewijst:

  1. Selecteer in de Azure Portal in de sectie Gebruikerskenmerken & Claimsde optie Bewerken om de claims te bewerken.

  2. Selecteer de vereiste claim die u wilt wijzigen.

  3. Voer de constante waarde in zonder aanhalingstekens in het kenmerk Bron volgens uw organisatie en klik op Opslaan.

    Schermopname van de sectie Kenmerken van de organisatie & claims in de Azure Portal.

  4. De constante waarde wordt weergegeven zoals weergegeven in de volgende afbeelding.

    Schermopname van bewerken in de sectie Kenmerken & Claims in de Azure Portal.

Speciale claimtransformaties

U kunt de volgende speciale claimtransformatiefuncties gebruiken.

Functie Beschrijving
ExtractMailPrefix() Hiermee verwijdert u het domeinachtervoegsel uit het e-mailadres of de principal-naam van de gebruiker. Deze functie extraheert alleen het eerste deel van de gebruikersnaam die wordt doorgegeven (bijvoorbeeld 'joe_smith' in plaats van joe_smith@contoso.com).
ToLower() Converteert de tekens van het geselecteerde kenmerk naar kleine letters.
ToUpper() Converteert de tekens van het geselecteerde kenmerk naar hoofdletters.

Toepassingsspecifieke claims toevoegen

Voor toevoegen van toepassingsspecifieke claims

  1. Selecteer in Gebruikerskenmerken& Claims, dan Nieuwe claim toevoegen om de pagina Gebruikersclaims beheren te openen.
  2. Voer de naam van de claims in. De waarde hoeft niet strikt een URI-patroon te volgen, volgens de SAML-specificatie. Als u een URI-patroon nodig hebt, kunt u dat in het veld Naamruimte plaatsen.
  3. Selecteer de bron waar de claim de waarde gaat ophalen. U kunt een gebruikerskenmerk selecteren in de vervolgkeuzelijst van het bronkenmerk of een transformatie toepassen op het gebruikerskenmerk voordat u het als claim verzendt.

Transformaties voor claims

Een transformatie toepassen op een gebruikerskenmerk:

  1. Selecteer in Claim beherenTransformatie als de claimbron om de pagina Transformatie beheren te openen.

  2. Selecteer de functie in de vervolgkeuzelijst Transformatie. Afhankelijk van de geselecteerde functie moet u parameters en een constante waarde opgeven om te evalueren in de transformatie. Raadpleeg de volgende tabel voor meer informatie over de beschikbare functies.

  3. Bron behandelen als meerdere waarden is een selectievakje dat aangeeft of de transformatie moet worden toegepast op alle waarden of alleen op de eerste. Transformaties worden standaard alleen toegepast op het eerste element in een claim met meerdere waarden. Door dit selectievakje in te schakelen, zorgt u ervoor dat het op alle elementen wordt toegepast. Dit selectievakje is alleen ingeschakeld voor kenmerken met meerdere waarden, bijvoorbeeld user.proxyaddresses.

  4. Als u meerdere transformaties wilt toepassen, selecteert u Transformatie toevoegen. U kunt maximaal twee transformaties toepassen op een claim. U kunt bijvoorbeeld eerst het e-mailvoorvoegsel extraheren van de user.mail. Maak vervolgens de tekenreeks met hoofdletters.

    Schermopname van claimtransformatie.

U kunt de volgende functies gebruiken om claims te transformeren.

Functie Beschrijving
ExtractMailPrefix() Hiermee verwijdert u het domeinachtervoegsel uit het e-mailadres of de principal-naam van de gebruiker. Deze functie extraheert alleen het eerste deel van de gebruikersnaam die wordt doorgegeven (bijvoorbeeld 'joe_smith' in plaats van joe_smith@contoso.com).
Samenvoegen() Hiermee maakt u een nieuwe waarde door twee kenmerken te koppelen. U kunt eventueel een scheidingsteken tussen de twee kenmerken gebruiken. Voor nameID-claimtransformatie heeft de functie Join() specifiek gedrag wanneer de transformatie-invoer een domeinonderdeel bevat. Het domeinonderdeel wordt uit de invoer verwijderd voordat het wordt toegevoegd aan het scheidingsteken en de geselecteerde parameter. Als de invoer van de transformatie bijvoorbeeld 'joe_smith@contoso.com' is en het scheidingsteken '@' is en de parameter 'fabrikam.com' is, resulteert deze invoercombinatie in 'joe_smith@fabrikam.com'.
ToLowercase() Converteert de tekens van het geselecteerde kenmerk naar kleine letters.
ToUppercase() Converteert de tekens van het geselecteerde kenmerk naar hoofdletters.
Contains() Voert een kenmerk of constante uit als de invoer overeenkomt met de opgegeven waarde. Anders kunt u een andere uitvoer opgeven als er geen overeenkomst is.
Als u bijvoorbeeld een claim wilt verzenden waarbij de waarde het e-mailadres van de gebruiker is als dit het domein '@contoso.com' bevat, wilt u anders de user principal name uitvoeren. Als u deze functie wilt uitvoeren, configureert u de volgende waarden:
Parameter 1(invoer): user.email
Waarde: "@contoso.com"
Parameter 2 (uitvoer): user.email
Parameter 3 (uitvoer als er geen overeenkomst is): user.userprincipalname
EndWith() Voert een kenmerk of constante uit als de invoer eindigt op de opgegeven waarde. Anders kunt u een andere uitvoer opgeven als er geen overeenkomst is.
Als u bijvoorbeeld een claim wilt verzenden waarbij de waarde de werknemer-id van de gebruiker is als de werknemer-id eindigt op '000', wilt u anders een extensiekenmerk uitvoeren. Als u deze functie wilt uitvoeren, configureert u de volgende waarden:
Parameter 1(invoer): user.employeeid
Waarde: "000"
Parameter 2 (uitvoer): user.employeeid
Parameter 3 (uitvoer als er geen overeenkomst is): user.extensionattribute1
StartWith() Resulteert in een kenmerk of constante als de invoer begint met de opgegeven waarde. Anders kunt u een andere uitvoer opgeven als er geen overeenkomst is.
Als u bijvoorbeeld een claim wilt verzenden waarbij de waarde de werknemer-id van de gebruiker is als het land/de regio begint met 'VS', wilt u anders een extensiekenmerk uitvoeren. Als u deze functie wilt uitvoeren, configureert u de volgende waarden:
Parameter 1(invoer): user.country
Waarde: "US"
Parameter 2 (uitvoer): user.employeeid
Parameter 3 (uitvoer als er geen overeenkomst is): user.extensionattribute1
Extract(): na afstemmen Retourneert de subtekenreeks nadat deze overeenkomt met de opgegeven waarde.
Als de waarde van de invoer bijvoorbeeld 'Finance_BSimon' is, is de overeenkomende waarde 'Finance_', en dan is de uitvoer van de claim 'BSimon'.
Extract(): Voordat wordt geëxtraheerd Retourneert de subtekenreeks totdat deze overeenkomt met de opgegeven waarde.
Als de waarde van de invoer bijvoorbeeld 'BSimon_US' is, is de overeenkomende waarde '_US', dan is de uitvoer van de claim 'BSimon'.
Extract(): Tussen afstemmen Retourneert de subtekenreeks totdat deze overeenkomt met de opgegeven waarde.
Als de waarde van de invoer bijvoorbeeld 'Finance_BSimon_US' is, is de eerste overeenkomende waarde 'Finance_', is de tweede overeenkomende waarde '_US' en de uitvoer van de claim 'BSimon'.
ExtractAlpha(): voorvoegsel Retourneert het alfabetische voorvoegsel van de tekenreeks.
Als de waarde van de invoer bijvoorbeeld 'BSimon_123' is, wordt 'BSimon' geretourneerd.
ExtractAlpha(): achtervoegsel Retourneert het alfabetische achtervoegsel van de tekenreeks.
Als de waarde van de invoer bijvoorbeeld '123_Simon' is, wordt 'Simon' geretourneerd.
ExtractNumeric(): voorvoegsel Retourneert het alfabetische voorvoegsel van de tekenreeks.
Als de waarde van de invoer bijvoorbeeld '123_BSimon' is, wordt '123' geretourneerd.
ExtractNumeric(): achtervoegsel Retourneert het numerieke achtervoegseldeel van de tekenreeks.
Als de waarde van de invoer bijvoorbeeld 'BSimon_123' is, wordt '123' geretourneerd.
IfEmpty() Voert een kenmerk of constante uit als de invoer null of leeg is.
Als u bijvoorbeeld een kenmerk wilt uitvoeren dat is opgeslagen in een extensiekenmerk als de werknemer-id voor een bepaalde gebruiker leeg is. Als u deze functie wilt uitvoeren, configureert u de volgende waarden:
Parameter 1(invoer): user.employeeid
Parameter 2 (uitvoer): user.extensionattribute1
Parameter 3 (uitvoer als er geen overeenkomst is): user.userprincipalname
IfNotEmpty() Voert een kenmerk of constante uit als de invoer niet null of leeg is.
Als u bijvoorbeeld een kenmerk wilt uitvoeren dat is opgeslagen in een extensionattribute als de werknemer-id voor een bepaalde gebruiker niet leeg is. Als u deze functie wilt uitvoeren, configureert u de volgende waarden:
Parameter 1(invoer): user.employeeid
Parameter 2 (uitvoer): user.extensionattribute1
Substring() - Vaste lengte (preview) Extraheert onderdelen van een tekenreeksclaimtype, beginnend bij het teken op de opgegeven positie en retourneert het opgegeven aantal tekens.
SourceClaim : de claimbron van de transformatie die moet worden uitgevoerd.
StartIndex: de op nul gebaseerde begintekenpositie van een subtekenreeks in dit exemplaar.
Lengte: de lengte in tekens van de subtekenreeks.
Bijvoorbeeld:
sourceClaim - PleaseExtractThisNow
StartIndex - 6
Lengte - 11
Uitvoer: ExtractThis
Substring() - EndOfString (preview) Extraheert delen van een type tekenreeksclaim, beginnend bij het teken op de opgegeven positie, en retourneert de rest van de claim uit de opgegeven startindex.
SourceClaim : de claimbron van de transformatie die moet worden uitgevoerd.
StartIndex: de op nul gebaseerde begintekenpositie van een subtekenreeks in dit exemplaar.
Bijvoorbeeld:
sourceClaim - PleaseExtractThisNow
StartIndex - 6
Uitvoer: ExtractThisNow
RegexReplace() (Preview) RegexReplace() transformatie accepteert als invoerparameters:
- Parameter 1: een gebruikerskenmerk als invoer van reguliere expressie
- Een optie om de bron te vertrouwen als meerdere waarden
- Patroon van reguliere expressie
- Vervangingspatroon Het vervangende patroon kan een statische tekstindeling bevatten, samen met een verwijzing die verwijst naar regex-uitvoergroepen en meer invoerparameters.

Meer instructies over het gebruik van de transformatie RegexReplace() worden verderop in dit artikel beschreven.

Als u andere transformaties nodig hebt, dient u uw idee in op het feedbackforum in Azure AD onder de categorie SaaS-toepassing.

Claimtransformatie op basis van regex

In de volgende afbeelding ziet u een voorbeeld van het eerste transformatieniveau:

Schermopname van het eerste transformatieniveau.

De volgende tabel bevat informatie over het eerste niveau van transformaties. De acties die in de tabel worden vermeld, komen overeen met de labels in de vorige afbeelding. Selecteer Bewerken om de blade claimtransformatie te openen.

Actie Veld Beschrijving
1 Transformatie Selecteer de optie RegexReplace() in de transformatieopties om de op regex gebaseerde claimtransformatiemethode te gebruiken voor claimtransformatie.
2 Parameter 1 De invoer voor de reguliere expressietransformatie. Bijvoorbeeld user.mail met een e-mailadres van de gebruiker, zoals admin@fabrikam.com.
3 Bron behandelen als meerdere waarden Sommige gebruikerskenmerken voor invoer kunnen gebruikerskenmerken met meerdere waarden zijn. Als het geselecteerde gebruikerskenmerk meerdere waarden ondersteunt en de gebruiker meerdere waarden wil gebruiken voor de transformatie, moet de gebruiker Bron als meerdere waarden behandelen selecteren. Als deze optie is geselecteerd, worden alle waarden gebruikt voor de regex-overeenkomst, anders wordt alleen de eerste waarde gebruikt.
4 Regex-patroon Een reguliere expressie die wordt geëvalueerd op basis van de waarde van het gebruikerskenmerk dat is geselecteerd als parameter 1. Een reguliere expressie om de gebruikersalias uit het e-mailadres van de gebruiker te extraheren, wordt bijvoorbeeld weergegeven als (?'domain'^.*?)(?i)(\@fabrikam\.com)$.
5 Extra parameter toevoegen Er kan meer dan één gebruikerskenmerk worden gebruikt voor de transformatie. De waarden van de kenmerken worden vervolgens samengevoegd met regex-transformatie-uitvoer. Er worden maximaal vijf extra parameters ondersteund.
6 Vervangingspatroon Het vervangende patroon is de tekstsjabloon, die tijdelijke aanduidingen voor regex-resultaat bevat. Alle groepsnamen moeten worden verpakt in de accolades, zoals {group-name}. Stel dat de beheerder een gebruikersalias wil gebruiken met een andere domeinnaam, bijvoorbeeld xyz.com en de landnaam hiermee wil samenvoegen. In dit geval is {country}.{domain}@xyz.comhet vervangende patroon , waarbij {country} de waarde van de invoerparameter en {domain} de groepsuitvoer van de evaluatie van de reguliere expressie is. In een dergelijk geval is US.swmal@xyz.comhet verwachte resultaat .

In de volgende afbeelding ziet u een voorbeeld van het tweede transformatieniveau:

Schermopname van het tweede niveau van claimtransformatie.

De volgende tabel bevat informatie over het tweede niveau van transformaties. De acties die in de tabel worden vermeld, komen overeen met de labels in de vorige afbeelding.

Actie Veld Beschrijving
1 Transformatie Op regex gebaseerde claimtransformaties zijn niet beperkt tot de eerste transformatie en kunnen ook worden gebruikt als transformatie op het tweede niveau. Elke andere transformatiemethode kan als de eerste transformatie worden gebruikt.
2 Parameter 1 Als RegexReplace() is geselecteerd als transformatie op het tweede niveau, wordt de uitvoer van transformatie op het eerste niveau gebruikt als invoer voor de transformatie op het tweede niveau. De regex-expressie op het tweede niveau moet overeenkomen met de uitvoer van de eerste transformatie, anders wordt de transformatie niet toegepast.
3 Regex-patroon Regex-patroon is de reguliere expressie voor de transformatie op het tweede niveau.
4 Parameterinvoer Invoer van gebruikerskenmerken voor transformaties op het tweede niveau.
5 Parameterinvoer Beheerders kunnen de geselecteerde invoerparameter verwijderen als ze deze niet meer nodig hebben.
6 Vervangingspatroon Het vervangende patroon is de tekstsjabloon, die tijdelijke aanduidingen bevat voor de naam van de regex-resultaatgroep, de naam van de invoerparametergroep en de waarde van statische tekst. Alle groepsnamen moeten worden verpakt in de accolades, zoals {group-name}. Stel dat de beheerder een gebruikersalias wil gebruiken met een andere domeinnaam, bijvoorbeeld xyz.com en de landnaam hiermee wil samenvoegen. In dit geval is {country}.{domain}@xyz.comhet vervangingspatroon , waarbij {country} de waarde van de invoerparameter en {domain} de groepsuitvoer is van de evaluatie van de reguliere expressie. In een dergelijk geval is US.swmal@xyz.comhet verwachte resultaat .
7 Transformatie testen De transformatie RegexReplace() wordt alleen geëvalueerd als de waarde van het geselecteerde gebruikerskenmerk voor parameter 1 overeenkomt met de reguliere expressie in het tekstvak Regex-patroon . Als ze niet overeenkomen, wordt de standaardclaimwaarde toegevoegd aan het token. Als u een reguliere expressie wilt valideren op basis van de waarde van de invoerparameter, is er een testervaring beschikbaar op de het blad Transformaties. Deze testervaring werkt alleen bij dummy-waarden. Wanneer extra invoerparameters worden gebruikt, wordt de naam van de parameter toegevoegd aan het testresultaat in plaats van de werkelijke waarde. Selecteer Transformatie testen om toegang te krijgen tot de testsectie.

In de volgende afbeelding ziet u een voorbeeld van het testen van de transformaties:

Schermopname van het testen van de transformatie.

De volgende tabel bevat informatie over het testen van de transformaties. De acties die in de tabel worden vermeld, komen overeen met de labels in de vorige afbeelding.

Actie Veld Beschrijving
1 Transformatie testen Selecteer de knop Sluiten of (X) om de testsectie te verbergen en de knop Transformatie testen opnieuw op de blade weer te geven.
2 Regex-invoer testen Accepteert invoer die wordt gebruikt voor de evaluatie van de reguliere expressietest. Als claimtransformatie op basis van regex wordt geconfigureerd als een transformatie op het tweede niveau, wordt een waarde opgegeven die de verwachte uitvoer van de eerste transformatie zou zijn.
3 Test uitvoeren Nadat de regex-invoer van de test is opgegeven en het regex-patroon, het vervangingspatroon en de invoerparameters zijn geconfigureerd, kan de expressie worden geëvalueerd door Test uitvoeren te selecteren.
4 Resultaat van testtransformatie Als de evaluatie slaagt, wordt een uitvoer van de testtransformatie weergegeven op basis van het resultaatlabel Testtransformatie .
5 Transformatie verwijderen De transformatie op het tweede niveau kan worden verwijderd door Transformatie verwijderen te selecteren.
6 Uitvoer opgeven als er geen overeenkomst is Wanneer een regex-invoerwaarde is geconfigureerd voor de parameter 1 die niet overeenkomt met de reguliere expressie, wordt de transformatie overgeslagen. In dergelijke gevallen kan het alternatieve gebruikerskenmerk worden geconfigureerd, dat wordt toegevoegd aan het token voor de claim door uitvoer opgeven als er geen overeenkomst is in te schakelen.
7 Parameter 3 Als een alternatief gebruikerskenmerk moet worden geretourneerd wanneer er geen overeenkomst is en Uitvoer opgeven als er geen overeenkomst is ingeschakeld, kan een alternatief gebruikerskenmerk worden geselecteerd met behulp van de vervolgkeuzelijst. Deze vervolgkeuzelijst is beschikbaar voor parameter 3 (uitvoer als er geen overeenkomst is).
8 Samenvatting Onder aan de blade wordt een volledig overzicht van de indeling weergegeven, waarin de betekenis van de transformatie in eenvoudige tekst wordt uitgelegd.
9 Toevoegen Nadat de configuratie-instellingen voor de transformatie zijn geverifieerd, kan deze worden opgeslagen in een claimbeleid door Toevoegen te selecteren. Wijzigingen worden niet opgeslagen, tenzij Opslaan is geselecteerd op de blade Claim beheren .

RegexReplace() transformatie is ook beschikbaar voor de transformaties van groepsclaims.

Validaties van RegexReplace()-transformatie

Wanneer de volgende voorwaarden optreden nadat Test toevoegen of uitvoeren is geselecteerd, wordt er een bericht weergegeven met meer informatie over het probleem:

  • Invoerparameters met dubbele gebruikerskenmerken zijn niet toegestaan.
  • Ongebruikte invoerparameters gevonden. Gedefinieerde invoerparameters moeten respectievelijk gebruik hebben in de tekst van het vervangende patroon.
  • De opgegeven regex-invoer voor test komt niet overeen met de opgegeven reguliere expressie.
  • De bron voor de groepen in het vervangingspatroon is niet gevonden.

De UPN-claim toevoegen aan SAML-tokens

De http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn claim maakt deel uit van de beperkte SAML-claimset, dus u kunt deze niet toevoegen in de sectie Attributes & Claims . Als tijdelijke oplossing kunt u deze toevoegen als optionele claim via App-registraties in de Azure Portal.

Open de toepassing in App-registraties, selecteer Tokenconfiguratie en selecteer vervolgens Optionele claim toevoegen. Selecteer het TYPE SAML-token , kies upn in de lijst en klik vervolgens op Toevoegen om de claim toe te voegen aan het token.

Claims verzenden op basis van voorwaarden

U kunt de bron van een claim opgeven op basis van het gebruikerstype en de groep waarvan de gebruiker deel uitmaakt.

Het gebruikerstype kan zijn:

  • Alle : alle gebruikers hebben toegang tot de toepassing.
  • Leden: systeemeigen lid van de tenant
  • Alle gasten: de gebruiker wordt overgebracht van een externe organisatie met of zonder Azure AD.
  • AAD-gasten: gastgebruiker behoort tot een andere organisatie met gebruik van Azure AD.
  • Externe gasten: gastgebruiker behoort tot een externe organisatie die geen Azure AD heeft.

Een scenario waarin het gebruikerstype handig is, is wanneer de bron van een claim verschilt voor een gast en een werknemer die toegang heeft tot een toepassing. U kunt opgeven dat als de gebruiker een werknemer is, de NameID afkomstig is van user.email. Als de gebruiker een gast is, is de NameID afkomstig van user.extensionattribute1.

Een claimvoorwaarde toevoegen:

  1. Vouw in Claim beheren de claimvoorwaarden uit.
  2. Selecteer het gebruikerstype.
  3. Selecteer de groep(en) waartoe de gebruiker behoort. U kunt maximaal 50 unieke groepen selecteren voor alle claims voor een bepaalde toepassing.
  4. Selecteer de bron waar de claim de waarde gaat ophalen. U kunt een gebruikerskenmerk selecteren in de vervolgkeuzelijst van het bronkenmerk of een transformatie toepassen op het gebruikerskenmerk voordat u het als claim verzendt.

De volgorde waarin u de voorwaarden toevoegt, zijn belangrijk. Azure AD eerst alle voorwaarden met bron Attribute evalueert en vervolgens alle voorwaarden met de bron Transformation evalueert om te bepalen welke waarde moet worden verzonden in de claim. Voorwaarden met dezelfde bron worden van boven naar beneden geëvalueerd. De laatste waarde, die overeenkomt met de expressie, wordt verzonden in de claim. Transformaties zoals IsNotEmpty en Contains fungeren als beperkingen.

Bijvoorbeeld: Britta Simon is een gastgebruiker in de Contoso-tenant. Britta behoort tot een andere organisatie die ook gebruikmaakt van Azure AD. Gezien de volgende configuratie voor de Toepassing Fabrikam, evalueert de Microsoft identity platform de voorwaarden wanneer Britta zich probeert aan te melden bij Fabrikam.

Eerst controleert de Microsoft identity platform of het gebruikerstype van Britta Alle gasten is. Omdat dit waar is, wijst de Microsoft identity platform de bron voor de claim toe aan user.extensionattribute1. Ten tweede controleert de Microsoft identity platform of het gebruikerstype van Britta AAD-gasten is. Omdat dit ook waar is, wijst de Microsoft identity platform de bron voor de claim toe aan user.mail. Ten slotte wordt de claim verzonden met een waarde van user.mail voor Britta.

Schermopname van voorwaardelijke configuratie voor claims.

Een ander voorbeeld is wanneer Britta Simon zich probeert aan te melden en de volgende configuratie wordt gebruikt. Azure AD evalueert eerst alle voorwaarden met bron Attribute. Omdat het gebruikerstype van Britta AAD-gasten is, user.mail wordt deze toegewezen als de bron voor de claim. Vervolgens evalueert Azure AD de transformaties. Omdat Britta een gast is, is user.extensionattribute1 nu de nieuwe bron voor de claim. Omdat Britta zich in AAD-gasten bevindt, is user.othermail nu de bron voor deze claim. Ten slotte wordt de claim verzonden met een waarde van user.othermail voor Britta.

Schermopname van meer voorwaardelijke configuraties voor claims.

Als laatste voorbeeld kunt u zien wat er gebeurt als Britta niet user.othermail is geconfigureerd of leeg is. In beide gevallen wordt de voorwaardevermelding genegeerd en valt de claim in plaats daarvan terug op user.extensionattribute1 .

Geavanceerde OPTIES voor SAML-claims

Opties voor geavanceerde claims kunnen worden geconfigureerd voor SAML2.0-toepassingen om dezelfde claim beschikbaar te maken voor OIDC-tokens en omgekeerd voor toepassingen die dezelfde claim willen gebruiken voor zowel SAML2.0- als OIDC-antwoordtokens.

Geavanceerde claimopties kunnen worden geconfigureerd door het selectievakje onder Geavanceerde SAML-claimsopties in te schakelen op de blade Claims beheren .

De volgende tabel bevat andere geavanceerde opties die kunnen worden geconfigureerd voor een toepassing.

Optie Beschrijving
Toepassings-id toevoegen aan verlener Voegt automatisch de toepassings-id toe aan de claim van de verlener. Deze optie zorgt voor een unieke claimwaarde voor elk exemplaar wanneer er meerdere exemplaren van dezelfde toepassing zijn. Deze instelling wordt genegeerd als een aangepaste ondertekeningssleutel niet is geconfigureerd voor de toepassing.
Claim van doelgroep overschrijven Hiermee kan de claim van de doelgroep worden overschreven die naar de toepassing is verzonden. De opgegeven waarde moet een geldige absolute URI zijn. Deze instelling wordt genegeerd als een aangepaste ondertekeningssleutel niet is geconfigureerd voor de toepassing.
Indeling van kenmerknaam opnemen Als deze optie is geselecteerd, voegt Azure Active Directory een kenmerk toe met de naam NameFormat waarmee de indeling van de naam wordt beschreven voor beperkte, kern- en optionele claims voor de toepassing. Raadpleeg Type claimtoewijzingsbeleid voor meer informatie.

Volgende stappen