Automatizar o processo de geração de tokens

Você está lendo a documentação do Apigee Edge.
Acesse a documentação da Apigee X.
info

Ao usar o SAML com a API Edge, o processo usado para receber tokens de acesso e atualização do OAuth2 da declaração SAML é chamado de fluxo de senha. Com o fluxo de senha, você usa um navegador para receber uma senha única que é usada para receber tokens do OAuth2.

No entanto, seu ambiente pode oferecer suporte à automação para tarefas de desenvolvimento comuns, como automação de testes ou integração/implantação contínuas (CI/CD). Para automatizar essas tarefas quando o SAML está ativado, você precisa de uma maneira de receber e atualizar tokens do OAuth2 sem precisar copiar/colar uma senha de um navegador.

Sobre usuários de máquinas

O Apigee Edge oferece suporte a usuários de máquinas na sua organização ativada para SAML. Os usuários de máquinas são usados estritamente para automação e não são acessados diretamente por um humano.

Um usuário de máquina pode receber tokens do OAuth2 sem precisar especificar uma senha. Isso significa que você pode automatizar completamente o processo de recebimento e atualização de tokens do OAuth2 usando a API Edge.

Etapas para automatizar o processo de geração de tokens

Para automatizar o processo de geração de tokens:

Etapa Descrição
1 Criar um usuário de máquina na sua zona de identidade SAML
2 Atribuir papéis necessários ao usuário de máquina na sua organização do Edge
3 Receber os tokens do OAuth2 do usuário de máquina

Vídeo:assista a um vídeo curto para saber como automatizar o acesso às APIs do Apigee Edge usando credenciais de usuário de máquina.

Gerenciar usuários de máquinas para zonas de identidade SAML

O Apigee oferece a interface de linha de comando (CLI) de gerenciamento de usuários de máquinas para criar e gerenciar contas de usuários de máquinas. As etapas para usar a CLI de gerenciamento de usuários de máquinas são descritas nas seções a seguir.

Usar a CLI

Para usar a CLI de gerenciamento de usuários de máquinas, primeiro faça o download e descompacte o seguinte arquivo: usermgmt.tar.gz(1)

O formato para chamar a CLI é o seguinte:

usermgmt_platform [command] [flags]

A tabela a seguir resume as plataformas com suporte e o comando correspondente para chamar a CLI de gerenciamento de usuários de máquinas. Os executáveis estão localizados no diretório usermgmt.

Plataforma 32 bits 64 bits
Linux usermgmt_linux_386 usermgmt_linux_amd64
Mac usermgmt_darwin_386 usermgmt_darwin_amd64
Windows usermgmt_windows_386 usermgmt_windows_amd64

A tabela a seguir resume os comandos que podem ser especificados.

Comando Mais informações
create Criar um usuário de máquina em uma zona de identidade
delete Excluir um usuário de máquina em uma zona de identidade
help Receber ajuda para usar a CLI
list Listar todos os usuários de máquinas em uma zona de identidade
reset Redefinir a senha de um usuário de máquina em uma zona de identidade

Opcionalmente, você pode transmitir uma das seguintes flags para mostrar ajuda no comando especificado: -h ou --help

Fazer login na CLI

Na primeira vez que você executa a CLI em um período de 24 horas, é necessário inserir as credenciais da conta zoneadmin.

Enter your Apigee credentials
Username: zoneadmin-username
Password: zoneadmin-password
If your user is opted with MFA, enter MFA code. Otherwise press enter to skip.
MFA: mfa-code_or_enter_to_skip

A CLI de gerenciamento de usuários de máquinas armazena um token de acesso na sua máquina local para que você só precise fazer login uma vez por período de 24 horas.

Receber ajuda para usar a CLI

Mostre informações de uso da CLI usando o usermgmt_platform help comando. Consulte Usar a CLI para conferir a lista de plataformas com suporte.

usermgmt_platform help

As seguintes informações de ajuda são mostradas:

A command-line interface (CLI) to manage machine user accounts to automate
Apigee identity zone management. Use the CLI to create, list, delete,
and reset the password for machine users.

Usage:
  usermgmt [flags]
  usermgmt [command]

Available Commands:
  create  Creates a machine users in an identity zone.
  delete  Deletes a machine users in an identity zone.
  help    Help about any command
  list    Lists the machine users in an identity zone.
  reset   Resets the password for a machine user in an identity zone.

Flags:
  -h, --help               help for usermgmt

Use "usermgmt [command] --help" for more information about a command.

Mostre a ajuda em um comando específico transmitindo o comando e a flag -h ou --help na linha de comando.

Por exemplo, para receber ajuda no comando list:

usermgmt_platform list -h

As seguintes informações de ajuda são mostradas:

Lists the machine users in an identity zone.

Usage:
  usermgmt list [flags]

Flags:
  -h, --help   help for list

Criar um usuário de máquina em uma zona de identidade

Crie um usuário de máquina em uma zona de identidade usando o usermgmt_platform create comando. Consulte Usar a CLI para conferir a lista de plataformas com suporte.

  1. Digite este comando:
    usermgmt_platform create

    A lista de zonas de identidade é mostrada:

    myzone1
    myzone2
  2. Insira o nome de uma zona no prompt:
    Enter a zone name: myzone1
  3. Insira um nome de usuário para o usuário de máquina:
    Create a Machine User
    Username: machineuser1@mycompany.com
  4. Insira uma senha para o usuário de máquina. Insira a senha novamente quando solicitado.
    Password: password
    Re-enter password: password 

    O usuário é criado.

    Created machine user machineuser1@mycompany.com

