Automatizar tarefas com usuários de máquina

Ao usar um IdP externo com a API Edge, o processo padrão para receber tokens de acesso OIDC/OAuth2 da CLI é o fluxo de código do dispositivo OAuth 2.0. Com esse fluxo, você usa o utilitário get_token, que solicita que você acesse um URL em um navegador para fazer a autenticação pelo IdP e, em seguida, desbloqueia automaticamente o terminal.

No entanto, o ambiente de desenvolvimento pode oferecer suporte à automação para tarefas comuns de desenvolvimento, como automação de testes ou pipelines de CI/CD. Para automatizar essas tarefas quando um IdP externo está ativado, você precisa de uma maneira de receber e atualizar tokens OAuth2 sem usar um navegador.

O Edge oferece suporte à geração automatizada de tokens usando usuários de máquinas sem interface. Um usuário de máquina pode receber tokens OIDC/OAuth2 por concessões de senha padrão sem precisar de um navegador. Isso significa que você pode automatizar completamente o processo de recebimento e atualização de tokens para seus scripts.

Criar um usuário de máquina

Você pode criar um usuário de máquina que seja usado por todas as organizações ou criar um usuário de máquina separado para cada organização.

O usuário de máquina é criado e armazenado diretamente no diretório OpenLDAP local e marcado explicitamente como um usuário de máquina (employeeType: machineuser). Isso permite que o SSO da Apigee autentique com segurança o usuário de máquina por uma concessão de senha, mesmo quando o SAML/OIDC federado é aplicado estritamente para usuários humanos.

Para instruções detalhadas sobre como criar, listar e gerenciar usuários de máquinas, consulte Gerenciar usuários de máquinas com apigee-machineuser.sh.

Receber e atualizar tokens de usuário de máquina

Você pode usar os utilitários get_token e acurl fornecidos em /opt/apigee/apigee-openldap/bin/ ou curl padrão para receber tokens para usuários de máquinas.

  • Usando os utilitários da Apigee:os wrappers get_token e acurl processam automaticamente o armazenamento em cache de tokens, a geração de payload e a atualização automática. Para instruções detalhadas e exemplos de como usar essas ferramentas, consulte Usar os utilitários get_token e acurl.
  • Usando curl padrão:se os scripts de automação não tiverem acesso aos wrappers da Apigee, você poderá interagir diretamente com o SSO da Apigee usando os seguintes comandos curl padrão:

Para obter e atualizar tokens usando curl token de atualização padrão:

  1. Use a seguinte chamada de API para gerar os tokens de acesso e de atualização iniciais diretamente do SSO da Apigee:
    curl -H "Content-Type: application/x-www-form-urlencoded;charset=utf-8" \
      -H "accept: application/json;charset=utf-8" \
      -X POST http://Edge_SSO_IP_DNS:9099/token -s \
        -d 'grant_type=password&username=machineUserEmail&password=machineUserPassword&client_id=edgecli&client_secret=edgeclisecret&scope=openid%20profile%20email%20offline_access'
      
  2. Transmita o token de acesso para uma chamada de API Management do Edge no cabeçalho Authorization: Bearer:
    curl -H "Authorization: Bearer access_token" \
      http://MS_IP_DNS:8080/v1/organizations/org_name
  3. Para atualizar o token de acesso de forma nativa mais tarde, use a seguinte chamada que inclui o token de atualização:
    curl -H "Content-Type:application/x-www-form-urlencoded;charset=utf-8" \
      -H "Accept: application/json;charset=utf-8" \
      -X POST http://Edge_SSO_IP_DNS:9099/token \
      -d 'grant_type=refresh_token&refresh_token=refreshToken&client_id=edgecli&client_secret=edgeclisecret'