Personalização de declarações usando o PowerShell e a Política de Mapeamento de Declarações
Uma declaração é uma informação que um provedor de identidade declara sobre um usuário dentro do token que ele emite para esse usuário. A personalização de declarações é usada por administradores de locatários para personalizar as declarações emitidas em tokens para um aplicativo específico em seu locatário. Você pode usar políticas de mapeamento de declarações para:
- Selecione quais declarações estão incluídas nos tokens.
- Crie tipos de declaração que ainda não existem.
- Escolha ou altere a fonte de dados emitidos em declarações específicas.
A personalização de declarações suporta a configuração de políticas de mapeamento de declarações para os protocolos SAML, OAuth e OpenID Connect.
Nota
A Política de Mapeamento de Declarações substitui a política de Declarações Personalizadas e a personalização de declarações oferecida pelo Centro de administração do Microsoft Entra. Personalizar declarações para um aplicativo usando a Política de Mapeamento de Declarações significa que os tokens emitidos para esse aplicativo ignorarão a configuração na Política de Declarações Personalizadas ou a configuração na folha de personalização de declarações no centro de administração do Microsoft Entra.
Pré-requisitos
- Saiba como obter um locatário do Microsoft Entra.
- Baixe o SDK mais recente do Microsoft Graph PowerShell.
Começar agora
Nos exemplos a seguir, você cria, atualiza, vincula e exclui políticas para entidades de serviço. As políticas de mapeamento de declarações só podem ser atribuídas a objetos de entidade de serviço.
Ao criar uma política de mapeamento de declarações, você também pode emitir uma declaração de um atributo de extensão de diretório em tokens. Use ExtensionID
para o atributo extension em vez de ID no ClaimsSchema
elemento . Para obter mais informações sobre atributos de extensão, consulte Usando atributos de extensão de diretório.
Nota
O SDK do Microsoft Graph PowerShell é necessário para configurar políticas de mapeamento de declarações.
Abra um terminal e execute o seguinte comando para iniciar sessão na sua conta de administrador do Microsoft Entra. Execute este comando sempre que iniciar uma nova sessão.
Import-Module Microsoft.Graph.Identity.SignIns
Connect-MgGraph -Scopes "Policy.ReadWrite.ApplicationConfiguration", "Policy.Read.All"
Agora você pode criar uma política de mapeamento de declarações e atribuí-la a uma entidade de serviço. Consulte os seguintes exemplos para cenários comuns:
- Omitir as declarações básicas dos tokens
- Inclua o EmployeeID e o TenantCountry como declarações em tokens
- Usar uma transformação de declarações em tokens
Depois de criar uma política de mapeamento de declarações, configure seu aplicativo para reconhecer que os tokens conterão declarações personalizadas. Para obter mais informações, leia considerações de segurança.
Omitir as declarações básicas dos tokens
Neste exemplo, você cria uma política que remove o conjunto de declarações básicas de tokens emitidos para entidades de serviço vinculadas.
Crie uma política de mapeamento de declarações. Essa política, vinculada a entidades de serviço específicas, remove o conjunto de declarações básicas dos tokens.
Usando o terminal aberto, execute o seguinte comando para criar a política:
New-MgPolicyClaimMappingPolicy -Definition @('{"ClaimsMappingPolicy":{"Version":1,"IncludeBasicClaimSet":"false"}}') -DisplayName "OmitBasicClaims"
Para ver sua nova política e obtê-la
ObjectId
, execute o seguinte comando:Get-MgPolicyClaimMappingPolicy Definition DeletedDateTime Description DisplayName Id ---------- --------------- ----------- ----------- -- {"ClaimsMappingPolicy":{..}} OmitBasicClaims 36d1aa10-f9ac...
Incluir as EmployeeID
declarações e TenantCountry
como em tokens
Neste exemplo, você cria uma política que adiciona os EmployeeID
tokens e TenantCountry
aos emitidos para entidades de serviço vinculadas. O EmployeeID é emitido como o tipo de declaração de nome em tokens SAML e JWTs. O TenantCountry é emitido como o tipo de declaração de país/região em tokens SAML e JWTs. Neste exemplo, continuamos a incluir as declarações básicas definidas nos tokens.
Crie uma política de mapeamento de declarações. Esta política, vinculada a entidades de serviço específicas, adiciona as declarações EmployeeID e TenantCountry aos tokens.
Para criar a política, execute o seguinte comando no terminal:
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"
Para ver sua nova política e obtê-la
ObjectId
, execute o seguinte comando:Get-MgPolicyClaimMappingPolicy
Usar uma transformação de declarações em tokens
Neste exemplo, você cria uma política que emite uma declaração personalizada "JoinedData" para JWTs emitidos para entidades de serviço vinculadas. Esta declaração contém um valor criado pela junção dos dados armazenados no atributo extensionattribute1 no objeto de usuário com "-ext". Neste exemplo, excluímos as declarações básicas definidas nos tokens.
Crie uma política de mapeamento de declarações. Essa política, vinculada a entidades de serviço específicas, emite uma declaração
JoinedData
personalizada para tokens.Para criar a política, execute o seguinte comando:
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"
Para ver sua nova política e obtê-la
ObjectId
, execute o seguinte comando:Get-MgPolicyClaimMappingPolicy
Atribuir a política de mapeamento de declarações à entidade de serviço
Para atribuir a política à entidade de serviço, você precisará da ObjectId
sua política de mapeamento de declarações e da objectId
entidade de serviço à qual a política deve ser atribuída.
Para ver todas as entidades de serviço da sua organização, você pode consultar a API do Microsoft Graph ou verificá-las no Microsoft Graph Explorer.
Para ver todas as políticas de mapeamento de declarações em seu locatário e obter a política
ObjectId
, execute o seguinte comando:Get-MgPolicyClaimMappingPolicy
Quando você tiver a
ObjectId
política de mapeamento de declarações e a entidade de serviço, execute o seguinte comando:New-MgServicePrincipalClaimMappingPolicyByRef -ServicePrincipalId <servicePrincipalId> -BodyParameter @{"@odata.id" = "https://graph.microsoft.com/v1.0/policies/claimsMappingPolicies/<claimsMappingPolicyId>"}