J'ai une API backend qui est hébergée dans Azure app service. Je souhaite utiliser Azure API Management comme interface pour cette API dorsale et j'ai réussi à le configurer dans Azure. J'ai configuré la gestion de l'API pour qu'elle utilise OAuth lors de l'accès à cette API dorsale, ce qui fonctionne lorsque les clients accèdent à l'API via les points d'extrémité de la gestion de l'API Azure, mais comment puis-je empêcher les gens d'accéder directement aux points d'extrémité de l'API dorsale afin que seuls les appels provenant des points d'extrémité de la gestion de l'API soient autorisés ?
Réponses
Trop de publicités?Il existe plusieurs options de différents niveaux de sécurité :
- Secret partagé - définir un certain en-tête avec une certaine valeur dans l'APIM et vérifier cette valeur dans votre backend.
- Filtre IP - vérification de l'IP APIM en tant que source au niveau du backend.
- Certificat d'authentification du client - téléchargez un certificat d'authentification du client dans l'APIM et joignez-le à chaque demande adressée au backend. Vérifier la présence de ce certificat au niveau du backend.
- VNET - placez APIM et votre backend dans le même VNET et bloquez l'accès au backend depuis l'extérieur.
J'ai personnellement utilisé les restrictions de propriété intellectuelle avec beaucoup de succès. L'APIM reçoit une IP statique, vous pouvez donc configurer une restriction d'IP dans l'"API racine" qui n'autorise que les appels de l'APIM. Le résultat est un 403 si vous appelez l'API racine directement.
Si vous ne voulez pas que l'API racine envoie un 403, vous pouvez utiliser des règles pour le modifier, ou vous pouvez configurer l'authentification au niveau de l'APIM et vous obtiendrez un 401 avant même d'atteindre le 403.