Transmission de jetons aux fonctions d'autorisation pour ajouter l'authentification et l'autorisation aux déploiements d'API
Découvrez comment utiliser des fonctions d'autorisation à un seul argument et des jetons d'accès pour ajouter des fonctionnalités d'authentification et d'autorisation aux passerelles d'API avec le service de passerelle d'API.
Vous pouvez ajouter des fonctionnalités d'authentification et d'autorisation à une passerelle d'API en demandant à la passerelle d'API de transmettre un jeton d'accès à plusieurs arguments ou à un seul argument inclus dans une demande à une fonction d'autorisation déployée dans le service des fonctions pour OCI pour validation (comme décrit dans cette rubrique). Vous pouvez également demander à la passerelle d'API elle-même de valider les jetons inclus dans une demande (comme décrit sous Validation des jetons pour ajouter l'authentification et l'autorisation aux déploiements d'API).
Vous pouvez ajouter des fonctionnalités d'authentification et d'autorisation aux passerelles d'API en écrivant une fonction d'autorisation qui :
- Traite les attributs de demande pour vérifier l'identité d'un client d'API avec un fournisseur d'identités.
- Détermine les opérations que le client d'API est autorisé à effectuer.
- Retourne les opérations que le client d'API est autorisé à effectuer en tant que liste d'étendues d'accès (une étendue d'accès) est une chaîne arbitraire utilisée pour déterminer l'accès).
- Facultativement, retourner une paire clé-valeur pour le déploiement de l'API. Par exemple, en tant que variable de contexte à utiliser dans une définition d'élément dorsal HTTP (voir Ajout de variables de contexte aux politiques et aux définitions d'élément dorsal HTTP).
Selon les fonctionnalités dont vous avez besoin, vous pouvez écrire :
- (Recommandé) Fonction d'autorisation à plusieurs arguments qui accepte un jeton d'accès à plusieurs arguments défini par l'utilisateur comprenant un ou plusieurs éléments d'une demande (voir Création d'une fonction d'autorisation à plusieurs arguments (Recommandé)). Notez que les fonctions d'autorisation à plusieurs arguments peuvent accepter des jetons d'accès uniques contenus dans un en-tête de demande ou un paramètre d'interrogation.
- Fonction d'autorisation à un seul argument qui accepte un jeton d'accès à un seul argument comprenant une valeur unique contenue dans un en-tête de demande ou un paramètre d'interrogation dans une demande (voir Création d'une fonction d'autorisation à un seul argument).
L'utilisation d'une fonction d'autorisation à plusieurs arguments (plutôt qu'à un seul argument) permet à une passerelle d'API d'effectuer une authentification basée sur des demandes plus détaillée. Une fonction d'autorisation à plusieurs arguments peut interroger les services de décision et les agents de stratégie avec des attributs à partir du jeton d'accès et avec d'autres éléments de demande tels que les paramètres d'interrogation, le nom d'hôte et le sous-domaine.
Oracle recommande d'utiliser des fonctions d'autorisation à plusieurs arguments plutôt que des fonctions d'autorisation à un seul argument en raison de leur polyvalence supplémentaire. Des fonctions d'autorisation à argument unique ont été fournies dans des versions antérieures et continuent d'être prises en charge. Cependant, comme les fonctions d'autorisation à plusieurs arguments peuvent également accepter des jetons d'accès à un seul argument contenus dans les en-têtes de demande et les paramètres d'interrogation, il n'y a aucune raison de créer de nouvelles fonctions d'autorisation à un seul argument. En outre, des fonctions d'autorisation à argument unique sont prévues pour l'abandon dans une version ultérieure.
Après avoir écrit la fonction d'autorisation, vous pouvez la déployer dans le service des fonctions pour OCI (voir Déploiement d'une fonction d'autorisation).
Pour un tutoriel pour développeurs connexe contenant un exemple de fonction d'autorisation à un seul argument, voir Fonctions : Valider une clé d'API avec le service de passerelle d'API.
Ayant déployé la fonction d'autorisation, vous activez l'authentification et l'autorisation pour un déploiement d'API en incluant deux types de politique de demande différents dans la spécification de déploiement d'API :
- Une politique de demande d'authentification pour l'ensemble du déploiement d'API qui spécifie les données suivantes :
- L'OCID de la fonction d'autorisation que vous avez déployée dans le service des fonctions pour OCI et qui exécutera l'authentification et l'autorisation.
- Les attributs de demande à transmettre à la fonction d'autorisation.
- Si des clients d'API non authentiques peuvent accéder aux routes du déploiement d'API.
- Une politique de demande d'autorisation pour chaque route indiquant les opérations qu'un client d'API est autorisé à effectuer, en fonction des étendues d'accès du client d'API telles que retournées par la fonction d'autorisation.
Vous pouvez ajouter des politiques de demande d'authentification et d'autorisation à une spécification de déploiement d'API comme suit :
- Utilisation de la console.
- En modifiant un fichier JSON.
Pour faciliter la résolution des problèmes liés à la fonction d'autorisation, envisagez d'ajouter un journal d'exécution au déploiement d'API, avec le niveau de journal réglé à Informations (voir Ajout de la journalisation aux spécifications de déploiement d'API).
Pour voir les détails des fichiers journaux relatifs à l'authentification et à l'autorisation, recherchez customAuth
.