Edge para nuvem privada v. 4.17.09
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 para a API de gerenciamento do Edge a fim de acessar informações sobre sua organização:
curl -u userName:pWord https://ms_IP_DNS:8080/v1/organizations/orgName
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 da API de gerenciamento do Edge. Exemplo:
curl -H "Authorization: Bearer <access_token>" https://ms_IP_DNS:8080/v1/organizations/orgName
Depois de ativar o SAML, será possível desativar a autenticação básica. Se você fizer isso, todos os scripts (scripts do Maven, scripts de shell, apigeetool
etc.) que dependem das chamadas de API de gerenciamento de borda compatíveis com a autenticação básica não funcionarão mais. É preciso atualizar todas as chamadas de API e todos os scripts que usam a autenticação básica para transmitir tokens de acesso do OAuth2 no cabeçalho do portador.
Como usar get_token para receber e atualizar tokens
O utilitário get_token
troca suas credenciais de autenticação básica e uma senha por um token de acesso e atualização do OAuth2. O utilitário get_token
aceita suas credenciais e imprime um token de acesso válido. Se um token puder ser atualizado, ele vai atualizar e
imprimir o token. 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 imprime um token de acesso válido para stdout.
Depois você pode usar o Postman ou incorporá-lo em uma variável de ambiente para usar no curl.
O procedimento a seguir descreve como usar get_token
para receber um token de acesso do OAuth2 e fazer chamadas da API de gerenciamento do Edge:
- 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 do nome DNS da máquina que hospeda o módulo SSO de borda. Se você configurou o TLS no SSO do Edge, use
https
e o número de porta TLS correto. - Descompacte o pacote
ssocli-bundle.zip
:unzip ssocli-bundle.zip
- Instalar
get_token
em/usr/local/bin
:
./install
Use a opção
-b
para especificar um local diferente:./install -b path
- Defina a variável de ambiente
SSO_LOGIN_URL
como seu URL de login no formato:export SSO_LOGIN_URL="http://edge_sso_IP_DNS:9099"
em que edge_sso_IP_DNS é o endereço IP do nome DNS da máquina que hospeda o módulo SSO de borda. Se você configurou o TLS no SSO do Edge, use
https
e o número de porta TLS correto. - Em um navegador, acesse o seguinte URL para receber uma senha única:
http://edge_sso_IP_DNS:9099/passcode
Se você configurou o TLS no SSO do Edge, use
https
e o número de porta TLS correto.Esse URL retorna uma senha única que permanece válida até que você atualize esse URL para receber uma nova senha ou use a senha com
get_token
para gerar um token de acesso. - Invoque
get_token
para receber o token de acesso do OAuth2:
get_token -u emailAddress
em que emailAddress é o endereço de e-mail de um usuário de borda. Será necessário inserir a senha única da etapa 3:
One Time Code ( Get one at https://edge_sso_IP.com/passcode ) Enter the passcode if SAML is enabled or press ENTER:
Digite a senha. O utilitário
get_token
recebe o token de acesso OAuth2, mostra o token na tela e o grava com o token de atualização em~/.sso-cli
.Você pode inserir a senha na linha de comando usando um comando
get_token
no formato:get_token -u emailAddress -p passcode
- 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://ms_IP:8080/v1/organizations/orgName
Depois de receber um novo token de acesso pela primeira vez, você pode receber e transmitir esse token para uma chamada de API com um único comando, conforme mostrado abaixo:
header=`get_token` && curl -H "Authorization: Bearer $header" https://ms_IP:8080/v1/o/orgName
Com essa forma do comando, se o token de acesso expirar, ele será atualizado automaticamente até que o token de atualização expire.
Depois que o token de atualização expira, o get_token
solicita uma nova senha. Acesse o URL mostrado acima na Etapa 3 e gere uma nova senha antes de gerar um novo token de acesso do OAuth.
Uso da API de gerenciamento para acessar e atualizar tokens
Como usar a segurança OAuth2 com a API de gerenciamento do Apigee Edge contém instruções que mostram como usar a API de gerenciamento de borda para receber e atualizar tokens. Também é possível usar chamadas da API Edge para 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, inclua a senha, conforme mostrado na etapa 3 do procedimento acima.
Por exemplo, 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'
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.
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=refreshToken'