Listar todos os usuários de máquinas em uma zona de identidade

Liste todos os usuários de máquinas em uma zona de identidade usando o comando usermgmt_platform list. Consulte Usar a CLI para conferir a lista de plataformas com suporte.

  1. Digite este comando:
    usermgmt_platform list
    A lista de zonas de identidade é mostrada:
    myzone1
    myzone2
  2. Insira o nome de uma zona no prompt:
    Enter a zone name: myzone1

    A lista de usuários de máquinas na zona de identidade é mostrada:

    Machine users in the zone:
    machineuser1@mycompany.com
        

Redefinir a senha de um usuário de máquina em uma zona de identidade

Redefina a senha de um usuário de máquina em uma zona de identidade usando o comando usermgmt_platform reset. Consulte Usar a CLI para conferir a lista de plataformas com suporte.

  1. Digite este comando:
    usermgmt_platform reset

    A lista de zonas de identidade é mostrada:

    myzone1
    myzone2
  2. Insira o nome de uma zona no prompt:
    Enter a zone name: myzone1
  3. Insira o nome de usuário do usuário de máquina para o qual você quer redefinir a senha:
    Reset User Password
    Enter the username for the machine user
    Username: machineuser1@mycompany.com
  4. Insira uma nova senha para o usuário de máquina. Insira a senha novamente quando solicitado.
    Enter the new password: password
    Re-enter password: password

    A senha é redefinida.

    Reset password for machine user machineuser1@mycompany.com

Excluir um usuário de máquina em uma zona de identidade

Exclua um usuário de máquina em uma zona de identidade usando o comando usermgmt_platform delete. Consulte Usar a CLI para conferir a lista de plataformas com suporte.

  1. Digite este comando:
    usermgmt_platform delete
    A lista de zonas de identidade é mostrada:
    myzone1
    myzone2
  2. Insira o nome de uma zona no prompt:
    Enter a zone name: myzone1
  3. Insira o nome de usuário do usuário de máquina que você quer excluir:
    Delete User
    Enter the username for the machine user
    Username: machineuser1@mycompany.com 

    O usuário de máquina é excluído.

    Deleted user machineuser1@mycompany.com

Atribuir papéis necessários ao usuário de máquina na sua organização do Edge

Usando a interface, adicione o usuário de máquina à sua organização do Edge ativada para SAML e atribua a ele os papéis necessários (como administrador da organização), conforme descrito em Adicionar usuários.

Receber os tokens do OAuth2 do usuário de máquina

É possível automatizar o processo de geração de tokens e processar o armazenamento em cache de tokens para usuários de máquinas com os acurl(1) e get_token(1) utilitários, conforme descrito em OAuth2 para usuários de máquinas e Usuários de máquinas em zonas SAML.

Para receber os tokens do OAuth2 do usuário de máquina manualmente com curl:

  1. Use a ferramenta de codificação de URL preferida para codificar o nome de usuário e a senha do usuário de máquina.

    Aviso: use uma ferramenta de codificação de URL interna para garantir que as credenciais do usuário de máquina não sejam comprometidas.

  2. Gere os tokens de acesso e atualização iniciais chamando o endpoint de token SAML, mostrado no exemplo a seguir:
    curl -H "Content-Type: application/x-www-form-urlencoded;charset=utf-8" \
      -H "accept: application/json;charset=utf-8" \
      -H "Authorization: Basic ZWRnZWNsaTplZGdlY2xpc2VjcmV0" -X POST \
      https://zoneName.login.apigee.com/oauth/token -s \
      -d 'grant_type=password&username=machineusername&password=machineuserpassword'

    Para autorização, transmita a credencial de cliente OAuth2 reservada, ZWRnZWNsaTplZGdlY2xpc2VjcmV0, no Authorization cabeçalho. A chamada imprime os tokens de acesso e atualização para stdout.

  3. Transmita o token de acesso para uma chamada de API de gerenciamento do Edge como o cabeçalho do portador:
    curl -H "Authorization: Bearer ACCESS_TOKEN" \
      https://api.enterprise.apigee.com/v1/organizations/orgName
  4. Quando o token de acesso expirar, você poderá atualizá-lo enviando o token de atualização para o endpoint de token SAML token, conforme mostrado no exemplo a seguir:
    curl -H "Content-Type:application/x-www-form-urlencoded;charset=utf-8" \
      -H "Accept: application/json;charset=utf-8" \
      -H "Authorization: Basic ZWRnZWNsaTplZGdlY2xpc2VjcmV0" -X POST \
      https://zoneName.login.apigee.com/oauth/token \
      -d 'grant_type=refresh_token&refresh_token=REFRESH_TOKEN'

(1) Copyright 2023 Google LLC
As ferramentas usermgmt, acurl e get_token são disponibilizadas como "Software" de acordo com o contrato que rege seu uso do Google Cloud Platform, incluindo os Termos específicos do serviço disponíveis em https://cloud.google.com/terms/service-terms.