Remarques :

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

Prérequis

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 :

  1. 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.

  2. 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).

    Image  1

  3. 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.

    Image  2

    Image  3

  4. Cliquez sur Rôles d'application afin d'ajouter un rôle pour la première application.

    Image  4

  5. 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.

  6. 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).

    Image  6

  7. 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.

    Image  5

  8. 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.

    Image  7

    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.

    Image  8

  9. 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.

    Image  9

    Image  10

  10. Sélectionnez Autorisation d'application et le droit d'accès exposé, puis cliquez sur Ajouter des droits d'accès.

    Image  11

    Image  12

  11. 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.

    Image  13

  12. Dans Adresses, nous allons extraire l'URL d'adresse OpenID connue qui contient l'URI JWKS distant.

    Image  14

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 :

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.

Image  15

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.

Image  16

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

  1. 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.

    Image  17

  2. 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éclamation aud obtenue dans la tâche 1.

    Image  18

  3. Dans la section Type de validation, entrez l'URI JWKS que vous avez obtenu à partir de l'adresse OpenID Microsoft Entra ID.

    Image  19

  4. 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.

    Image  20

  5. 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.

    Image  21

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.

Image  22

Votre déploiement OCI API Gateway est désormais sécurisé avec l'ID Microsoft Entra.

Remerciements

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.