Gerir as políticas personalizadas Azure AD B2C com Azure PowerShell

Azure PowerShell fornece vários cmdlets para a gestão de políticas personalizadas baseadas em linha de comando e script no seu inquilino Azure AD B2C. Saiba como utilizar o módulo Azure AD PowerShell para:

  • Listar as políticas personalizadas num inquilino Azure AD B2C
  • Faça o download de uma apólice de um inquilino
  • Atualizar uma política existente, sobreescrevendo o seu conteúdo
  • Faça o upload de uma nova política para o seu inquilino Azure AD B2C
  • Excluir uma política personalizada de um inquilino

Pré-requisitos

Ligação sessão PowerShell para inquilino B2C

Para trabalhar com políticas personalizadas no seu inquilino Azure AD B2C, primeiro precisa ligar a sua sessão PowerShell ao arrendatário utilizando o comando Ligação-AzureAD.

Execute o seguinte comando, substituindo-o {b2c-tenant-name} pelo nome do seu inquilino Azure AD B2C. Inscreva-se com uma conta que atribuiu a função de Administrador de Política B2C IEF no diretório.

Connect-AzureAD -Tenant "{b2c-tenant-name}.onmicrosoft.com"

Saída de comando de exemplo mostrando um sucesso de sposição:

PS C:\> Connect-AzureAD -Tenant "contosob2c.onmicrosoft.com"

Account               Environment TenantId                             TenantDomain                 AccountType
-------               ----------- --------                             ------------                 -----------
azureuser@contoso.com AzureCloud  00000000-0000-0000-0000-000000000000 contosob2c.onmicrosoft.com   User

Listar todas as políticas personalizadas no inquilino

A descoberta de políticas personalizadas permite que um administrador AD B2C do Azure reveja, gere e adicione lógica de negócio às suas operações. Utilize o comando Get-AzureADMSTrustFrameworkPolicy para devolver uma lista dos IDs das políticas personalizadas num inquilino Azure AD B2C.

Get-AzureADMSTrustFrameworkPolicy

Saída de comando de exemplo:

PS C:\> Get-AzureADMSTrustFrameworkPolicy

Id
--
B2C_1A_TrustFrameworkBase
B2C_1A_TrustFrameworkExtensions
B2C_1A_signup_signin
B2C_1A_ProfileEdit
B2C_1A_PasswordReset

Faça o download de uma apólice

Depois de rever a lista de IDs de política, pode direcionar uma política específica com a Get-AzureADMSTrustFrameworkPolicy para descarregar o seu conteúdo.

Get-AzureADMSTrustFrameworkPolicy [-Id <policyId>]

Neste exemplo, a política com id B2C_1A_signup_signin é descarregada:

PS C:\> Get-AzureADMSTrustFrameworkPolicy -Id B2C_1A_signup_signin
<TrustFrameworkPolicy xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.microsoft.com/online/cpim/schemas/2013/06" PolicySchemaVersion="0.3.0.0" TenantId="contosob2c.onmicrosoft.com" PolicyId="B2C_1A_signup_signin" PublicPolicyUri="http://contosob2c.onmicrosoft.com/B2C_1A_signup_signin" TenantObjectId="00000000-0000-0000-0000-000000000000">
  <BasePolicy>
    <TenantId>contosob2c.onmicrosoft.com</TenantId>
    <PolicyId>B2C_1A_TrustFrameworkExtensions</PolicyId>
  </BasePolicy>
  <RelyingParty>
    <DefaultUserJourney ReferenceId="SignUpOrSignIn" />
    <TechnicalProfile Id="PolicyProfile">
      <DisplayName>PolicyProfile</DisplayName>
      <Protocol Name="OpenIdConnect" />
      <OutputClaims>
        <OutputClaim ClaimTypeReferenceId="displayName" />
        <OutputClaim ClaimTypeReferenceId="givenName" />
        <OutputClaim ClaimTypeReferenceId="surname" />
        <OutputClaim ClaimTypeReferenceId="email" />
        <OutputClaim ClaimTypeReferenceId="objectId" PartnerClaimType="sub" />
        <OutputClaim ClaimTypeReferenceId="identityProvider" />
        <OutputClaim ClaimTypeReferenceId="tenantId" AlwaysUseDefaultValue="true" DefaultValue="{Policy:TenantObjectId}" />
      </OutputClaims>
      <SubjectNamingInfo ClaimType="sub" />
    </TechnicalProfile>
  </RelyingParty>
</TrustFrameworkPolicy>

Para editar o conteúdo da política localmente, encaneie a saída de comando num ficheiro com o -OutputFilePath argumento e, em seguida, abra o ficheiro no seu editor favorito.

Exemplo de envio de comando para um ficheiro:

# Download and send policy output to a file
Get-AzureADMSTrustFrameworkPolicy -Id B2C_1A_signup_signin -OutputFilePath C:\RPPolicy.xml

Atualizar uma política existente

Depois de editar um ficheiro de política que criou ou descarregou, pode publicar a política atualizada para Azure AD B2C utilizando o comando Set-AzureADMSTrustFrameworkPolicy .

Se emitir o Set-AzureADMSTrustFrameworkPolicy comando com o ID de uma política que já existe no seu inquilino Azure AD B2C, o conteúdo dessa política está substituído.

Set-AzureADMSTrustFrameworkPolicy [-Id <policyId>] -InputFilePath <inputpolicyfilePath> [-OutputFilePath <outputFilePath>]

Comando de exemplo:

# Update an existing policy from file
Set-AzureADMSTrustFrameworkPolicy -Id B2C_1A_signup_signin -InputFilePath C:\B2C_1A_signup_signin.xml

Para obter exemplos adicionais, consulte a referência de comando Set-AzureADMSTrustFrameworkPolicy .

Faça upload de uma nova política

Quando fizer uma alteração para uma política personalizada que está em execução em produção, talvez queira publicar várias versões da política para cenários de testes de recuo ou A/B. Ou, talvez queira fazer uma cópia de uma política existente, modificá-la com algumas pequenas alterações e, em seguida, carregá-la como uma nova política para uso por uma aplicação diferente.

Utilize o comando New-AzureADMSTrustFrameworkPolicy para carregar uma nova política:

New-AzureADMSTrustFrameworkPolicy -InputFilePath <inputpolicyfilePath> [-OutputFilePath <outputFilePath>]

Comando de exemplo:

# Add new policy from file
New-AzureADMSTrustFrameworkPolicy -InputFilePath C:\SignUpOrSignInv2.xml

Excluir uma política personalizada

Para manter um ciclo de vida de operações limpas, recomendamos que remova periodicamente as políticas personalizadas não habituais. Por exemplo, é melhor remover as versões políticas antigas depois de realizar uma migração para um novo conjunto de políticas e verificar a funcionalidade das novas políticas. Além disso, se tentar publicar um conjunto de políticas personalizadas e receber um erro, poderá fazer sentido remover as políticas que foram criadas como parte da versão falhada.

Utilize o comando Remove-AzureADMSTrustFrameworkPolicy para eliminar uma apólice do seu inquilino.

Remove-AzureADMSTrustFrameworkPolicy -Id <policyId>

Comando de exemplo:

# Delete an existing policy
Remove-AzureADMSTrustFrameworkPolicy -Id B2C_1A_signup_signin

Upload de política de resolução de problemas

Quando tenta publicar uma nova política personalizada ou atualizar uma política existente, a formatação imprópria do XML e os erros na cadeia de herança de ficheiros de política podem causar falhas de validação.

Por exemplo, aqui está uma tentativa de atualizar uma política com conteúdo que contém XML mal formado (saída é truncada para brevidade):

PS C:\> Set-AzureADMSTrustFrameworkPolicy -Id B2C_1A_signup_signin -InputFilePath C:\B2C_1A_signup_signin.xml
Set-AzureADMSTrustFrameworkPolicy : Error occurred while executing PutTrustFrameworkPolicy
Code: AADB2C
Message: Validation failed: 1 validation error(s) found in policy "B2C_1A_SIGNUP_SIGNIN" of tenant "contosob2c.onmicrosoft.com".Schema validation error found at line
14 col 55 in policy "B2C_1A_SIGNUP_SIGNIN" of tenant "contosob2c.onmicrosoft.com": The element 'OutputClaims' in namespace
'http://schemas.microsoft.com/online/cpim/schemas/2013/06' cannot contain text. List of possible elements expected: 'OutputClaim' in namespace
'http://schemas.microsoft.com/online/cpim/schemas/2013/06'.
...

Para obter informações sobre a resolução de problemas de políticas personalizadas, consulte as políticas personalizadas do Azure AD B2C e o Quadro de Experiência de Identidade.

Passos seguintes

Para obter informações sobre a utilização do PowerShell para implementar políticas personalizadas como parte de um pipeline de integração contínua/entrega contínua (CI/CD), consulte implementar políticas personalizadas a partir de um oleoduto Azure DevOps.