Note :

Utiliser Microsoft Entra ID pour sécuriser la passerelle d'API OCI à l'aide de OAuth et d'OpenID Connect

Présentation

La passerelle d'API d'Oracle Cloud Infrastructure (OCI) est un service entièrement géré sans serveur dans OCI qui peut être utilisé pour protéger les points d'extrémité 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. De nombreuses demandes émanant de nos clients nous ont demandé comment les jetons Microsoft Entra ID OAuth peuvent être utilisés pour protéger les API exécutées derrière la passerelle d'API OCI ou comment pouvons-nous utiliser les jetons Microsoft Entra ID pour l'authentification par rapport à la passerelle d'API OCI. Pour plus d'informations sur l'authentification de la passerelle d'API OCI, voir Validation de jetons pour ajouter l'authentification et l'autorisation aux déploiements d'API.

Objectifs

Préalables

Tâche 1 : Configurer Microsoft Entra ID 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 : une qui sera utilisée pour s'authentifier auprès de 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 examinerons ce jeton et utiliserons les champs d'audience (aud) et d'émetteur à importer dans la configuration de la passerelle d'API OCI.

Pour créer et configurer les deux applications client sur Microsoft Entra ID, procédez comme suit :

  1. Pour créer la première application, ouvrez le portail Microsoft Entra ID, cliquez sur Inscriptions d'application et sur Nouvelle inscription pour enregistrer une nouvelle application.

  2. Entrez les informations suivantes et cliquez sur S'inscrire.

    • Nom : Entrez le nom de l'application.
    • Types de compte pris en charge : Sélectionnez Comptes dans ce répertoire organisationnel uniquement (Répertoire par défaut seulement - Locataire unique).

    Image 1

  3. Cliquez sur Exposer une API pour l'exposer aux applications clients en ajoutant un URI d'ID application et cliquez sur Ajouter une étendue pour ajouter une étendue. Pour ce tutoriel, nous avons fourni des valeurs de test comme illustré dans les images suivantes pour exposer une API et ajouter une portée.

    En enregistrant une API Web et en l'exposant au moyen de portées, en affectant un rôle d'application, vous pouvez entrer un accès basé sur les autorisations à ses ressources aux utilisateurs autorisés et aux applications clients qui accèdent à votre API.

    Note : Notez l'URI de l'ID application, qui sera utilisé plus tard lors de l'obtention d'un jeton à partir de l'ID Microsoft Entra.

    Image 2

    Image 3

  4. Cliquez sur Rôles d'application pour ajouter un rôle d'application, c'est-à-dire pour la première application.

    Image 4

  5. Pour créer la deuxième application, ouvrez le portail Microsoft Entra ID, cliquez sur Inscriptions d'application et sur Nouvelle inscription pour enregistrer une nouvelle application.

  6. Entrez les informations suivantes et cliquez sur S'inscrire.

    • Nom : Entrez le nom de l'application.
    • Types de compte pris en charge : Sélectionnez Comptes dans ce répertoire organisationnel uniquement (Répertoire par défaut seulement - Locataire unique).

    Image 6

  7. Notez l'ID application (client), car nous l'utiliserons comme données 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.

    Image 5

  8. Cliquez sur Certificats et clés secrètes, Nouvelle clé secrète client et 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 réglée à six mois.

    Image 7

    Note : Notez la clé secrète en copiant le champ de valeur.

    La clé secrète sera associée à l'ID application (client) ci-dessus.

    Image 8

  9. Cliquez sur Autorisations d'API et sur Ajouter une autorisation pour Api_App. Dans la section Sélectionner une API, sélectionnez API que mon organisation utilise et sélectionnez l'API qui a été exposée lors de la configuration de la première application.

    Image 9

    Image 10

  10. Sélectionnez l'autorisation d'application et l'autorisation exposée, puis cliquez sur Ajouter des autorisations.

    Image 11

    Image 12

  11. Cliquez sur Aperçu, Points d'extrémité et copiez l'URL du point d'extrémité du jeton OAuth 2.0 (v1), qui sera utilisée pour l'émission de jetons JWT.

    Image 13

  12. Dans Points d'extrémité, nous allons saisir l'URL de point d'extrémité OpenID bien connue qui contient l'URI JWKS distant.

    Image 14

