2012-04-02 31 views
12

Salesforce.com API her zaman aktif bir kullanıcı olarak uygulamasını kullanabilirsiniz varsaymak gibi görünüyor uygulamalar. Kimlik doğrulama yöntemleri (Oturum Kimliği ve OAuth), her ikisinin de kimliği doğrulanmış bir kullanıcının "bir şeyler yapması" gerektiğinden bunu desteklemektedir.En İyi Uygulama

API'ye erişmesi gereken bir arka plan uygulamasına sahip olduğunuz zamanki stratejiniz nedir? Gördüğüm örnekler tam kullanıcı adınızı, kullanıcı adınızı, parolanızı ve güvenlik belirtecinizi soruyor. Sadece bu bilgiyi bilmek ya da saklamak istemiyorum, aynı zamanda (şifre politikaları vb.) Değişebilir ve bu nedenle uygulama molası vermemeyi tercih ederim.

Kullanıcı etkileşimi gerektirmeyen SFDC'lere yönelik uzun süreli kimlik doğrulaması için "en iyi uygulama" nedir?

+0

Dürüst olmak gerekirse, aynı sorun var. Her 90 günde bir SF'nin gerektirdiği için SF uygulamalarımızın şifrelerini girip güncellemeliyiz. Gerçek PITA. – Josh

+1

sadece bir API ise Modifiye veri ve geçerli olsun bir şifre ile sadece kullanıcı oluşturulamaz? Ya da sadece API erişiminin yanında başka şeyler yapmak zorunda mı? – Gobbledigook

+1

Ben ideal başkaları tarafından kullanılacak uygulama oluştururken ediyorum, bu yüzden bu benim yapmak herkesin sormak zorunda kalacak bir şeydir. SFDC kullanıcı hesapları pahalıdır, bu yüzden bu çok çekici bir seçenek değildir. Ayrıca, parola ilkesinin bireysel düzeyde değil, kuruluş düzeyinde ayarlandığını düşünüyorum. –

cevap

10
Salesforce.com API istekleri, bir sessionId (aka access_token) tarafından tanımlanmış bir kullanıcı bağlamında çalışır (siteler yoluyla gösterilen kimliği doğrulanmamış özel API'ler tek istisnadır).

API çağrıları yapmak için, bir sessionId'ye ihtiyacınız olacak, gerektiğinde kullanıcı adı/parola/güvenlik belirteci saklamak ve oturum açma (veya oauth2 kullanıcı adı/parola akışını) çağırarak söyleyebileceğiniz şekilde alabilirsiniz. .

Alternatif olarak, kullanıcının yalnızca bir kez uygulamanızı yetkilendirmesini gerektiren etkileşimli OAuth akışını kullanabilirsiniz; bu noktada, yenileme belirteci olarak adlandırılan uzun ömürlü bir simge verilecektir. Sadece yenileme jetonu kullanarak (daha sonra API çağrıları yapabilirsiniz) yeni bir access_token almak için OAuth2 belirteç hizmetini kullanabilirsiniz bundan sonra herhangi bir noktada.

Bu son yaklaşımın gereksinimlerinizi en iyi şekilde karşılayacağı düşünülürse, bu, uygulamanızı ilk başta yetkilendirmek için yalnızca bir kez kullanıcı etkileşimi gerektirecektir.

+0

Teşekkürler, interaktif OAuth'a bakacağım akar. Tek seferlik bir yetkilendirme ile tamamım (aslında böyle bir şey beklerdim), her seferinde her zaman yetki vermelerini talep edemem. –

+1

Burada bahsettiğiniz yöntemlerin bazı bağlantıları: https://na1.salesforce.com/help/doc/en/remoteaccess_oauth_web_server_flow.htm ve https://na1.salesforce.com/help/doc/en/remoteaccess_oauth_refresh_token_flow.htm –

0

Maalesef SF API'lerine erişmek için bir hesap kullanmanız gerekiyor. Başlangıçta Uzaktan Erişim yaratmanın amacının bunu yapmaktan kaçınmak olduğunu düşündüm, ama ne yazık ki değil.

ne yaptığımı şeyler yapmanın en iyi yöntem yoldur, ama biz bu amaç için oluşturulmuş bir API belirli kullanıcı kullanarak ve yapılandırma dosyasındaki kimlik bilgilerini depolamak ve DPAPI kullanarak şifreyi şifreleyerek am emin değilim. Ben SOAP WS kullanıyorum, bu yüzden login (kullanıcı adı, psswd) ve sonraki oturumlarda bu oturum kimliğini kullanıyorum. Sen alternatif olarak OAuth 2.0 kullanarak oturum kimliği alabilir, ancak bu Uzaktan Erişim uygulaması oluşturmak gerektirir ve hala bir kullanıcı adı/şifre gerekir.