Question

Je construis une extension chromée qui interagira avec l'API Salesforce-Chatter.Mais pour un utilisateur utilisant l'authentification OATUH (Agent d'utilisateur), j'ai besoin d'intégrer ma clé client dans mon extension.

Cela causera-t-il un problème de sécurité?Ou existe-t-il un moyen d'utiliser OAuth sans intégrer l'identifiant du client dans mon extension?

Était-ce utile?

La solution

L'ID client doit être inclus dans une demande. Le fournisseur sait donc que la demande est venue de vous, car @matt Lacey a déjà signalé. Normalement, le fournisseur émet également un secret de client confidentiel qui est également inclus dans la requête Access token , afin que le fournisseur puisse vérifier que votre application est autorisée à utiliser ce ID client .

Les extensions chromées exécutées sur une plate-forme ouverte et la plate-forme elle-même ne fournit aucune méthode d'authentification de l'extension contre un serveur (que Salesforce devrait alors également soutenir) ou stocker des propriétés de manière sécurisée (serait difficile, sinon impossible sur une ouverture Plateforme), alors garder le secret le secret de la clientèle est malheureusement pas possible.

Comme il s'agit d'un problème courant, il est déjà pris en compte dans la spécification OAuth (voir Section 10.1 Authentification client et 10.2 Impanonation du client ). Le fournisseur est donc tenu de faire des contrôles supplémentaires, mais du côté client, vous ne pouvez rien faire pour améliorer efficacement la sécurité.

Si vous voulez d'autres informations sur la manière dont cela sera géré sur des appareils Android à l'avenir, consultez ma réponse ici .

Autres conseils

Vous devez intégrer l'ID client dans l'extension pour permettre à Salesforce savoir quelle est l'application qui tente d'authentifier.Ces identifiants clients sont destinés à toujours être stockés et transmis au serveur, de sorte que vous le stockez de manière sécurisée, il ne devrait pas y avoir de problème.

comme Matt a expliqué si vous créez une application emballée, vous serez obligé d'inclure l'ID client..Une autre solution consiste à écrire l'application comme application hébergée:

Quelle est la différence entre les applications emballées et les applications hébergées?

L'inconvénient de ceci est la complexité supplémentaire de la gestion d'un serveur Web.Mais cela permettra une plus grande sécurité.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top