Acessar a API Edge com SAML

Esta é a documentação do Apigee Edge.
Acesse Documentação da Apigee X.
informações

O SAML é compatível com um ambiente de Logon único (SSO). Ao usar o SAML com o Edge, você oferece suporte ao SSO para a interface e a API do Edge, além de todos os outros serviços que você fornece e que também SAML.

Pré-requisito:você precisa ativar o SAML por pelo menos uma organização antes de poder usá-la para acessar a API Edge.

Diferenças entre SAML e OAuth2

Uma vez configurado o SAML, o uso dele é muito semelhante a usar o OAuth2 para acessar API Edge. Ao chamar a API Edge, você inclui um token de acesso OAuth2 sua solicitação.

A principal diferença entre o SAML e o OAuth2 ao acessar a API Edge está atrapalhando você recebe tokens. Com o SAML, você precisa incluir o seguinte ao receber o par de tokens:

  1. Zonas: os usuários do Edge para nuvem pública precisam fazer referência ao nome da zona ao receber tokens.
  2. Senha:inclua uma senha única ao solicitar acesso/atualização. par de tokens.

O SAML usa os mesmos endpoints no serviço Edge OAuth2, com a adição do nome da zona apropriado.

Para obter tokens de acesso com SAML, você pode usar um dos métodos a seguir, descritos nesta seção:

Além disso, você pode automatizar o processo de geração de tokens para usuários de máquinas, conforme descrito em Automatizar o processo de geração de tokens.

Receber tokens de acesso com get_token

Você pode usar o utilitário get_token para trocar suas credenciais pelo acesso ao OAuth2 e tokens de atualização usados com SAML.

Para receber um token de acesso com get_token:

  1. Defina a variável de ambiente SSO_LOGIN_URL como seu URL de login. O URL de login tem da seguinte forma:
    https://zoneName.login.apigee.com

    Por exemplo, para uma zona chamada "acme", defina SSO_LOGIN_URL como "https://acme.login.apigee.com". como mostra o exemplo a seguir:

    export SSO_LOGIN_URL=https://acme.login.apigee.com
  2. Chame get_token para receber o token de acesso do OAuth2:
    get_token -u me@example.com

    Você será solicitado a visitar o URL exibido para obter uma senha de uso único:

    Get passcode from https://acme.login.apigee.com/passcode
    [Note:  Passcode can be used only time time and expires] Input passcode (no spaces) and then press ENTER:

    Se você não fez login recentemente usando seu provedor de identidade, será solicitado que você faça login

    Esse URL retorna uma senha única que permanece válida até que você o atualize para gere uma nova senha ou use a senha com get_token para gerar uma token de acesso. Exemplo:

  3. Digite a senha. O utilitário get_token recebe os tokens OAuth2, imprime o token de acesso em stdout e grava os tokens de acesso e atualização para ~/.sso-cli.

  4. Chame a API Edge e transmita o token de acesso no Authorization: Bearer , conforme o exemplo a seguir:
    curl https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval \
      -H "Authorization: Bearer ACCESS_TOKEN"

    O valor do token de acesso pode ser copiado de stdout.

    Este exemplo mostra detalhes sobre a organização. Para uma lista completa de recursos Endpoints da API, consulte Referência da API Apigee Edge.

Quando seu token de acesso expirar, você poderá chamar get_token de novo para receber um novo acesso com base no token correto anterior. Exemplo:

get_token -u me@example.com

Uma nova senha não será solicitada até que o token de atualização expire.

Quando o token de atualização expirar, o get_token vai pedir uma nova senha. Você deve gerar uma nova senha antes de gerar um novo token de acesso OAuth2.

Receber tokens de acesso com o serviço Edge OAuth2

Use o serviço Edge OAuth2 para receber os tokens de acesso usados com o SAML. Para autenticar você mesmo com a API Edge, usa uma senha em sua solicitação inicial para obter acesso/atualização e novamente para obter um novo par de tokens.

