sur la sécurité de l'authentification basée sur les jetons

8

Je lis les services authentifiés avec token. Je comprends qu'un utilisateur doit obtenir un jeton pour utiliser les services arcgis. Exemple: https://domain.com/arcgis/rest/services/myMap/MapServer est mon service. Mon administrateur de serveur me donne un jeton comme celui-ci. Jeton = AJSJK876548sjjs7

Et j'ai utilisé ce service dans mon API javascript comme ceci https://domain.com/arcgis/rest/services/myMap/MapServer?token=AJSJK876548sjjs7

Un utilisateur peut voir ma source d'application à partir du navigateur et obtenir mon jeton. Et Il / Elle peut accéder à mon service. Est-ce un problème de sécurité?

bartélome
la source

Réponses:

8

Oui, c'est un problème de sécurité.

Une solution courante consiste à passer par un proxy - un service que vous écrivez que votre client peut appeler et qui à son tour appellera le point de terminaison. Votre client appelle votre service avec tous les arguments sauf le jeton. Le service copie tous les arguments qui lui sont passés, ajoute le jeton, appelle le point de terminaison et renvoie la réponse à votre client.

Russell chez ISC
la source
2
Il est important de noter qu'avec cette approche, il incombe alors au développeur de sécuriser le proxy d'une manière ou d'une autre. Après tout, l'utilisateur peut maintenant simplement prétendre être l'application et demander au proxy de renvoyer des informations indirectement à partir du service sous-jacent. À la fin de la journée, votre sécurité doit tenir compte du fait qu'un utilisateur autorisé aura finalement accès aux données brutes. Si vous devez limiter les données auxquelles un utilisateur autorisé peut accéder, vous devez ajouter une logique pour le faire dans le proxy.
Philip
Bon point, Phillip.
Russell à l'ISC le