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:

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

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.

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 Ajuda para usar a CLI
list Listar todos os usuários de máquina em uma zona de identidade
reset Redefinir a senha de um usuário de máquina em uma zona de identidade

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.