Dela via


Anpassning av anspråk med powershell- och anspråksmappningsprincip

Ett anspråk är information som en identitetsprovider anger om en användare i den token som de utfärdar för den användaren. Anspråksanpassning används av klientadministratörer för att anpassa anspråk som genereras i token för ett visst program i klientorganisationen. Du kan använda principer för anspråksmappning för att:

  • välj vilka anspråk som ingår i token.
  • skapa anspråkstyper som inte redan finns.
  • välj eller ändra datakällan som genereras i specifika anspråk.

Anspråksanpassning stöder konfiguration av principer för anspråksmappning för SAML-, OAuth- och OpenID Connect-protokollen.

Kommentar

Principen för anspråksmappning ersätter både principen för anpassade anspråk och den anspråksanpassning som erbjuds via administrationscentret för Microsoft Entra. Att anpassa anspråk för ett program med hjälp av principen för anspråksmappning innebär att token som utfärdas för programmet ignorerar konfigurationen i principen för anpassade anspråk eller konfigurationen i bladet för anspråksanpassning i administrationscentret för Microsoft Entra.

Förutsättningar

Kom igång

I följande exempel skapar, uppdaterar, länkar och tar du bort principer för tjänstens huvudnamn. Anspråksmappningsprinciper kan bara tilldelas till objekt med tjänstens huvudnamn.

När du skapar en princip för anspråksmappning kan du också generera ett anspråk från ett katalogtilläggsattribut i token. Använd ExtensionID för tilläggsattributet i stället för ID i -elementet ClaimsSchema . Mer information om tilläggsattribut finns i Använda katalogtilläggsattribut.

Kommentar

Microsoft Graph PowerShell SDK krävs för att konfigurera principer för anspråksmappning.

Öppna en terminal och kör följande kommando för att logga in på ditt Microsoft Entra-administratörskonto. Kör det här kommandot varje gång du startar en ny session.

Import-Module Microsoft.Graph.Identity.SignIns

Connect-MgGraph -Scopes "Policy.ReadWrite.ApplicationConfiguration", "Policy.Read.All"

Nu kan du skapa en princip för anspråksmappning och tilldela den till ett huvudnamn för tjänsten. Se följande exempel för vanliga scenarier:

När du har skapat en princip för anspråksmappning konfigurerar du programmet så att det bekräftar att token innehåller anpassade anspråk. Mer information finns i säkerhetsöverväganden.

Utelämna de grundläggande anspråken från token

I det här exemplet skapar du en princip som tar bort den grundläggande anspråksuppsättningen från token som utfärdats till länkade tjänstens huvudnamn.

  1. Skapa en princip för anspråksmappning. Den här principen, som är länkad till specifika tjänsthuvudnamn, tar bort den grundläggande anspråksuppsättningen från token.

  2. Använd terminalen som du har öppen och kör följande kommando för att skapa principen:

    New-MgPolicyClaimMappingPolicy -Definition @('{"ClaimsMappingPolicy":{"Version":1,"IncludeBasicClaimSet":"false"}}') -DisplayName "OmitBasicClaims"
    
  3. Om du vill se din nya princip och hämta principen ObjectIdkör du följande kommando:

    Get-MgPolicyClaimMappingPolicy
    
    Definition                    DeletedDateTime Description DisplayName      Id
    ----------                    --------------- ----------- -----------      --
    {"ClaimsMappingPolicy":{..}}                              OmitBasicClaims  36d1aa10-f9ac...
    

EmployeeID Inkludera och TenantCountry som anspråk i token

I det här exemplet skapar du en princip som lägger till EmployeeID och TenantCountry till token som utfärdas till länkade tjänstens huvudnamn. EmployeeID genereras som namnanspråkstyp i både SAML-token och JWTs. TenantCountry genereras som anspråkstyp för land/region i både SAML-token och JWTs. I det här exemplet fortsätter vi att inkludera de grundläggande anspråk som anges i token.

  1. Skapa en princip för anspråksmappning. Den här principen, som är länkad till specifika tjänsthuvudnamn, lägger till EmployeeID- och TenantCountry-anspråken till token.

  2. Skapa principen genom att köra följande kommando i terminalen:

    New-MgPolicyClaimMappingPolicy -Definition @('{"ClaimsMappingPolicy":{"Version":1,"IncludeBasicClaimSet":"true", "ClaimsSchema": [{"Source":"user","ID":"employeeid","SamlClaimType":"http://schemas.xmlsoap.org/ws/2005/05/identity/claims/employeeid","JwtClaimType":"employeeid"},{"Source":"company","ID":"tenantcountry","SamlClaimType":"http://schemas.xmlsoap.org/ws/2005/05/identity/claims/country","JwtClaimType":"country"}]}}') -DisplayName "ExtraClaimsExample"
    
  3. Om du vill se din nya princip och hämta principen ObjectIdkör du följande kommando:

    Get-MgPolicyClaimMappingPolicy
    

Använda en anspråkstransformering i token

I det här exemplet skapar du en princip som genererar ett anpassat anspråk "JoinedData" till JWT:er som utfärdats till länkade tjänsthuvudnamn. Det här anspråket innehåller ett värde som skapats genom att koppla data som lagras i attributet extensionattribute1 på användarobjektet med "-ext". I det här exemplet exkluderar vi de grundläggande anspråk som anges i token.

  1. Skapa en princip för anspråksmappning. Den här principen, som är länkad till specifika tjänsthuvudnamn, genererar ett anpassat anspråk JoinedData till token.

  2. Kör följande kommando för att skapa principen:

    New-MgPolicyClaimMappingPolicy -Definition @('{"ClaimsMappingPolicy":{"Version":1,"IncludeBasicClaimSet":"true", "ClaimsSchema":[{"Source":"user","ID":"extensionattribute1"},{"Source":"transformation","ID":"DataJoin","TransformationId":"JoinTheData","JwtClaimType":"JoinedData"}],"ClaimsTransformations":[{"ID":"JoinTheData","TransformationMethod":"Join","InputClaims":[{"ClaimTypeReferenceId":"extensionattribute1","TransformationClaimType":"string1"}], "InputParameters": [{"ID":"string2","Value":"ext"},{"ID":"separator","Value":"-"}],"OutputClaims":[{"ClaimTypeReferenceId":"DataJoin","TransformationClaimType":"outputClaim"}]}]}}') -DisplayName "TransformClaimsExample"
    
  3. Om du vill se din nya princip och hämta principen ObjectIdkör du följande kommando:

    Get-MgPolicyClaimMappingPolicy
    

Tilldela principen för anspråksmappning till tjänstens huvudnamn

För att tilldela principen till tjänstens huvudnamn behöver ObjectId du principen för anspråksmappning och objectId tjänstens huvudnamn som principen måste tilldelas till.

  1. Om du vill se alla organisationens tjänsthuvudnamn kan du fråga Microsoft Graph-API: et eller kontrollera dem i Microsoft Graph Explorer.

  2. Om du vill se alla principer för anspråksmappning i klientorganisationen och hämta principen ObjectIdkör du följande kommando:

    Get-MgPolicyClaimMappingPolicy
    
  3. När du har principen ObjectId för anspråksmappning och tjänstens huvudnamn kör du följande kommando:

    New-MgServicePrincipalClaimMappingPolicyByRef -ServicePrincipalId <servicePrincipalId> -BodyParameter @{"@odata.id" = "https://graph.microsoft.com/v1.0/policies/claimsMappingPolicies/<claimsMappingPolicyId>"}