2012-04-02 9 views
12

Salesforce.com एपीआई यह मानता है कि आप हमेशा सक्रिय उपयोगकर्ता के रूप में ऐप का उपयोग करेंगे। उनकी प्रमाणीकरण विधियां (सत्र आईडी और ओएथ) इसका समर्थन करती हैं क्योंकि उन्हें दोनों को "कुछ करने" के लिए एक अधिकृत उपयोगकर्ता की आवश्यकता होती है।पृष्ठभूमि ऐप्स के लिए Salesforce.com एपीआई प्रमाणीकरण के लिए सर्वश्रेष्ठ अभ्यास

आपके पास पृष्ठभूमि ऐप रखने की रणनीति क्या है जिसके लिए एपीआई तक पहुंच की आवश्यकता है? मैंने जो उदाहरण देखा है, वे आपके पूर्ण प्रमाण-पत्रों के लिए पूछते हैं - उपयोगकर्ता का नाम, पासवर्ड और सुरक्षा टोकन। न केवल मैं उस जानकारी को जानना या स्टोर करना चाहता हूं, लेकिन यह बदल सकता है (पासवर्ड नीतियों से, आदि) और इसके बजाय मुझे ऐप तोड़ना नहीं होगा।

एसएफडीसी एपीआई के लिए लंबे समय तक प्रमाणीकरण के लिए "सर्वोत्तम अभ्यास" क्या है जिसके लिए उपयोगकर्ता परस्पर संपर्क की आवश्यकता नहीं है?

+0

ईमानदारी से, मैं एक ही समस्या है। हर 9 0 दिनों में, हमें अपने एसएफ अनुप्रयोगों के पासवर्ड में जाना और अपडेट करना होगा क्योंकि एसएफ को इसकी आवश्यकता है। असली पिटा – Josh

+1

क्या आप केवल एक एपीआई केवल उपयोगकर्ता को संशोधित डेटा और पासवर्ड के साथ नहीं बना सकते हैं जो कभी समाप्त नहीं होता है? या सिर्फ एपीआई एक्सेस के अलावा अन्य चीजों को करने की ज़रूरत है? – Gobbledigook

+1

मैं ऐप बना रहा हूं जो आदर्श रूप से दूसरों द्वारा उपयोग किया जाएगा, इसलिए ऐसा कुछ है जो मुझे हर किसी से करने के लिए कहना होगा। एसएफडीसी उपयोगकर्ता खाते महंगा हैं इसलिए यह एक बहुत ही आकर्षक विकल्प नहीं है। साथ ही, मुझे लगता है कि पासवर्ड नीति संगठन स्तर पर सेट है, व्यक्तिगत स्तर पर नहीं। –

उत्तर

10

Salesforce.com एपीआई अनुरोध किसी उपयोगकर्ता के संदर्भ में संचालित होते हैं, जिसे sessionId (उर्फ access_token) द्वारा पहचाना जाता है (साइटों के माध्यम से खुला अनधिकृत कस्टम एपीआई एक अपवाद है)।

तो एपीआई कॉल करने के लिए, आपको एक सत्र आईडी की आवश्यकता होगी, जब आप उपयोगकर्ता नाम/पासवर्ड/सुरक्षा टोकन और कॉलिंग लॉगिन (या oauth2 उपयोगकर्ता नाम/पासवर्ड प्रवाह) को संग्रहीत करते हैं, तो आप एक प्राप्त कर सकते हैं जब आपको आवश्यकता हो ।

वैकल्पिक रूप से आप इंटरैक्टिव ओएथ प्रवाह का उपयोग कर सकते हैं, जिसके लिए उपयोगकर्ता को केवल एक बार आपके आवेदन को अधिकृत करने की आवश्यकता होती है, जिस बिंदु पर आपको एक लंबे समय तक टोकन दिया जाएगा जिसे रीफ्रेश टोकन कहा जाता है। उसके बाद किसी भी समय आप केवल ताज़ा टोकन का उपयोग करके एक नया access_token (जो एपीआई कॉल कर सकते हैं) प्राप्त करने के लिए oauth2 टोकन सेवा का उपयोग कर सकते हैं।

ऐसा लगता है कि यह अंतिम दृष्टिकोण आपकी आवश्यकताओं को पूरा करेगा, इसके लिए आपको केवल एक बार उपयोगकर्ता संपर्क को आपके आवेदन को अधिकृत करने की आवश्यकता होगी।

+0

धन्यवाद, मैं इंटरैक्टिव ओथ में देखूंगा बहे। मैं एक बार प्राधिकरण के साथ ठीक हूं (असल में, मुझे ऐसा कुछ उम्मीद होगी), मुझे बस उन्हें हर बार अधिकृत करने की आवश्यकता नहीं हो सकती है। –

+1

आपके द्वारा उल्लिखित विधियों के लिए यहां कुछ लिंक दिए गए हैं: https://na1.salesforce.com/help/doc/en/remoteaccess_oauth_web_server_flow.htm और https://na1.salesforce.com/help/doc/en/remoteaccess_oauth_refresh_token_flow.htm –

0

दुर्भाग्यवश आपको एसएफ एपीआई तक पहुंचने के लिए एक खाते का उपयोग करने की आवश्यकता है। शुरुआत में मैंने सोचा था कि रिमोट एक्सेस बनाने का उद्देश्य ऐसा करने से बचाना था, लेकिन हां, यह नहीं है।

यह सुनिश्चित नहीं है कि मैं जो कर रहा हूं वह चीजों को करने का सबसे अच्छा तरीका है, लेकिन मैं इस उद्देश्य के लिए बनाए गए एपीआई विशिष्ट उपयोगकर्ता का उपयोग कर रहा हूं और कॉन्फ़िगरेशन फ़ाइल में क्रेडेंशियल्स संग्रहीत कर रहा हूं और डीपीएपीआई का उपयोग करके पासवर्ड एन्क्रिप्ट कर रहा हूं। मैं SOAP WS का उपयोग कर रहा हूं इसलिए मैं लॉगिन (उपयोगकर्ता नाम, psswd) कहता हूं और मैं उस कॉल आईडी को बाद की कॉल में उपयोग करता हूं। आप OAuth 2.0 का उपयोग करके वैकल्पिक रूप से अपना सत्र आईडी प्राप्त कर सकते हैं, लेकिन इसके लिए आपको रिमोट एक्सेस एप्लिकेशन बनाने की आवश्यकता है और आप अभी भी उपयोगकर्ता नाम/पासवर्ड की आवश्यकता होगी।

संबंधित मुद्दे