Remarques :
- Ce tutoriel nécessite un accès à Oracle Cloud. Pour vous inscrire à un compte gratuit, reportez-vous à Introduction au niveau gratuit d'Oracle Cloud Infrastructure.
- Il utilise des exemples de valeur pour les informations d'identification, la location et les compartiments Oracle Cloud Infrastructure. A la fin de l'exercice, remplacez ces valeurs par des valeurs propres à votre environnement cloud.
Utilisation de l'ID Microsoft Entra pour sécuriser OCI API Gateway à l'aide de OAuth et d'OpenID Connect
Introduction
Oracle Cloud Infrastructure (OCI) API Gateway est un service entièrement géré sans serveur dans OCI qui peut être utilisé pour protéger les adresses d'API et les applications Web. Il fournit de nombreuses fonctionnalités de sécurité telles que la limitation de débit, l'application des autorisations, le routage dynamique, l'application SSL, etc. Nous avons vu de nombreuses demandes de nos clients nous demandant comment les jetons Microsoft Entra ID OAuth peuvent être utilisés pour protéger les API exécutées derrière OCI API Gateway ou comment tirer parti des jetons Microsoft Entra ID pour nous authentifier auprès d'OCI API Gateway. Pour plus d'informations sur l'authentification OCI API Gateway, reportez-vous à Validation de jetons pour ajouter l'authentification et l'autorisation aux déploiements d'API.
Objectifs
- Intégrez OCI API Gateway et Microsoft Entra ID à l'aide de OAuth et d'OpenID Connect (OIDC). Nous verrons comment utiliser le jeton d'ID Entra Microsoft pour nous authentifier avec OCI API Gateway de manière sécurisée.
Prérequis
-
Accès aux locations OCI et Microsoft Entra ID.
-
Jeton Web JSON (JWT) de Microsoft Entra ID, ce JWT peut être récupéré à l'aide de Postman, curl ou tout autre client API.
Tâche 1 : configurer l'ID Entra Microsoft en tant que fournisseur d'identités OAuth (IdP)
Du côté de Microsoft Entra ID, nous devons configurer deux applications client dans Microsoft Entra ID : l'une qui sera utilisée pour s'authentifier à Microsoft Entra ID, une autre application client sera utilisé pour exposer une API sur Microsoft Entra ID et nous allons récupérer un jeton pour cette API exposée en utilisant l'ID client, secret de la première application via Postman. Nous allons examiner ce jeton et utiliser l'audience (aud) et les champs d'émetteur à importer dans la configuration d'OCI API Gateway.
Pour créer et configurer les deux applications client sur Microsoft Entra ID, procédez comme suit :
-
Pour créer la première application, ouvrez le portail ID Entra Microsoft, cliquez sur Inscriptions d'application et Nouvel enregistrement pour inscrire une nouvelle application.
-
Entrez les informations ci-après et cliquez sur S'inscrire.
- Nom : entrez le nom de l'application.
- Types de compte pris en charge : sélectionnez Comptes dans cet annuaire organisationnel uniquement (annuaire par défaut uniquement - locataire unique).
-
Cliquez sur Exposer une API pour l'afficher aux applications client en ajoutant l'URI d'ID d'application, puis cliquez sur Ajouter une portée pour ajouter une portée. Pour ce tutoriel, nous avons fourni des valeurs de test comme indiqué dans les images suivantes pour exposer une API et ajouter une portée.
En enregistrant l'API Web et en l'exposant via des portées, en affectant un rôle d'application, vous pouvez saisir un accès basé sur des droits d'accès à ses ressources aux utilisateurs autorisés et aux applications client qui accèdent à votre API.
Remarque : Notez que l'URI d'ID d'application sera utilisé ultérieurement lors de l'obtention d'un jeton à partir de l'ID Entra Microsoft.
-
Cliquez sur Rôles d'application afin d'ajouter un rôle pour la première application.
-
Pour créer la deuxième application, ouvrez le portail d'ID Entra Microsoft, cliquez sur Inscriptions d'application et Nouvel enregistrement pour inscrire une nouvelle application.
-
Entrez les informations ci-après et cliquez sur S'inscrire.
- Nom : entrez le nom de l'application.
- Types de compte pris en charge : sélectionnez Comptes dans cet annuaire organisationnel uniquement (annuaire par défaut uniquement - locataire unique).
-
Notez l'ID d'application (client), car nous l'utiliserons en tant qu'informations d'identification dans l'API de génération de jeton pour obtenir un jeton pour la première application client exposée en tant qu'API.
-
Cliquez sur Certificats et clés secrètes, Nouvelle clé secrète client, entrez les informations suivantes, puis cliquez sur Ajouter.
- Description : entrez une brève description de la clé secrète.
- Expiration : sélectionnez l'expiration. Par défaut, l'expiration de la clé secrète est définie sur six mois.
Remarque : notez la clé secrète en copiant le champ de valeur.
La clé secrète sera associée à l'ID d'application (client) ci-dessus.
-
Cliquez sur Autorisations de l'API et sur Ajouter une autorisation pour
Api_App
. Dans la section Sélectionner une API, sélectionnez API utilisées par mon organisation et sélectionnez l'API exposée lors de la configuration de la première application. -
Sélectionnez Autorisation d'application et le droit d'accès exposé, puis cliquez sur Ajouter des droits d'accès.
-
Cliquez sur Présentation, Adresses et copiez l'URL de l'adresse de jeton OAuth 2.0 (v1), qui sera utilisée pour l'émission de jetons JWT.
-
Dans Adresses, nous allons extraire l'URL d'adresse OpenID connue qui contient l'URI JWKS distant.
Nous en avons terminé avec la partie ID Entra de Microsoft et nous passons maintenant à la configuration d'OCI API Gateway. Cependant, avant de configurer la passerelle d'API dans OCI, nous collecterons les détails nécessaires à partir du jeton JWT et de openid-configuration
à partir de l'ID Entra Microsoft à l'aide de Postman. Nous aurons besoin de recueillir les détails ci-dessous :
- Emetteur JWT : cette information peut être obtenue à partir du champ de jeton -
iss
dans le jeton. - Audiences autorisées JWT : cette information est également obtenue à partir du champ de jeton -
aud
dans le jeton. - URI JWKS distant : cette option est disponible dans le document Métadonnées OpenID Connect. Il s'agit de l'URI JWKS distant :
https://login.microsoftonline.com/{tenant-id}/discovery/v2.0/keys
.
Obtenez un jeton d'accès à partir de Microsoft Entra ID en utilisant Postman. Notez la valeur de portée. Il doit s'agir de l'URI d'ID d'application créé sous la section Exposer une API de votre instance Api_App et ajoutez /.default
à la fin, comme indiqué dans l'image suivante.
Utilisez Postman pour récupérer le jeton JWT à partir de l'ID Entra Microsoft. Entrez l'URL d'API de jeton https://login.microsoftonline.com/{tenant-id}/oauth2/token
, tout en remplaçant {tenant-id}
par votre ID de locataire Azure. Envoyez une demande et copiez la valeur access_token
.
Désormais, nous pouvons décoder le jeton JWT pour saisir certaines valeurs telles que l'émetteur autorisé JWT et l'audience autorisée JWT.
Nous utiliserons le jeton Web JSON (JWT) émis par l'ID Entra Microsoft pour la réponse par actions configurée sous OCI API Gateway.
Tâche 2 : configurer une passerelle d'API OCI
-
Accédez à OCI API Gateway et, sous la section Authentification, sélectionnez Authentification unique et entrez les informations suivantes.
- Type d'authentification :
OAuth 2.0/ OpenID Connect
. - Emplacement du jeton :
Header
. - Nom d'en-tête de jeton JWT :
Authorization
. - Modèle d'authentification :
Bearer
.
- Type d'authentification :
-
Dans la section Validation JWT supplémentaire, définissez les émetteurs et les audiences autorisés. Etant donné que nous avons utilisé l'API de jeton v1, les émetteurs autorisés doivent être définis sur
https://sts.windows.net/{tenant-id}/
. Remplacez{tenant-id}
par votre ID de locataire Azure. Les audiences autorisées doivent contenir la valeur de réclamationaud
obtenue dans la tâche 1. -
Dans la section Type de validation, entrez l'URI JWKS que vous avez obtenu à partir de l'adresse OpenID Microsoft Entra ID.
-
Pour créer un itinéraire, entrez les informations suivantes et cliquez sur Suivant.
- Chemin : définissez un chemin.
- Méthodes : sélectionnez une méthode.
- Sélectionnez Ajouter un seul back-end.
- Type de back-end : sélectionnez Réponse de stock.
- Code statut : Entrez un code statut.
- Corps : définissez un corps simple.
Remarque : à des fins de simplicité, nous exposons une réponse par défaut en tant que type de back-end pour API Gateway. Il s'agit généralement d'une API protégée via API Gateway, mais la configuration de l'authentification OIDC Microsoft Entra ID est similaire.
-
Dans la section Vérifier, vérifiez le déploiement et cliquez sur Créer. Attendez que le déploiement présente l'état
Active
et copiez l'URL endpoint.
Utilisez Postman pour tester l'adresse d'API sécurisée. Entrez l'adresse et ajoutez-lui un suffixe avec le chemin de routage. Ajoutez l'en-tête Authorization, utilisez le schéma Bearer et collez le jeton JWT obtenu à partir de l'ID Entra Microsoft.
Votre déploiement OCI API Gateway est désormais sécurisé avec l'ID Microsoft Entra.
Liens connexes
Remerciements
- Auteur - Aqib Javid Bhat (ingénieur cloud senior)
Ressources de formation supplémentaires
Parcourez d'autres ateliers sur docs.oracle.com/learn ou accédez à davantage de contenus de formation gratuits sur le canal Oracle Learning YouTube. De plus, rendez-vous sur education.oracle.com/learning-explorer pour devenir un explorateur Oracle Learning.
Pour obtenir de la documentation sur le produit, visitez Oracle Help Center.
Use Microsoft Entra ID to Secure OCI API Gateway Using OAuth and OpenID Connect
F94679-01
March 2024