Nous avons terminé avec la partie Microsoft Entra ID et nous passons maintenant à la configuration de la passerelle d'API OCI. Toutefois, avant de configurer la passerelle d'API dans OCI, nous collecterons les détails nécessaires auprès de JWT et de openid-configuration auprès de Microsoft Entra ID à l'aide de Postman. Nous aurons besoin de recueillir les détails ci-dessous :

Obtenez un jeton d'accès à partir de Microsoft Entra ID à l'aide de Postman. Notez la valeur de portée. Il doit s'agir de l'URI d'ID application créé sous la section Exposer une API de votre Api_App et ajoutez /.default à la fin, comme illustré dans l'image suivante.

Utilisez Postman pour extraire le jeton JWT de l'ID Microsoft Entra. Entrez l'URL de l'API de jeton https://login.microsoftonline.com/{tenant-id}/oauth2/token, tout en remplaçant {tenant-id} par votre ID locataire Azure. Envoyez une demande et copiez la valeur access_token.

Image 15

Maintenant, nous pouvons décoder le jeton JWT pour saisir certaines valeurs telles que l'émetteur autorisé JWT et le public autorisé JWT.

Image 16

Nous utiliserons le jeton Web JSON (JWT) émis par l'ID Microsoft Entra pour la réponse standard configurée sous la passerelle d'API OCI.

Tâche 2 : Configurer une passerelle d'API OCI

  1. Allez à la passerelle d'API OCI 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 de l'en-tête du jeton JWT : Authorization.
    • Schéma d'authentification : Bearer.

    Image 17

  2. Dans la section Validation JWT supplémentaire, définissez les émetteurs et les publics autorisés. Comme nous avons utilisé l'API de jeton v1, les émetteurs autorisés doivent être réglés à https://sts.windows.net/{tenant-id}/. Remplacez {tenant-id} par votre ID location Azure. Les audiences autorisées doivent contenir la valeur de revendication aud obtenue dans la tâche 1.

    Image 18

  3. Dans la section Type de validation, entrez l'URI JWKS obtenu à partir du point d'extrémité OpenID bien connu de Microsoft Entra ID.

    Image 19

  4. Pour créer une route, 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 serveur dorsal.
    • Type de service dorsal : Sélectionnez Réponse de stock.
    • Code de statut : Entrez le code de statut.
    • Corps : Définissez un corps simple.

    Note : Pour simplifier, nous exposons une réponse standard en tant que type dorsal pour le service de passerelle d'API. Il s'agit généralement d'une API protégée au moyen de la passerelle d'API, mais la configuration de l'authentification OIDC Microsoft Entra ID est similaire.

    Image 20

  5. Dans la section Vérifier, vérifiez le déploiement et cliquez sur Créer. Attendez que le déploiement ait l'état Active et copiez l'URL du point d'extrémité.

    Image 21

Utilisez Postman pour tester le point d'extrémité d'API sécurisé. Entrez le point d'extrémité et appliquez-le avec le chemin d'accès. Ajoutez un en-tête d'autorisation, utilisez le modèle Porteuse et collez le jeton JWT obtenu à partir de l'ID Microsoft Entra.

Image 22

Votre déploiement de passerelle d'API OCI est maintenant sécurisé avec l'ID Microsoft Entra.

Confirmation

Autres ressources d'apprentissage

Explorez d'autres laboratoires sur la page docs.oracle.com/learn ou accédez à plus de contenu d'apprentissage gratuit sur le canal YouTube d'Oracle Learning. De plus, visitez education.oracle.com/learning-explorer pour devenir un explorateur Oracle Learning.

Pour obtenir de la documentation sur le produit, visitez Oracle Help Center.