Les meilleures Pratiques pour Salesforce.com API d'authentification pour les applications d'arrière-plan
L'Salesforce.com API semble supposer que vous aurez toujours utiliser l'application comme un utilisateur actif. Leurs méthodes d'authentification (IDENTIFIANT de Session et l'authentification OAuth) soutenir ce qu'ils ont à la fois besoin d'un utilisateur authentifié de "faire quelque chose".
Qu'est-ce que la stratégie pour quand vous avez un fond application a besoin d'accéder à l'API? Les exemples que j'ai vu votre informations d'identification d'utilisateur - nom d'utilisateur, mot de passe, et le jeton de sécurité. Non seulement je ne veux pas savoir ou stocker de l'information, mais il peut changer (à partir de stratégies de mot de passe, etc) et je préfère ne pas avoir l'app se casser à cause de cela.
Quelle est la "meilleure pratique" pour une longue durée de vie de l'authentification à SFDCs Api qui ne nécessite pas d'interaction de l'utilisateur?
- Honnêtement, j'ai le même problème. Tous les 90 jours, nous devons aller et de mettre à jour notre SF applications les mots de passe parce que les SF exige. Réel PITA.
- Ne pouvez-vous pas juste créer une API seul utilisateur à modifier des données et un mot de passe qui n'expire jamais? Ou est-il nécessaire de faire d'autres choses en plus seulement l'accès à l'API?
- Je suis de la création de l'application qui devraient, idéalement, être utilisés par les autres, donc c'est quelque chose que je dois demander à tout le monde de le faire. SFDC les comptes d'utilisateur sont cher donc ce n'est pas une option très attrayante. Aussi, je pense que la stratégie de mot de passe est défini à l'org de niveau, pas au niveau individuel.
- Cela peut aider (il a fait pour moi) salesforce.stackexchange.com/questions/90110/...
Vous devez vous connecter pour publier un commentaire.
Salesforce.com les requêtes de l'API dans le contexte d'un utilisateur, identifié par un id de session (aka access_token) (non authentifié personnalisé Api exposées via des sites est la seule exception).
Afin de faire des appels de l'API, vous aurez besoin d'un id de session, vous pouvez en obtenir un, comme vous le dites par stocker le nom d'utilisateur/mot de passe/jeton de sécurité et d'appel de connexion (ou de la oauth2 nom d'utilisateur/mot de passe de flux) lorsque vous en avez besoin.
Alternativement, vous pouvez utiliser le interactif OAuth l'écoulement, ce qui exige de l'utilisateur qu'une fois l'autorisation de votre demande, à quel point vous serez donné une longue durée de vie du jeton appelé un jeton d'actualisation. À tout moment après que vous pouvez utiliser le oauth2 service d'émission de jeton pour obtenir une nouvelle access_token (qui peut alors faire des appels de l'API) en utilisant seulement l'actualisation jeton.
Semble que cette dernière approche pourrait le mieux répondre à vos besoins, cela nécessiterait juste un temps d'interaction de l'utilisateur pour d'abord autoriser votre application.
Malheureusement, vous devez utiliser un compte pour accéder à l'Api SF. Au début, je pensais que le but de créer un Accès à Distance était pour éviter de le faire, mais hélas, il ne l'est pas.
Ne sais pas si ce que je fais est une meilleure pratique de la façon de faire les choses, mais je suis en utilisant une API spécifique de l'utilisateur que nous avons créé à cet effet et le stockage des informations d'identification dans le fichier de configuration et de crypter le mot de passe à l'aide de DPAPI. Je suis à l'aide de SAVON WS j'appelle donc les informations de connexion(nom d'utilisateur, mot de passe) et j'utilise l'id de session dans les appels suivants. Vous pouvez également obtenir votre Id de session en utilisant OAuth 2.0, mais cela vous oblige à créer une application d'Accès à Distance et vous encore besoin d'un nom d'utilisateur/mot de passe.
OAuth 2.0 authentification du serveur web est le mieux adapté pour l'utilisation actuelle de cas.
https://help.salesforce.com/HTViewHelpDoc?id=remoteaccess_oauth_web_server_flow.htm&language=en_US