OAuth 2.0 : sujets avancés

Cette page s'applique à Apigee et à Apigee hybrid.

Consultez la documentation d'Apigee Edge.

Utiliser des jetons OAuth tiers

Consultez la page Utiliser des jetons OAuth tiers.

Concevoir plusieurs URI de redirection

Lorsque vous utilisez le type d'attribution du code d'autorisation, vous devez spécifier un URI de redirection lorsque vous enregistrez votre application de développeur. L'URI de redirection spécifie l'URI d'une application conçue pour recevoir un code d'autorisation au nom de l'application cliente. Le client doit envoyer cet URI à Apigee Edge lorsqu'il demande des codes d'autorisation et des jetons. Le paramètre redirect_uri doit correspondre à celui enregistré. Consultez également Obtenir des jetons OAuth 2.0.

Exemple :

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

Il existe un cas d'utilisation permettant de spécifier plusieurs URI de redirection dans une seule application proxy. Par exemple, vous pouvez vous authentifier pour plusieurs domaines. Exemples :

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

Pour spécifier plusieurs URI de redirection dans l'application de développeur, ajoutez-les sous forme de liste d'éléments séparés par une virgule dans le champ URL de rappel de l'UI de l'application de développeur. Exemple :

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

Notez que la requête /authorize ne doit contenir qu'un seul URI dans le paramètre redirect_uri. Tant que l'URI de redirection correspond à l'un des URI spécifiés dans le champ URL de rappel de l'interface utilisateur de l'application de développeur, la requête aboutit.

Modifier le comportement de retour par défaut d'une opération GenerateAuthCode

Par défaut, l'opération GenerateAuthCode de la règle OAuthV2 renvoie une redirection 302 à l'URL de redirection avec un paramètre de requête ?code contenant le code d'autorisation.

Dans certains cas, vous pouvez modifier cette valeur par défaut. Par exemple, vous pouvez renvoyer une réponse 200 avec un code JSON structuré contenant le code.

Pour ce cas d'utilisation, utilisez une règle ExtractVariable pour récupérer le code, et une règle AssignMessage pour renvoyer le code dans une charge utile JSON avec un état 200.

Auditer le consentement de l'utilisateur final de l'application

Vous pouvez être invité à vérifier qu'un utilisateur final a autorisé une application. Pour ce faire, vous pouvez utiliser l'API Audit d'Apigee.

Exemple de protocole OAuth sortant

Consultez l'exemple outbound-oauth dans le dépôt api-platform-samples d'Apigee sur GitHub. Vous pouvez cloner l'exemple, le déployer et l'exécuter. Cet exemple utilise l'API de traduction de Microsoft Azure pour traduire des tweets. Pour ce faire, il effectue un appel sortant pour obtenir un jeton d'accès OAuth, puis met en cache le jeton à l'aide des règles de mise en cache des services d'API, en réutilisant le jeton mis en cache chaque fois qu'un appel sortant est effectué. Il inclut également une application de navigateur de démonstration utilisée pour appeler le proxy d'API.