Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Importante
A partir de 1º de maio de 2025, o Azure AD B2C não estará mais disponível para compra para novos clientes. Saiba mais em nossas perguntas frequentes.
O Azure Pipelines dá suporte à CI (integração contínua) e à CD (entrega contínua) para testar, compilar e enviar um código de forma constante e consistente para qualquer destino. Este artigo descreve como automatizar o processo de implantação das políticas personalizadas do Azure Active Directory B2C (Azure AD B2C) usando o Azure Pipelines.
Importante
Atualmente, o gerenciamento de políticas personalizadas do Azure AD B2C com o Azure Pipelines usa operações de versão prévia disponíveis no ponto de extremidade /beta da API do Microsoft Graph. Não há suporte para o uso dessas APIs em aplicativos de produção. Para obter mais informações, consulte a referência de ponto de extremidade beta da API REST do Microsoft Graph.
Pré-requisitos
- Conclua as etapas na Introdução às políticas personalizadas no Active Directory B2C.
- Se você não tiver criado uma organização de DevOps, crie uma seguindo as instruções em Inscrever-se, entrar no Azure DevOps.
Registrar um aplicativo para tarefas de gerenciamento
Use o script do PowerShell para implantar as políticas do Azure AD B2C. Antes que o script do PowerShell possa interagir com a API do Microsoft Graph, crie um registro de aplicativo em seu locatário do Azure AD B2C. Se você ainda não fez isso, registre um aplicativo do Microsoft Graph.
Para que o script do PowerShell acesse dados no MS Graph, conceda ao aplicativo registrado as permissões de aplicativo relevantes. Concessão da permissão Microsoft Graph>Policy>Policy.ReadWrite.TrustFramework em Permissões de API do registro de aplicativo.
Configurar um repositório do Azure
Com um aplicativo do Microsoft Graph registrado, você está pronto para configurar um repositório para seus arquivos de política.
- Entre na sua organização do Azure DevOps.
- Crie um novo projeto ou selecione um projeto existente.
- Em seu projeto, navegue até Repositórios e selecione Arquivos.
- Selecione um repositório existente ou crie um.
- No diretório raiz do repositório, crie uma pasta chamada
B2CAssets. Adicione seus arquivos de política personalizada do Azure AD B2C à pasta B2CAssets . - No diretório raiz do repositório, crie uma pasta chamada
Scripts. Criar um arquivo do PowerShell DeployToB2C.ps1. Cole o seguinte script do PowerShell em DeployToB2C.ps1. - Confirme e envie as alterações.
O script a seguir adquire um token de acesso do Microsoft Entra ID. Com o token, o script chama a API do MS Graph para carregar as políticas na pasta B2CAssets . Você também pode alterar o conteúdo da política antes de carregá-la. Por exemplo, substitua o tenant-name.onmicrosoft.com pelo nome do locatário.
[Cmdletbinding()]
Param(
[Parameter(Mandatory = $true)][string]$ClientID,
[Parameter(Mandatory = $true)][string]$ClientSecret,
[Parameter(Mandatory = $true)][string]$TenantId,
[Parameter(Mandatory = $true)][string]$Folder,
[Parameter(Mandatory = $true)][string]$Files
)
try {
$body = @{grant_type = "client_credentials"; scope = "https://graph.microsoft.com/.default"; client_id = $ClientID; client_secret = $ClientSecret }
$response = Invoke-RestMethod -Uri https://login.microsoftonline.com/$TenantId/oauth2/v2.0/token -Method Post -Body $body
$token = $response.access_token
$headers = New-Object "System.Collections.Generic.Dictionary[[String],[String]]"
$headers.Add("Content-Type", 'application/xml')
$headers.Add("Authorization", 'Bearer ' + $token)
# Get the list of files to upload
$filesArray = $Files.Split(",")
Foreach ($file in $filesArray) {
$filePath = $Folder + $file.Trim()
# Check if file exists
$FileExists = Test-Path -Path $filePath -PathType Leaf
if ($FileExists) {
$policycontent = Get-Content $filePath -Encoding UTF8
# Optional: Change the content of the policy. For example, replace the tenant-name with your tenant name.
# $policycontent = $policycontent.Replace("your-tenant.onmicrosoft.com", "contoso.onmicrosoft.com")
# Get the policy name from the XML document
$match = Select-String -InputObject $policycontent -Pattern '(?<=\bPolicyId=")[^"]*'
If ($match.matches.groups.count -ge 1) {
$PolicyId = $match.matches.groups[0].value
Write-Host "Uploading the" $PolicyId "policy..."
$graphuri = 'https://graph.microsoft.com/beta/trustframework/policies/' + $PolicyId + '/$value'
$content = [System.Text.Encoding]::UTF8.GetBytes($policycontent)
$response = Invoke-RestMethod -Uri $graphuri -Method Put -Body $content -Headers $headers -ContentType "application/xml; charset=utf-8"
Write-Host "Policy" $PolicyId "uploaded successfully."
}
}
else {
$warning = "File " + $filePath + " couldn't be not found."
Write-Warning -Message $warning
}
}
}
catch {
Write-Host "StatusCode:" $_.Exception.Response.StatusCode.value__
$_
$streamReader = [System.IO.StreamReader]::new($_.Exception.Response.GetResponseStream())
$streamReader.BaseStream.Position = 0
$streamReader.DiscardBufferedData()
$errResp = $streamReader.ReadToEnd()
$streamReader.Close()
$ErrResp
exit 1
}
exit 0
Configurar o Azure Pipelines
Com o repositório inicializado e preenchido com seus arquivos de política personalizados, você está pronto para configurar o pipeline de lançamento. Para criar um pipeline, siga estas etapas:
- Em seu projeto, selecione Pipelines>Releases>New pipeline.
- Em Selecionar um modelo, selecione Trabalho vazio e, em seguida, selecione Aplicar.
- Insira um Nome do estágio, por exemplo, DeployCustomPolicies, e feche o painel.
- Selecione Adicionar um artefato e, em Tipo de origem, selecione Repositório do Azure.
- Para o Projeto, selecione seu projeto.
- Selecione a Origem (repositório) que contém a pasta Scripts.
- Selecione uma ramificação padrão, por exemplo, mestre.
- Deixe a configuração de Versão padrão como Mais recente da ramificação padrão.
- Insira um alias de origem para o repositório. Por exemplo, policyRepo.
- Selecione Adicionar
- Renomeie o pipeline para refletir a intenção. Por exemplo, Implantar o pipeline de política personalizada.
- Selecione Salvar para salvar a configuração do pipeline.
Configurar variáveis de pipeline
As variáveis do pipeline oferecem uma maneira prática de acessar dados essenciais em diversas partes do pipeline. As variáveis a seguir fornecem informações sobre o ambiente do Azure AD B2C.
| Nome | Valor |
|---|---|
clientId |
ID do aplicativo (cliente) do aplicativo que você registrou anteriormente. |
clientSecret |
O valor do segredo do cliente que você criou anteriormente. Altere o tipo de variável para secreto (selecione o ícone de cadeado). |
tenantId |
your-b2c-tenant.onmicrosoft.com, em que your-b2c-tenant é o nome do locatário do Azure AD B2C. |
Para adicionar variáveis de pipeline, siga estas etapas:
- Em seu pipeline, selecione a aba Variáveis.
- Em Variáveis de pipeline, adicione a variável acima com seus valores.
- Selecione Salvar para salvar as variáveis.
Adicionar tarefas de pipeline
Uma tarefa de pipeline é um script pré-empacotado que executa uma ação. Adicione uma tarefa que executa o scriptDeployToB2C.ps1 PowerShell.
No pipeline que você criou, selecione a guia Tarefas .
Selecione Tarefa do Agente e, em seguida, selecione o ícone de mais (+) para adicionar uma tarefa à Tarefa do Agente.
Pesquise e selecione PowerShell. Não selecione "Azure PowerShell", "PowerShell em computadores de destino" ou outra entrada do PowerShell.
Selecione a tarefa de Script do PowerShell recém-adicionada.
Insira os seguintes valores para a tarefa Script do PowerShell:
Versão da tarefa: 2.*
Nome de exibição: o nome da política que esta tarefa deve carregar. Por exemplo, B2C_1A_TrustFrameworkBase.
Tipo: Caminho do arquivo
Caminho do Script: selecione as reticências (...), navegue até a pasta Scripts e selecione o arquivo DeployToB2C.ps1.
Argumentos: insira o script do PowerShell a seguir.
-ClientID $(clientId) -ClientSecret $(clientSecret) -TenantId $(tenantId) -Folder $(System.DefaultWorkingDirectory)/policyRepo/B2CAssets/ -Files "TrustFrameworkBase.xml,TrustFrameworkLocalization.xml,TrustFrameworkExtensions.xml,SignUpOrSignin.xml,ProfileEdit.xml,PasswordReset.xml"O parâmetro
-Filesé uma lista de arquivos de política separados por vírgulas para implantação. Atualize a lista com seus arquivos de política.Importante
Verifique se as políticas foram carregadas na ordem correta. Primeiro, a política de base, a política de extensões, então as políticas de terceira parte confiável. Por exemplo,
TrustFrameworkBase.xml,TrustFrameworkLocalization.xml,TrustFrameworkExtensions.xml,SignUpOrSignin.xml.
Selecione Salvar para salvar o trabalho do agente.
Testar seu pipeline
Para testar seu pipeline de lançamento:
- Selecione Pipelines e, em seguida, Releases.
- Selecione o pipeline criado anteriormente, por exemplo, DeployCustomPolicies.
- Selecione Criar versãoe selecione Criar para colocar a versão na fila.
Você deverá ver uma faixa de notificação informando que uma versão foi colocada na fila. Para exibir seu status, selecione o link na faixa de notificação ou selecione-o na lista na guia Versões .
Próximas etapas
Saiba mais sobre: