Tópicos avançados do OAuth 2.0

Esta página aplica-se ao Apigee e ao Apigee Hybrid.

Veja a documentação do Apigee Edge.

Usar tokens OAuth de terceiros

Consulte o artigo Usar tokens OAuth de terceiros.

Designar vários URIs de redirecionamento

Quando usar o tipo de concessão de código de autorização, tem de especificar um URI de redirecionamento quando registar a sua app de programador. O URI de redirecionamento especifica o URI de uma app que está designado para receber um código de autorização em nome da app cliente. O cliente tem de enviar este URI para o Apigee quando solicitar códigos de autorização e tokens, e o parâmetro redirect_uri tem de corresponder ao registado. Consulte também o artigo Obtenha tokens 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

Existe um exemplo de utilização para especificar vários URIs de redirecionamento numa única aplicação proxy. Por exemplo, pode querer autenticar 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 na app de programador, adicione-os como uma lista separada por vírgulas no campo URL de retorno de chamada na IU da app de programador. Por exemplo:

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

Tenha em atenção que o pedido /authorize só pode ter um URI no parâmetro redirect_uri. Desde que o URI de redirecionamento corresponda a um dos URIs especificados no campo URL de retorno de chamada na IU da app do programador, o pedido é bem-sucedido.

Alterar o comportamento de retorno predefinido de uma operação GenerateAuthCode

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

Em alguns casos, pode querer alterar este comportamento. Por exemplo, pode querer devolver uma resposta 200 com JSON estruturado que contenha o código.

Uma forma de alcançar este exemplo de utilização é definir a propriedade GenerateResponse da política OAuthV2 como false. Use a política ExtractVariable para obter o valor do código de autorização da variável oauthv2authcode.{policy_name}.code. Em seguida, pode usar a política AssignMessage para devolver o código num payload JSON com o estado 200.

Auditar o consentimento do utilizador final da app

Pode ter de validar se um utilizador final da app autorizou uma app. Pode usar a API Apigee Audit para o fazer.

Exemplo de OAuth de saída

Consulte o exemplo outbound-oauth no repositório api-platform-samples do Apigee no GitHub. Pode clonar o exemplo, implementá-lo e executá-lo. Este exemplo usa a API Microsoft Azure Translator para traduzir tweets. Para tal, faz uma chamada de saída para obter um token de acesso OAuth e, em seguida, coloca o token em cache através das políticas de colocação em cache dos serviços de API, reutilizando o token em cache sempre que é feita uma chamada de saída. Além disso, inclui uma app de navegador de demonstração usada para invocar o proxy da API.