2012-07-17 6 views
0

Une application web (war) fournit deux jeux d'API HTTP, l'un est public pour les clients sur Internet, l'autre est interne et ne doit pas être public sur Internet. Quelle est la meilleure pratique en matière de déploiement réseau pour protéger l'API interne?Une application Web fournit à la fois API publique et interne, comment protéger l'API interne?

Je sais qu'une façon courante est de diviser l'application en deux déployables, mettre le frontend qui sert API publique dans DMZ et mettre le back-end qui sert API interne dans le réseau interne. Mais pour une raison quelconque, je veux garder l'application en tant que déployable.

Répondre

0

Enfin, nous introduisons un proxy inverse pour cacher les API dans le réseau interne. Les clients d'Internet est seulement capable de se connecter au proxy inverse, le proxy inverse est configuré pour ne transmettre les demandes à l'API publique à l'application.

1

Il y a quelques choses que vous pourriez essayer ici. Pour l'API privée, je suggérerais de le couper dans sa propre application qui écoute sur une adresse locale seulement. Si vous devez les garder ensemble, vous pouvez mettre en œuvre une sorte de configuration oauth qui est nécessaire pour utiliser l'API interne, ce qui rend les utilisateurs afin que des jetons OAuth valides peuvent compléter la demande de l'API aux ressources limitées.

+0

Je suis d'accord avec Daniel. Ne pas être OAuth, mais utiliser une authentification pour l'API (et HTTPS) et un contrôle d'accès stuff type de liste pour limiter l'accès. –

+0

L'authentification aide, mais je cherche un moyen d'empêcher le client externe atteint l'API interne. Parce que les informations d'identification d'authentification peuvent être divulguées. L'API interne est une sorte d'interface d'intégration pour un autre système. Je ne sais pas si le proxy inverse aide? – aleung

Questions connexes