Configuration de l'accès basé sur les ressources pour les adresses REST à l'aide d'OCI API Gateway
Le contrôle d'accès basé sur les ressources vous permet de gérer l'accès aux ressources en fonction des attributs et des caractéristiques de l'utilisateur. Cela diffère du contrôle d'accès basé sur le rôle où l'accès aux ressources est accordé en fonction du rôle. Avec le contrôle d'accès basé sur les ressources, les droits d'accès à vos collections d'API REST (déploiements) peuvent être affectés de manière granulaire à des destinataires individuels.
Voici quelques avantages de l'implémentation du contrôle d'accès basé sur les ressources pour les adresses d'API REST :
- Implémentez un contrôle affiné pour les adresses d'API hébergées par Oracle SaaS et Oracle Cloud Infrastructure (OCI).
- Evitez d'exposer les informations d'identification d'API back-end aux utilisateurs finaux et aux applications.
- Appliquez un accès basé sur les ressources pour les API exposées via divers services OCI tels qu'Oracle Cloud Infrastructure Kubernetes Engine et OCI Functions.
OCI API Gateway offre des fonctionnalités de gestion d'API supplémentaires lors de l'implémentation du contrôle d'accès basé sur les ressources pour les adresses REST :
- Aider à monétiser les API d'entreprise à l'aide de plans d'utilisation.
- Contrôler l'utilisation des API avec des quotas et des limites de débit.
- Exploiter les tableaux de bord pour surveiller l'utilisation consolidée des API basées sur les abonnés.
Architecture
Cette architecture décrit le contrôle d'accès basé sur les ressources pour les adresses REST hébergées sur OCI. Les utilisateurs et les demandes d'application provenant de la gestion du capital humain (HCM) et de la supply chain et de la fabrication (SCM) peuvent uniquement accéder à leurs ressources respectives. Les adresses REST sont hébergées et affichées via les applications Oracle SaaS et les services Oracle tels qu'OCI Functions, Oracle Integration Cloud Service et OCI Kubernetes Engine.
Les déploiements HCM et SCM sont créés dans OCI API Gateway. Les adresses REST sont configurées sous les déploiements respectifs en tant que services back-end. Les applications confidentielles OCI Identity and Access Management sont utilisées pour les domaines HCM et SCM. La portée et les détails de l'audience des applications confidentielles client doivent correspondre à la configuration de validation JWT des déploiements OCI API Gateway respectifs. Les destinataires HCM et SCM doivent avoir accès à l'URL de jeton d'accès à l'application confidentielle, à l'ID client, à la clé secrète client et à la portée de la génération de jeton. Partagez les adresses de déploiement HCM et SCM d'OCI API Gateway avec les clients.
Provisionnez OCI API Gateway dans un sous-réseau public pour intercepter tout le trafic Internet. OCI Functions et Oracle Integration Cloud Service sont des services OCI natifs qui exposent des API REST configurées en tant que déploiements OCI API Gateway back-end. OCI API Gateway communique avec ces API REST via la passerelle de service. Les services de conteneur OCI Kubernetes Engine peuvent être hébergés dans des sous-réseaux privés et les adresses REST exposées via des clusters OCI Kubernetes Engine. La communication entre les clusters OCI API Gateway et OCI Kubernetes Engine peut être activée via des listes de sécurité et des règles de routage.
Le schéma suivant illustre cette architecture de référence.
resource-based-access-rest-api-arch.zip
Le diagramme suivant illustre le flux de données :
Le flux de données pour les utilisateurs HCM et SCM se présente comme suit :
- (a,b) Configurer l'application confidentielle client et l'application de ressources avec la portée et le public.
- (a,b) Configurez le déploiement d'OCI API Gateway avec l'adresse, la portée et l'audience REST.
- (a,b) L'application utilisateur génère un jeton JWT à l'aide de l'application confidentielle client. Le jeton contient la portée et l'audience encodées.
- (a,b) Un utilisateur déclenche un déploiement d'adresse OCI API Gateway à l'aide de son jeton.
- (a,b) OCI API Gateway valide le jeton par rapport à la portée et au public configurés dans le déploiement.
- (a,b) Si la validation réussit, l'accès à l'API correspondant est accordé en fonction de la configuration du routage.
- (a,b) En cas d'échec de la validation, une erreur 401 non autorisée est renvoyée.
L'architecture comprend les composants suivants :
- Région
Une région Oracle Cloud Infrastructure est une zone géographique précise, incluant un ou plusieurs centres de données, appelés domaines de disponibilité. Les régions sont indépendantes les unes des autres et de grandes distances peuvent les séparer (entre pays, voire continents).
- Domaines de disponibilité
Les domaines de disponibilité sont des centres de données autonomes indépendants au sein d'une région. Les ressources physiques de chaque domaine de disponibilité sont isolées de celles des autres, ce qui garantit la tolérance aux pannes. Les domaines de disponibilité ne partagent ni infrastructure (par exemple, alimentation, système de refroidissement), ni réseau de domaine de disponibilité interne. Par conséquent, une panne sur un domaine de disponibilité ne doit pas affecter les autres domaines de disponibilité de la région.
- Domaines de pannes
Un domaine de pannes est un regroupement de matériel et d'infrastructures au sein d'un domaine de disponibilité. Chaque domaine de disponibilité comporte trois domaines de pannes avec du matériel et une alimentation indépendants. Lorsque vous répartissez les ressources entre plusieurs domaines de pannes, vos applications peuvent tolérer les pannes physiques du serveur, la maintenance du système et les pannes d'alimentation au sein d'un domaine de pannes.
- Réseau cloud virtuel (VCN) et sous-réseaux
Un VCN est un réseau personnalisable défini par logiciel que vous configurez dans une région Oracle Cloud Infrastructure. Comme les réseaux de centre de données traditionnels, les réseaux cloud virtuels vous donnent le contrôle sur l'environnement réseau. Un réseau cloud virtuel peut comporter plusieurs blocs CIDR qui ne se chevauchent pas et que vous pouvez modifier après l'avoir créé. Vous pouvez segmenter un réseau cloud virtuel en plusieurs sous-réseaux ciblant une région ou un domaine de disponibilité. Chaque sous-réseau est composé d'une plage contiguë d'adresses qui ne chevauchent pas celles des autres sous-réseaux du réseau cloud virtuel. Vous pouvez modifier la taille d'un sous-réseau après sa création. Un sous-réseau peut être public ou privé.
- OCI Kubernetes Engine
Oracle Cloud Infrastructure Kubernetes Engine (Kubernetes Engine ou OKE) est un service entièrement géré, évolutif et hautement disponible que vous pouvez utiliser pour déployer vos applications en conteneur vers le cloud. Indiquez les ressources de calcul requises par vos applications et Kubernetes Engine les provisionne sur Oracle Cloud Infrastructure dans une location existante. OKE utilise Kubernetes pour automatiser le déploiement, le redimensionnement et la gestion des applications en conteneur dans les clusters d'hôtes.
- API Gateway
Oracle API Gateway vous permet de publier des API avec des adresses privées accessibles à partir de votre réseau. Si nécessaire, vous pouvez les rendre visibles sur le réseau Internet public. Les adresses prennent en charge la validation d'API, la transformation des demandes et des réponses, CORS, l'authentification et l'autorisation, ainsi que la limitation des demandes.
- Functions
Oracle Cloud Infrastructure Functions est une plate-forme Functions-as-a-Service (FaaS) entièrement gérée, colocative, hautement évolutive, à la demande. Il est optimisé par le moteur open source du projet Fn. Les fonctions vous permettent de déployer votre code et de l'appeler directement ou de le déclencher en réponse à des événements. Oracle Functions utilise des conteneurs Docker hébergés dans Oracle Cloud Infrastructure Registry.
- Intégration
Oracle Integration est un service entièrement géré qui permet d'intégrer vos applications, d'automatiser les processus, de bénéficier d'informations sur vos processus métier et de créer des applications visuelles.
- Identity and Access Management (IAM)
Oracle Cloud Infrastructure Identity and Access Management (IAM) est le plan de contrôle d'accès pour Oracle Cloud Infrastructure (OCI) et Oracle Cloud Applications. L'API IAM et l'interface utilisateur vous permettent de gérer les domaines d'identité et les ressources au sein du domaine d'identité. Chaque domaine d'identité OCI IAM représente une solution autonome de gestion des identités et des accès ou une population d'utilisateurs différente.
Recommandations
- Environnements de production et hors production
Créez plusieurs domaines d'identité et des instances OCI API Gateway distinctes pour la production et la non-production afin de mieux contrôler l'accès et l'isolement des utilisateurs.
- Sécurité
Stockez les informations d'identification de back-end dans OCI Vault pour une sécurité améliorée. Si la clé secrète du client est compromise, régénérez-la.
Points à prendre en compte
Tenez compte des points suivants lors de l'implémentation de cette architecture de référence :
- Performances
Des fonctionnalités de limitation de débit et de quota dans OCI API Gateway vous permettent d'optimiser les performances et de réduire la latence. Voici quelques-uns des avantages :
- Maintenez la haute disponibilité et l'utilisation équitable des ressources en protégeant votre back-end contre un surchauffe avec un trop grand nombre de demandes.
- Empêcher les attaques par refus de service.
- Limiter les coûts de consommation des ressources.
- Limitez l'utilisation des API par les utilisateurs de vos clients pour monétiser les API.
- Sécurité
Etablir des processus de gouvernance pour gérer les informations d'identification et les consommateurs des clients.
- Disponibilité
Créez des passerelles d'API dans des sous-réseaux régionaux (et non dans des sous-réseaux spécifiques à un domaine de disponibilité) pour assurer une haute disponibilité.
- Coût
OCI API Gateway est une option rentable avec un modèle de tarification équitable.