Tópicos avançados do OAuth2

Esta página se aplica à Apigee e à Apigee híbrida.

Confira a documentação da Apigee Edge.

Como usar tokens do OAuth de terceiros

Consulte Como usar tokens OAuth de terceiros.

Como designar vários URIs de redirecionamento

Ao usar o tipo de concessão do código de autorização, você precisa especificar um URI de redirecionamento ao registrar seu app de desenvolvedor. O URI de redirecionamento especifica o URI de um app designado para receber um código de autorização em nome do app cliente. O cliente precisa enviar esse URI para a Apigee ao solicitar códigos e tokens de autorização, e o parâmetro redirect_uri precisa corresponder ao que está registrado. Consulte também Receber tokens do OAuth 2.0.

Por exemplo:

https://mydomain.com/authorize?\
client_id=123456&\
response_type=code&\
redirect_uri=https%3A%2F%2Fmydomain.com%2Fcallback&scope=scope1%20scope2&state=abc

Há um caso de uso para especificar vários URIs de redirecionamento em um único aplicativo de proxy. Por exemplo, se você quiser autenticar em vários domínios. Por exemplo:

  • https://mydomain.com/callback
  • https://mydomain.uk/callback
  • https://mydomain.ja/callback

Para especificar vários URIs de redirecionamento no app do desenvolvedor, adicione eles como uma lista separada por vírgulas no campo URL de callback na IU do app para desenvolvedores. Por exemplo:

https://mydomain.com/callback,https://mydomain.uk/callback,https://mydomain.ja/callback

A solicitação /authorize precisa conter apenas um URI no parâmetro redirect_uri. Se o URI de redirecionamento corresponder a um dos URIs especificados no campo URL de callback na IU do app do desenvolvedor, a solicitação será bem-sucedida.

Como alterar o comportamento de retorno padrão de uma operação GenerateAuthCode

Por padrão, a operação GenerateAuthCode da política OAuthV2 retorna um redirecionamento 302 para o URL de redirecionamento com um parâmetro de consulta ?code que contém o código de autorização.

Em alguns casos, é possível alterar esse comportamento. Por exemplo, convém retornar uma resposta 200 com JSON estruturado que contém o código.

Para isso, use uma política ExtractVariables recuperar o código e uma política AssignMessage para retornar o código em um payload JSON com status 200.

Como auditar o consentimento do usuário final do app

Pode ser necessário verificar se um usuário final autorizou um app. É possível usar a API de auditoria da Apigee para fazer isso.

Amostra de OAuth de saída

Consulte a amostra outbound-oauth no repositório api-platform-samples do Apigee no GitHub. Você pode clonar a amostra, implantá-la e executá-la. Neste exemplo, usamos a API de tradução do Microsoft Azure para traduzir tweets. Para isso, ele faz uma chamada de saída para conseguir um token de acesso OAuth e, em seguida, armazena em cache o token usando as políticas de armazenamento em cache dos Serviços da API, reutilizando o token em cache sempre que uma chamada for feita. Além disso, inclui um aplicativo de navegação de demonstração usado para invocar o proxy de API.