Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
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 nas nossas Perguntas Frequentes.
O Azure Pipelines dá suporte à integração contínua (CI) e à entrega contínua (CD) para testar, criar 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 Ative Directory B2C (Azure AD B2C) usando o Azure Pipelines.
Importante
A gestão de políticas personalizadas do Azure AD B2C com Azure Pipelines usa atualmente operações de visualização disponíveis no endpoint 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 em Introdução às políticas personalizadas no Ative Directory B2C.
- Se você não criou uma organização de DevOps, crie uma seguindo as instruções em Inscrever-se, entre 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 ainda não o fez, registe uma aplicação Microsoft Graph.
Para que o script do PowerShell acesse dados no MS Graph, conceda ao aplicativo registrado as permissões de aplicativo relevantes. Concedeu-se a permissão Microsoft Graph>Policy>Policy.ReadWrite.TrustFramework dentro das permissões de API do registo da aplicação.
Configurar um repositório do Azure
Com um aplicativo 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.
- No 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 personalizados do Azure AD B2C à pasta B2CAssets . - No diretório raiz do repositório, crie uma pasta chamada
Scripts. Crie um arquivo do PowerShell DeployToB2C.ps1. Cole o seguinte script do PowerShell no 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 Pipelines do Azure
Com o repositório inicializado e preenchido com seus arquivos de política personalizados, você está pronto para configurar o pipeline de versão. Para criar um pipeline, siga estas etapas:
- Em seu projeto, selecione Pipelines>Releases>New pipeline.
- Em Selecione um modelo, selecione Trabalho vazio e, em seguida, selecione Aplicar.
- Insira um nome da etapa, 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 o seu projeto.
- Selecione a fonte (repositório) que contém a pasta Scripts .
- Selecione uma ramificação padrão, por exemplo, mestre.
- Mantenha a definiçã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 sua intenção. Por exemplo, Implantar fluxo de trabalho 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 conveniente de obter dados essenciais em várias partes do pipeline. As variáveis a seguir fornecem informações sobre seu 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 secret (selecione o ícone de cadeado). |
tenantId |
your-b2c-tenant.onmicrosoft.com, onde your-b2c-tenant é o nome do seu locatário do Azure AD B2C. |
Para adicionar variáveis de pipeline, siga estas etapas:
- Na sua pipeline, selecione o separador 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 chame o script DeployToB2C.ps1 PowerShell.
No pipeline que você criou, selecione a guia Tarefas .
Selecione Trabalho do agente e, em seguida, selecione o sinal de adição (+) para adicionar uma tarefa ao trabalho do agente.
Procure e selecione PowerShell. Não selecione "Azure PowerShell", "PowerShell em máquinas 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 para exibição: o nome da política que esta tarefa deve enviar. 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 seguinte script do PowerShell.
-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
-Filesparâmetro é uma lista delimitadora de vírgulas de arquivos de política a serem implantados. Atualize a lista com seus arquivos de política.Importante
Certifique-se de que as políticas são carregadas na ordem correta. Primeiro, a política base; depois, a política de extensões; e, em seguida, as políticas de parte confiável. Por exemplo,
TrustFrameworkBase.xml,TrustFrameworkLocalization.xml,TrustFrameworkExtensions.xml,SignUpOrSignin.xml.
Selecione Salvar para salvar o trabalho do Agente.
Teste o seu pipeline
Para testar seu pipeline de liberação:
- Selecione Pipelines e, em seguida, Releases.
- Selecione o pipeline criado anteriormente, por exemplo, DeployCustomPolicies.
- Selecione Criar release e, em seguida, selecione Criar para enfileirar o release.
Você deve ver um banner de notificação que diz que uma liberação foi enfileirada. Para visualizar seu status, selecione o link no banner de notificação ou selecione-o na lista na guia Lançamentos .
Próximos passos
Saiba mais sobre: