Edge para nuvem privada v4.18.01
A autenticação básica é uma maneira de autenticar ao fazer chamadas para a API de gerenciamento do Edge. Por exemplo, é possível fazer a seguinte solicitação cURL à API de gerenciamento do Edge para 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 as credenciais de autenticação básica. Como alternativa, é possível transmitir um token OAuth2 no cabeçalho Bearer para fazer chamadas de 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, é 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 de chamadas de API de gerenciamento do Edge compatíveis com a autenticação básica deixarão de funcionar. Atualize todas as chamadas de API e scripts que usam a autenticação básica para transmitir tokens de acesso do OAuth2 no cabeçalho Bearer.
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 token de 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 será atualizado e impresso. Se o token de atualização expirar, as credenciais do usuário serão solicitadas.
O utilitário get_token armazena os tokens no disco, prontos para uso quando necessário. Ele também imprime um token de acesso válido para stdout. Em seguida, use o Postman ou incorpore-o 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 OAuth2 para fazer chamadas de 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 de SSO do Edge. 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 - Instale 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 de SSO do Edge. 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 de uso único:
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.
Observação: se você não tiver feito login pelo seu provedor de identidade, será necessário fazer login.
Esse URL retorna uma senha de uso único que permanece válida até que você o atualize 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 OAuth2:
> get_token -u emailAddress
em que emailAddress é o endereço de e-mail de um usuário do Edge. Será solicitado que você insira a senha de uso único que recebeu na etapa 3:
Código de uso único ( receba um em https://edge_sso_IP.com/passcode)
Insira a senha se o SAML estiver ativado ou pressione ENTER:
Insira a senha. O utilitário get_token recebe o token de acesso OAuth2, o imprime na tela e o grava, junto com o token de atualização, em ~/.sso-cli.
É possível 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 para uma chamada de API de gerenciamento do Edge como o cabeçalho do Bearer:
> 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 recebê-lo e transmiti-lo para uma chamada de API em um único comando, como 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 tiver expirado, ele será atualizado automaticamente até que o token de atualização expire.
Depois que o token de atualização expirar, o get_token vai solicitar uma nova senha. Acesse o URL mostrado acima na Etapa 3 e gere uma nova senha antes de gerar um novo token de acesso OAuth.
Como usar a API Management para receber e atualizar tokens
Como usar a segurança do OAuth2 com a API de gerenciamento da Apigee Edge contém instruções que mostram como usar a API de gerenciamento da Edge para receber e atualizar tokens. Também é possível usar chamadas de API Edge para tokens gerados de declarações SAML.
A única diferença entre as chamadas de API documentadas em Como usar a segurança do OAuth2 com a API de gerenciamento da 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, é necessário incluir a senha, conforme mostrado na etapa 3 do procedimento acima.
Por exemplo, use a seguinte chamada de API para gerar os tokens de acesso e de atualização iniciais:
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 mostra os tokens de acesso e de atualização na tela.
Para atualizar o token de acesso mais tarde, 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'