Para conseguir um par de tokens com a API Edge:

  1. Em um navegador, acesse o seguinte URL para receber uma senha única:
    https://zoneName.login.apigee.com/passcode

    Por exemplo, para uma zona chamada "acme", acesse o seguinte URL:

    https://acme.login.apigee.com/passcode

    Se você não fez login recentemente usando seu provedor de identidade, será solicitado que você faça login

    Esse URL retorna uma senha única que age como suas credenciais para obter tokens e permanece válida até você atualizar o URL para gere uma nova senha ou use a senha com get_token para gerar uma token de acesso. Exemplo:

  2. Envie uma solicitação para a API Edge, conforme o exemplo a seguir:
    curl https://zoneName.login.apigee.com/oauth/token \
          -s \
          -H "Accept: application/json" \
          -d 'grant_type=password&response_type=token&passcode=passcode'

    O passcode atua como suas credenciais para autorização.

    Em que:

    • O cabeçalho Authorization é "Basic ZWRnZWNsaTplZGdlY2xpc2VjcmV0". (use este ou o valor exato).
    • O tipo de solicitação é POST.
    • O corpo da solicitação contém o seguinte:
      • grant_type é "senha".
      • response_type é "token".
      • passcode, em que passcode é a senha que foi retornada na etapa anterior.

    A chamada exibe os tokens de acesso e atualização na tela.

Para atualizar seu token de acesso:

Envie uma solicitação para https://zoneName.login.apigee.com/oauth/token. como mostra o exemplo a seguir:

curl https://zoneName.login.apigee.com/oauth/token \
      -d 'grant_type=refresh_token&refresh_token=REFRESH_TOKEN'

Em que:

  • O corpo da solicitação contém o seguinte:
    • grant_type é "refresh_token".
    • refresh_token é o valor do token de atualização.
  • O cabeçalho Authorization é "Basic ZWRnZWNsaTplZGdlY2xpc2VjcmV0". (use este ou o valor exato).
  • O tipo de solicitação é POST.

Acessar a API Edge com SAML

É possível usar ferramentas como curl ou o utilitário de conveniência da Apigee acurl para acessar a API Edge.

Com curl, você chama a API Edge e passa o token de acesso na Authorization: Bearer, como mostra o exemplo a seguir:

curl https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval \
  -H "Authorization: Bearer ACCESS_TOKEN"

Com acurl, não é necessário especificar o cabeçalho Authorization. Exemplo:

acurl https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval

Esses exemplos chamam um endpoint da API Edge que recebe detalhes sobre a organização em questão. Consulte a lista completa dos endpoints da API Edge em Referência da API Apigee Edge.

Para métodos adicionais de chamar a API, incluindo maneiras de garantir que seu token permaneça consulte Acessar a API Edge com OAuth2.

Usuários do computador em zonas SAML

É possível usar os utilitários acurl e get_token para criar scripts de acesso automatizado às APIs Edge para usuários de máquina em zonas SAML. O exemplo abaixo mostra como use get_token para solicitar um token de acesso e, em seguida, adicionar o valor do token a uma chamada curl:

  USER=me@example.com
  PASS=not-that-secret
  TOKEN=$(get_token -u $USER:$PASS -m '' --force-basic-auth)
  curl -H "Authorization: Bearer $TOKEN" 'https://api.enterprise.apigee.com/v1/organizations/...'

No exemplo acima, definir o valor de -m como uma string vazia vai impedir que um usuário da máquina de um código de MFA. O uso da sinalização --force-basic-auth substitui a solicitação padrão de senha acionada por solicitações com zonas SAML.

Como alternativa, é possível combinar a solicitação de token e a chamada curl usando o utilitário acurl. Exemplo:

  USER=me@example.com
  PASS=not-that-secret
  acurl -u $USER:$PASS -m '' --force-basic-auth 'https://api.enterprise.apigee.com/v1/organizations/...'