Automatizar o processo de geração de tokens

Esta é a documentação do Apigee Edge.
Acesse Documentação da Apigee X.
informações

Ao usar SAML com a API Edge, o processo usado para obter acesso ao OAuth2 e tokens de atualização da declaração SAML é chamado de fluxo de senha. Com a senha fluxo, use um navegador para obter uma senha única, que será usada para obter o OAuth2 tokens.

No entanto, seu ambiente pode ser compatível com a automação para tarefas comuns de desenvolvimento, como automação de testes ou integração e implantação contínuas (CI/CD). Para automatizar essas tarefas quando o SAML estiver ativado, você precisará receber e atualizar os tokens OAuth2 sem ter que copiar/colar uma senha do navegador.

Sobre os usuários de máquina

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

Um usuário de máquina pode receber tokens OAuth2 sem precisar especificar uma senha. Isso significa que é possível automatizar completamente o processo de receber e atualizar tokens OAuth2 usando a API Edge.

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

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

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

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

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

Usar a CLI

Para usar a CLI de gerenciamento de usuários da máquina, 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 compatíveis e o comando correspondente para chamar a CLI de gerenciamento de usuários da máquina. 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.

Também é possível transmitir uma das seguintes flags para exibir ajuda sobre o comando especificado: -h ou --help

Faça login na CLI

Na primeira vez que você executar a CLI em um período de 24 horas, será 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 da máquina armazena um token de acesso na sua máquina local. Assim, você só precisa fazer login uma vez a cada 24 horas.

Receber ajuda para usar a CLI

Mostre as informações de uso da CLI usando o comando usermgmt_platform help. Consulte Usar a CLI para ver a lista de plataformas compatíveis.

usermgmt_platform help

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

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 sobre um comando específico passando o comando e a sinalização -h ou --help na linha de comando.

Por exemplo, para receber ajuda sobre o comando list:

usermgmt_platform list -h

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

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 com o comando usermgmt_platform create. Consulte Usar a CLI para ver a lista de plataformas compatíveis.

  1. Digite este comando:
    usermgmt_platform create

    A lista de zonas de identidade é exibida:

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

    O usuário é criado.

    Created machine user machineuser1@mycompany.com

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

Liste todos os usuários de máquina em uma zona de identidade usando o comando usermgmt_platform list. Consulte Usar a CLI para ver a lista de plataformas compatíveis.

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

    A lista de usuários de máquina na zona de identidade é exibida:

    Machine users in the zone:
    machineuser1@mycompany.com
        

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

Use o comando usermgmt_platform reset para redefinir a senha de um usuário de máquina em uma zona de identidade. Consulte Usar a CLI para ver a lista de plataformas compatíveis.

  1. Digite este comando:
    usermgmt_platform reset

    A lista de zonas de identidade é exibida:

    myzone1
    myzone2
  2. Digite o nome de uma zona no prompt:
    Enter a zone name: myzone1
  3. Digite o nome do usuário da máquina para quem você quer redefinir a senha:
    Reset User Password
    Enter the username for the machine user
    Username: machineuser1@mycompany.com
  4. Digite uma nova senha para o usuário da máquina. Quando solicitado, insira a senha novamente.
    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 com o comando usermgmt_platform delete. Consulte Usar a CLI para ver a lista de plataformas compatíveis.

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

    O usuário da máquina foi excluído.

    Deleted user machineuser1@mycompany.com

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

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

Receber os tokens OAuth2 do usuário da 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 o acurl(1) e get_token(1), conforme descrito em OAuth2 para usuários de máquina e usuários de máquina em zonas SAML.

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

  1. Use a ferramenta de codificação de URL de sua preferência para codificar o nome de usuário e a senha do usuário da máquina.

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

  2. Gere os tokens de acesso inicial e de atualização chamando o endpoint do token SAML, conforme o 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 reservada do cliente OAuth2, ZWRnZWNsaTplZGdlY2xpc2VjcmV0, no Cabeçalho Authorization. A chamada imprime os tokens de acesso e de atualização no stdout:

  3. Transmita o token de acesso para uma chamada da API Edge Management 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 SAML endpoint de token, como mostra o 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" na seção contrato que rege seu uso do Google Cloud Platform, incluindo o Serviço Termos específicos disponíveis em https://cloud.google.com/terms/service-terms.