Usar SAML com a API Edge Management

A autenticação básica é uma maneira de autenticar ao fazer chamadas para a API Edge Management. Para exemplo, faça a seguinte solicitação de cURL à API Edge Management 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 credenciais de autenticação básica. Você também pode transmitir um token OAuth2 no cabeçalho Bearer para tornar a API Edge Management chamadas. Exemplo:

curl -H "Authorization: Bearer access_token" https://ms_IP_DNS:8080/v1/organizations/orgName

Depois de ativar o SAML, você pode desativar a autenticação básica. se você desativar a autenticação básica, todas scripts (scripts do Maven, scripts de shell, apigeetool etc.) que dependem do Edge Management com suporte para a autenticação básica não funcionam mais. Atualize as chamadas de API e scripts que usam a autenticação básica para transmitir tokens de acesso 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. A O utilitário get_token aceita suas credenciais e imprime um token de acesso válido. Se um token puder ser atualizado, ele o atualizará e e imprimi-lo. Se o token de atualização expirar, as credenciais do usuário serão solicitadas.

Os utilitários get_token os tokens no disco, prontos para uso quando necessário. Ele também imprime um token de acesso válido em stdout. A partir daí, você pode usar o Postman ou incorporá-lo em uma variável de ambiente para uso em curl.

O procedimento a seguir descreve como usar get_token para obter um token de acesso OAuth2 para fazer chamadas de API de gerenciamento do Edge:

  1. Faça o download do sso-cli. pacote:
    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 do Edge. Se você configurou o TLS no SSO de Borda, use https e o o número de porta TLS correto.

  2. Descompacte o pacote ssocli-bundle.zip:
    unzip ssocli-bundle.zip
  3. Instalar get_token no /usr/local/bin:
    > ./install Use o a opção -b para especificar local diferente: > ./install -b caminho
  4. Defina o SSO_LOGIN_URL variável de ambiente para seu URL de login, no formato:
    exportar 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 do Edge. Se você tiver configurado o TLS no SSO de Edge, use https e o número de porta TLS correto.
  5. Em um navegador, acesse o seguinte URL para receber uma senha única:
    http://edge_sso_IP_DNS:9099/passcode

    Se você tiver configurado o TLS no SSO de Edge, use https e o número da porta TLS correto.

    Observação: se você não tiver feito login pelo seu provedor de identidade, uma solicitação de login.

    Esse URL retorna uma senha única 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.
  6. 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 do Edge. Você está a senha de uso único que você recebeu na etapa 3:
    Código único ( Receba um em https://edge_sso_IP.com/passcode )
    Insira a senha se o SAML estiver ativado ou pressione ENTER:


    Digite a senha. O utilitário get_token recebe o acesso ao OAuth2. token, imprime-o na tela e grava esse token e o token de atualização em ~/.sso-cli.

    Insira a senha na linha de comando usando um comando get_token no formato:
    > get_token -u emailAddress -p senha
  7. Transmita o token de acesso para uma chamada da API Edge Management como o cabeçalho do portador:
    > curl -H "Autorização: portador access_token" https://ms_IP:8080/v1/organizations/orgName

    Depois de obter um novo token de acesso pela primeira vez, você pode obter o token de acesso e transmiti-lo para uma chamada de API com um único comando, conforme mostrado abaixo:
    > cabeçalho=`get_token` && curl -H "Autorização: Bearer $header" https://ms_IP:8080/v1/o/orgName

    Com esta forma de comando, se o token de acesso tiver expirado, ele será atualizado automaticamente até que o token de atualização expire.

Quando o token de atualização expirar, get_token solicitará uma nova senha. Você deverá acessar o URL mostrado acima na Etapa 3 e gerar uma nova senha antes de poder novo token de acesso OAuth

Como usar a API de gerenciamento para receber e atualizar tokens

Como usar o OAuth2 segurança com a API de gerenciamento do Apigee Edge contém instruções que mostram como usar o API Edge Management para receber e atualizar tokens. Também é possível usar chamadas da API Edge para tokens geradas a partir de declarações SAML.

A única diferença entre as chamadas de API documentada em Como usar a segurança OAuth2 com a API de gerenciamento do Apigee Edge é que o URL da chamada precisa fazer referência à zona nome. Além disso, para gerar o token de acesso inicial, é necessário incluir a senha, como mostrada 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 imprime o tokens de atualização e acesso à tela.

Para atualizar o token de acesso mais tarde, use a seguinte chamada que o inclui:

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'