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
- Lär dig mer om hur du skaffar en Microsoft Entra-klientorganisation.
- Ladda ned den senaste Microsoft Graph PowerShell-SDK:t.
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:
- Utelämna de grundläggande anspråken från token
- Inkludera EmployeeID och TenantCountry som anspråk i token
- Använda en anspråkstransformering i token
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.
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.
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"
Om du vill se din nya princip och hämta principen
ObjectId
kö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.
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.
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"
Om du vill se din nya princip och hämta principen
ObjectId
kö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.
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.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"
Om du vill se din nya princip och hämta principen
ObjectId
kö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.
Om du vill se alla organisationens tjänsthuvudnamn kan du fråga Microsoft Graph-API: et eller kontrollera dem i Microsoft Graph Explorer.
Om du vill se alla principer för anspråksmappning i klientorganisationen och hämta principen
ObjectId
kör du följande kommando:Get-MgPolicyClaimMappingPolicy
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>"}