Automatizar o processo de geração de tokens

Você está vendo a documentação do Apigee Edge.
Acesse a documentação da Apigee X.
informações

Ao usar o SAML com a API Edge, o processo usado para receber os 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 gerar uma senha única, que é usada para receber tokens OAuth2.

No entanto, o ambiente pode oferecer suporte à automação de tarefas de desenvolvimento comuns, como automação de testes ou integração/implantação contínua (CI/CD). Para automatizar essas tarefas quando o SAML está ativado, é preciso encontrar e atualizar os tokens OAuth2 sem precisar copiar/colar a senha de um navegador.

Sobre usuários de máquina

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

O usuário da máquina pode receber tokens OAuth2 sem precisar especificar uma senha. Isso significa que é possível automatizar completamente o processo de recebimento e atualização de 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:

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

Vídeo:assista 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 oferece a interface de linha de comando (CLI) para 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 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 da máquina em uma zona de identidade
delete Excluir um usuário da máquina em uma zona de identidade
help Receber 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 da máquina em uma zona de identidade

Como opção, você pode transmitir uma das flags a seguir para mostrar ajuda sobre o comando especificado: -h ou --help.

Fazer 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 sua 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 para que você só precise fazer login uma vez a cada 24 horas.

Receber ajuda para usar a CLI

Mostre as informações de uso da CLI com 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 para um comando específico transmitindo 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 da 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 o seguinte comando:
    usermgmt_platform create

    A lista de zonas de identidade é exibida:

    myzone1
    myzone2
  2. Insira 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. Digite 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áquina em uma zona de identidade

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

  1. Digite o seguinte comando:
    usermgmt_platform list
    . A lista de zonas de identidade é exibida:
    myzone1
    myzone2
  2. Insira 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 da máquina em uma zona de identidade

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

  1. Digite o seguinte comando:
    usermgmt_platform reset

    A lista de zonas de identidade é exibida:

    myzone1
    myzone2
  2. Insira o nome de uma zona no prompt:
    Enter a zone name: myzone1
  3. Digite o nome do usuário da máquina para 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. Digite a senha novamente quando solicitado.
    Enter the new password: password
    Re-enter password: password

    A senha foi redefinida.

    Reset password for machine user machineuser1@mycompany.com

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

Exclua um usuário da 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 o seguinte comando:
    usermgmt_platform delete
    . A lista de zonas de identidade é exibida:
    myzone1
    myzone2
  2. Insira 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 é 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 IU, adicione o usuário da máquina à organização do Edge ativada para SAML e atribua a ele os papéis necessários, como administrador da organização, conforme descrito em Como 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áquina com os utilitários 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 as credenciais do usuário da máquina não sejam comprometidas.

  2. Gere os tokens de acesso e atualização iniciais chamando o endpoint do 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 do cliente OAuth2 reservada, ZWRnZWNsaTplZGdlY2xpc2VjcmV0, no cabeçalho Authorization. A chamada mostra os tokens de acesso e atualização em stdout.

  3. Transmita o token de acesso a uma chamada da API de gerenciamento do Edge como o cabeçalho "Portador":
    curl -H "Authorization: Bearer ACCESS_TOKEN" \
      https://api.enterprise.apigee.com/v1/organizations/orgName
  4. Quando o token de acesso expirar, será possível atualizá-lo enviando o token de atualização para o endpoint do token SAML, 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" nos termos do contrato que rege o uso do Google Cloud Platform, incluindo os Termos Específicos do Serviço disponíveis em https://cloud.google.com/terms/service-terms.