Skip to main content

Featured

Microsoft Entra B2B, B2C e Cross-Tenant Synchronization: entenda as diferenças e quando usar cada modelo

  À medida que as organizações adotam ambientes multicloud, aplicações SaaS e estruturas corporativas distribuídas, a identidade deixa de estar limitada aos funcionários de uma única empresa. Clientes precisam acessar aplicações. Fornecedores precisam colaborar em projetos. Empresas do mesmo grupo precisam compartilhar recursos. Subsidiárias podem possuir tenants Microsoft Entra separados. Apesar de todos esses cenários envolverem identidades externas , eles não são a mesma coisa.  Dentro do ecossistema Microsoft, três conceitos costumam gerar bastante confusão:  Microsoft Entra B2B,  Microsoft Entra External ID para cenários B2C e  Cross-Tenant Synchronization. Os três trabalham com identidades externas, mas possuem objetivos, arquiteturas e casos de uso diferentes. Microsoft Entra B2B: colaboração entre empresas O Microsoft Entra B2B (Business-to-Business) foi criado principalmente para permitir que uma organização colabore com usuários de outras organizações...

Introdução ao recurso de Atualização de ID Token no Azure DevOps e ao Terraform Task Version 5

 Workload identity federation ...


A Microsoft anunciou melhorias significativas na integração entre o Azure DevOps e o Terraform, com o lançamento da versão 5 da tarefa Microsoft DevLabs Terraform Task. Essa atualização introduz o suporte nativo ao ID Token Refresh, aprimorando a autenticação em pipelines que utilizam Workload Identity Federation via OpenID Connect (OIDC).

O que é o ID Token Refresh?

Em cenários de Workload Identity Federation, o Azure DevOps emite um ID Token com validade curta (~5 minutos), que é trocado por um Access Token para autenticação no Azure. Em pipelines longos ou com etapas manuais, esse token pode expirar, resultando em erros como AADSTS700024: Client assertion is not within its valid time range. O ID Token Refresh permite que o pipeline solicite um novo ID Token automaticamente quando necessário, garantindo a continuidade da execução.

O que mudou na versão 5 da Terraform Task?

A versão 5 da tarefa Microsoft DevLabs Terraform Task agora suporta o ID Token Refresh por padrão ao utilizar conexões de serviço com Workload Identity Federation. Isso elimina a necessidade de configurações manuais para renovação de tokens, tornando os pipelines mais resilientes.(//devedigest)

Além disso, os seguintes provedores Terraform foram atualizados para suportar essa funcionalidade:

azurerm
azapi
azuread

O backend azurerm para estado remoto também foi ajustado para compatibilidade com o ID Token Refresh.

Configuração do ID Token Refresh

Para utilizar o ID Token Refresh, é necessário definir as seguintes variáveis de ambiente:
ARM_OIDC_AZURE_SERVICE_CONNECTION_ID: ID da conexão de serviço no Azure DevOps.
ARM_OIDC_REQUEST_URL: URL da API para solicitação de novos ID Tokens (padrão: SYSTEM_OIDCREQUESTURI).
ARM_OIDC_REQUEST_TOKEN: Token de acesso do sistema (System.AccessToken).

No entanto, ao utilizar a versão 5 da Terraform Task, essas configurações são gerenciadas automaticamente pela tarefa, simplificando o processo para os usuários.

Exemplo de uso no YAML

Um exemplo de pipeline utilizando a nova tarefa:(Stack Overflow)
- task: TerraformTask@5
displayName: 'Terraform Init'
inputs:
provider: 'azurerm'
command: 'init'
backendServiceArm: 'sua-conexao-de-servico'
backendAzureRmStorageAccountName: 'nome-do-storage'
backendAzureRmContainerName: 'nome-do-container'
backendAzureRmKey: 'state.tfstate'
- task: TerraformTask@5
name: terraformPlan
displayName: 'Terraform Plan'
inputs:
provider: 'azurerm'
command: 'plan'
commandOptions: '-out tfplan'
environmentServiceNameAzureRM: 'sua-conexao-de-servico'
- task: TerraformTask@5
displayName: 'Terraform Apply'
condition: and(succeeded(), eq(variables['terraformPlan.changesPresent'], 'true'))
inputs:
provider: 'azurerm'
command: 'apply'
commandOptions: 'tfplan'
environmentServiceNameAzureRM: 'sua-conexao-de-servico'

Benefícios para equipes DevOps

  • Resiliência aprimorada: Evita falhas em pipelines longos devido à expiração de tokens.
  • Automação simplificada: Reduz a necessidade de scripts personalizados para renovação de tokens.
  • Segurança reforçada: Adoção de autenticação sem senha com tokens de curta duração.
  • Integração facilitada: Compatibilidade com provedores e backends atualizados.

Comments