Gerir 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 linhas de comandos e scripts no inquilino do Azure AD B2C. Saiba como utilizar o módulo Azure AD PowerShell para:
- Listar as políticas personalizadas num inquilino Azure AD B2C
- Transferir uma política a partir de um inquilino
- Atualizar uma política existente ao substituir o respetivo conteúdo
- Carregar uma nova política para o inquilino do Azure AD B2C
- Eliminar uma política personalizada de um inquilino
Pré-requisitos
- Azure AD inquilino B2C e credenciais para um utilizador no diretório com a função de Administrador de Políticas do IEF B2C
- Políticas personalizadas carregadas para o seu inquilino
- Azure AD módulo de pré-visualização do PowerShell para Graph
Ligar a sessão do PowerShell ao inquilino B2C
Para trabalhar com políticas personalizadas no seu inquilino Azure AD B2C, primeiro tem de ligar a sessão do PowerShell ao inquilino com o comando Connect-AzureAD.
Execute o seguinte comando, substituindo {b2c-tenant-name}
pelo nome do seu inquilino Azure AD B2C. Inicie sessão com uma conta que tenha atribuído a função de Administrador de Política do IEF B2C no diretório.
Connect-AzureAD -Tenant "{b2c-tenant-name}.onmicrosoft.com"
Saída de comando de exemplo a mostrar um início de sessão bem-sucedido:
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 deteção de políticas personalizadas permite que um administrador do B2C Azure AD reveja, faça a gestão 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 do comando de exemplo:
PS C:\> Get-AzureADMSTrustFrameworkPolicy
Id
--
B2C_1A_TrustFrameworkBase
B2C_1A_TrustFrameworkExtensions
B2C_1A_signup_signin
B2C_1A_ProfileEdit
B2C_1A_PasswordReset
Transferir uma política
Depois de rever a lista de IDs de política, pode direcionar uma política específica com Get-AzureADMSTrustFrameworkPolicy para transferir o respetivo conteúdo.
Get-AzureADMSTrustFrameworkPolicy [-Id <policyId>]
Neste exemplo, a política com o ID B2C_1A_signup_signin é transferida:
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, encaminhe a saída do comando para um ficheiro com o -OutputFilePath
argumento e, em seguida, abra o ficheiro no seu editor favorito.
Comando de exemplo a enviar saída 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 transferiu, pode publicar a política atualizada para Azure AD B2C com 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 será 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, veja a referência do comando Set-AzureADMSTrustFrameworkPolicy .
Carregar uma nova política
Quando efetua uma alteração a uma política personalizada em execução em produção, poderá querer publicar várias versões da política para cenários de contingência ou de teste A/B. Em alternativa, pode querer 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 utilização 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
Eliminar uma política personalizada
Para manter um ciclo de vida de operações limpas, recomendamos que remova periodicamente as políticas personalizadas não utilizadas. Por exemplo, poderá querer remover versões de política antigas depois de efetuar 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 política do seu inquilino.
Remove-AzureADMSTrustFrameworkPolicy -Id <policyId>
Comando de exemplo:
# Delete an existing policy
Remove-AzureADMSTrustFrameworkPolicy -Id B2C_1A_signup_signin
Resolver problemas de carregamento de políticas
Quando tenta publicar uma nova política personalizada ou atualizar uma política existente, a formatação XML incorreta e os erros na cadeia de herança de ficheiros de política podem causar falhas de validação.
Por exemplo, eis uma tentativa de atualizar uma política com conteúdo que contém XML mal formado (a saída está 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, veja Resolver problemas Azure AD políticas personalizadas B2C e o Identity Experience Framework.
Passos seguintes
Para obter informações sobre como utilizar o PowerShell para implementar políticas personalizadas como parte de um pipeline de integração/entrega contínua (CI/CD), veja Implementar políticas personalizadas a partir de um pipeline do Azure DevOps.