Usar um IdP externo com a API Edge Management

A autenticação básica é uma maneira de se autenticar ao fazer chamadas para a API de gerenciamento da Edge. Por exemplo, é possível fazer a seguinte solicitação curl para a API de gerenciamento da Edge para acessar informações sobre sua organização:

curl -u USER_NAME:PASSWORD http://MS_IP_DNS:8080/v1/organizations/ORG_NAME

Neste exemplo, você usa a opção curl -u para transmitir credenciais de autenticação básica. Como alternativa, é possível transmitir um token OIDC/OAuth2 no cabeçalho Authorization: Bearer para fazer chamadas de API de gerenciamento da Edge, como mostra o exemplo a seguir:

curl -H "Authorization: Bearer ACCESS_TOKEN" http://MS_IP_DNS:8080/v1/organizations/ORG_NAME

Depois de ativar um IdP externo para autenticação, você pode desativar a autenticação básica. Se você desativar a autenticação básica, todos os scripts (como Maven, shell e apigeetool) que dependem de chamadas de API de gerenciamento da Edge que oferecem suporte à autenticação básica não vão mais funcionar. É necessário atualizar todas as chamadas de API e scripts que usam a autenticação básica para transmitir tokens de acesso do OAuth2 no Bearer cabeçalho.

Receber e atualizar tokens com get_token

O utilitário get_token usa o fluxo padrão do código do dispositivo OAuth 2.0 para adquirir tokens de acesso e tokens de atualização do OIDC/OAuth2. O utilitário pede que você acesse um URL no navegador para autenticar pelo IdP externo (ou LDAP local) e, em seguida, desbloqueia automaticamente o terminal para imprimir o token de acesso válido.

O utilitário get_token armazena os tokens em cache com segurança no disco em ~/.sso-cli/, prontos para uso quando necessário. Ele também imprime um token de acesso válido para stdout. Se um token atual puder ser atualizado, o utilitário vai atualizá-lo automaticamente. Se o token de atualização expirar, ele vai iniciar um novo fluxo de autorização baseado no navegador.

Para receber um token de acesso do OAuth2 para fazer chamadas de API de gerenciamento da Edge:

  1. Os utilitários get_token e acurl são pré-instalados no nó que hospeda o SSO da Apigee (nó OpenLDAP) em: /opt/apigee/apigee-openldap/bin/
  2. (Opcional) Defina a variável de ambiente SSO_LOGIN_URL como o URL do emissor de SSO, no formato:
    export SSO_LOGIN_URL="http://EDGE_SSO_IP_DNS:9099"

    Em que EDGE_SSO_IP_DNS é o endereço IP ou o nome DNS da máquina que hospeda o SSO da Apigee. Se você configurou o TLS no SSO da Apigee, use https e o número da porta TLS correto.

  3. Invoque get_token com seu endereço de e-mail para iniciar o fluxo do código do dispositivo OAuth 2.0:
    /opt/apigee/apigee-openldap/bin/get_token -u EMAIL_ADDRESS

    Em que EMAIL_ADDRESS é o endereço de e-mail de um usuário da Edge.

  4. O utilitário vai pausar e imprimir um URL e um código de dispositivo de 8 caracteres no terminal:
    Please visit: http://EDGE_SSO_IP_DNS:9099/device
    And enter code: ABCD-EFGH
  5. Abra o URL especificado no navegador, insira o código do dispositivo e clique em Enviar. Você será redirecionado para o IdP externo (ou formulário LDAP local) para autenticar e aprovar a solicitação.
  6. Depois de se autenticar no navegador, volte ao terminal. O utilitário get_token vai detectar automaticamente a aprovação, receber o token de acesso do OAuth2, imprimi-lo na tela e armazená-lo em cache com segurança.
  7. Transmita o token de acesso para uma chamada de API Management da Edge usando o utilitário acurl, que lê automaticamente o token armazenado em cache e injeta o cabeçalho do portador:
    /opt/apigee/apigee-openldap/bin/acurl http://MS_IP_DNS:8080/v1/organizations/ORG_NAME

    Como alternativa, é possível transmitir o token manualmente usando curl padrão:

    curl -H "Authorization: Bearer ACCESS_TOKEN" \
      http://MS_IP_DNS:8080/v1/organizations/ORG_NAME

Usar a API Management para receber e atualizar tokens de atualização

O endpoint legado /passcode foi removido. Portanto, os usuários humanos precisam usar o utilitário get_token, conforme descrito anteriormente, para iniciar o fluxo do código do dispositivo OAuth 2.0 baseado no navegador para a autenticação inicial.

Se você estiver criando scripts ou pipelines de CI/CD que não podem interagir com um navegador, consulte Automatizar tarefas com usuários de máquinas. Usuários ou aplicativos de máquinas automatizadas com credenciais válidas podem usar chamadas de API padrão para obter e atualizar token de atualização.