A autenticação básica é uma forma de autenticação ao fazer chamadas para a API Edge Management.
Por exemplo, é possível fazer a seguinte solicitação curl
à API Edge Management para acessar
informações sobre sua organização:
curl -u USER_NAME:PASSWORD https://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. Também é possível transmitir um token OAuth2 no cabeçalho Bearer
para fazer chamadas de API de gerenciamento do Edge, como mostra o exemplo a seguir:
curl -H "Authorization: Bearer ACCESS_TOKEN" https://MS_IP_DNS:8080/v1/organizations/ORG_NAME
Depois de ativar um IdP externo para autenticação, é possível desativar a autenticação
básica. Se você desativar a autenticação básica, todos os scripts (como Maven, shell e apigeetool
) que dependem das chamadas da API de gerenciamento de borda compatíveis com a autenticação básica não funcionarão mais. É necessário atualizar todas as chamadas de API e scripts que usam a autenticação básica para transmitir tokens de acesso OAuth2 no cabeçalho Bearer
.
Receber e atualizar tokens com get_token
O utilitário get_token
troca suas credenciais de autenticação básica (e, em alguns casos, uma
senha) por um token de acesso e atualização do OAuth2. O utilitário get_token
aceita suas credenciais e retorna um token de acesso válido. Se um token puder ser atualizado, o utilitário o atualizará e retornará. Se o token de atualização expirar, ele solicitará credenciais do usuário.
O utilitário get_token
armazena os tokens em disco, prontos para uso quando necessário. Ele
também mostra um token de acesso válido para stdout
. A partir daí, é possível usar uma extensão do navegador, como o Postman, ou incorporá-la em uma variável de ambiente para uso em curl
.
Para receber um token de acesso OAuth2 e fazer chamadas da API Edge Management:
- Faça o download do pacote
sso-cli
:curl http://EDGE_SSO_IP_DNS:9099/resources/scripts/sso-cli/ssocli-bundle.zip -o "ssocli-bundle.zip"
Em que EDGE_SSO_IP_DNS é o endereço IP ou o nome DNS da máquina que hospeda o módulo de SSO da Apigee. Se você configurou o TLS no SSO da Apigee, use
https
e o número de porta TLS correto. - Descompacte o pacote
ssocli-bundle.zip
, como no exemplo a seguir:unzip ssocli-bundle.zip
- Instale
get_token
em/usr/local/bin
, como no exemplo a seguir:./install -b PATH
A opção
-b
especifica um local diferente. - Defina a variável de ambiente
SSO_LOGIN_URL
como seu URL de login desta forma:export SSO_LOGIN_URL="http://EDGE_SSO_IP_DNS:9099"
Em que EDGE_SSO_IP_DNS é o endereço IP da máquina que hospeda o módulo SSO da Apigee. Se você configurou o TLS no SSO da Apigee, use
https
e o número de porta TLS correto. - (Somente SAML) Em um navegador, acesse este URL para receber uma senha única:
http://EDGE_SSO_IP_DNS:9099/passcode
Se você configurou o TLS no SSO da Apigee, use
https
e o número de porta TLS correto.Essa solicitação retorna uma senha única que permanece válida até que você atualize esse URL para receber uma nova senha ou que você use a senha com
get_token
para gerar um token de acesso.Observe que só é possível usar uma senha ao autenticar com um IdP SAML. Não é possível usar uma senha para autenticar com um IdP LDAP.
- Invoque
get_token
para receber o token de acesso do OAuth2, como no exemplo a seguir:get_token -u EMAIL_ADDRESS
Em que EMAIL_ADDRESS é o endereço de e-mail de um usuário de borda.
(Somente SAML) Digite a senha na linha de comando, além do endereço de e-mail, como no exemplo a seguir:
get_token -u EMAIL_ADDRESS -p PASSCODE
O utilitário
get_token
recebe o token de acesso OAuth2, mostra-o na tela e grava o token e o token de atualização em~/.sso-cli
. - Transmita o token de acesso para uma chamada da API de gerenciamento do Edge como o cabeçalho
Bearer
, conforme o exemplo a seguir:curl -H "Authorization: Bearer ACCESS_TOKEN" https://MS_IP:8080/v1/organizations/ORG_NAME
- Depois de receber um novo token de acesso pela primeira vez, é possível recebê-lo e transmiti-lo para uma chamada de API com um único comando, como mostra o exemplo a seguir:
header=`get_token` && curl -H "Authorization: Bearer $header" https://MS_IP:8080/v1/o/ORG_NAME
Com essa forma do comando, se o token de acesso expirar, ele será atualizado automaticamente até que o token de atualização expire.
(Somente SAML) Depois que o token de atualização expirar, o get_token
vai solicitar uma nova senha. Navegue até o URL mostrado acima na etapa 3 e gere uma nova senha antes de gerar um novo token de acesso OAuth.
Usar a API de gerenciamento para acessar e atualizar tokens
Usar a segurança do OAuth2 com a API de gerenciamento do Apigee Edge mostra como usar a API de gerenciamento de borda para receber e atualizar tokens. Também é possível usar chamadas da API Edge para receber tokens gerados a partir de declarações SAML.
A única diferença entre as chamadas de API documentadas em Como usar a segurança OAuth2 com a API de gerenciamento do Apigee Edge é que o URL da chamada precisa fazer referência ao nome da zona. Além disso, para gerar o token de acesso inicial com um IDP SAML, é preciso incluir a senha, conforme mostrado na etapa 3 do procedimento acima.
Para autorização, transmita uma credencial de cliente OAuth2 reservada no
cabeçalho Authorization
. A chamada exibe os tokens de acesso e de atualização na tela.
Receber um token de acesso
(LDAP) Use a seguinte chamada de API para gerar os tokens iniciais de acesso e atualização:
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 \ http://EDGE_SSO_IP_DNS:9099/oauth/token -s \ -d 'grant_type=password&username=USER_EMAIL&password=USER_PASSWORD'
(SAML) Use a seguinte chamada de API para gerar os tokens iniciais de acesso e atualização:
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://EDGE_SSO_IP_DNS:9099/oauth/token -s \ -d 'grant_type=password&response_type=token&passcode=PASSCODE'
A autenticação com um IdP SAML exige uma senha temporária, ao contrário de um IdP LDAP.
Atualizar um token de acesso
Para atualizar o token de acesso posteriormente, use a seguinte chamada que inclui o token de atualização:
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://EDGE_SSO_IP_DNS:9099/oauth/token \ -d 'grant_type=refresh_token&refresh_token=REFRESH_TOKEN'