Mam za zadanie zintegrowanie naszego domowego CRM z wieloma klientami z Salesforce.com. Mam zamiar napisać usługę opartą na serwerze, która będzie przekazywać informacje z każdego z naszych magazynów danych CRM klientów do Salesforce. Chciałbym użyć interfejsu API REST SFDC, ale w razie potrzeby mógłbym użyć interfejsu API SOAP.Najlepsze podejście bezpieczeństwa do integracji Salesforce.com z .NET Server C#
Staram się zrozumieć najlepszy mechanizm bezpieczeństwa do użycia. Ponieważ rozwiązanie będzie oparte na serwerze, ważne jest, aby podczas łączenia z SFDC nie była wymagana interakcja użytkownika. Nasz serwer musi mieć możliwość ustanowienia bezpiecznego połączenia z SFDC bez podawania przez użytkownika danych logowania.
Do tej pory eksperymentowałem z interfejsem API REST i OAuth2.0. Mam skonfigurowane testowe konto SFDC i skonfigurowałem w nim naszą aplikację, pobierając klucz klienta, tajny klucz i wywołanie zwrotne. To wszystko działa, a moja strona wywołania zwrotnego otrzymuje token bezpieczeństwa. Moja strona zwrotna używa dostarczonego żeton następująco:
string rc = "";
try
{
string uri = "https://eu2.salesforce.com/services/data/v20.0/sobjects/";
System.Net.WebRequest req = System.Net.WebRequest.Create(uri);
req.Method = "GET";
req.Headers.Add("Authorization: Bearer " + token);
System.Net.WebResponse resp = req.GetResponse();
System.IO.StreamReader sr = new System.IO.StreamReader(resp.GetResponseStream());
rc = "code=" + code + ", response=" + sr.ReadToEnd().Trim();
}
catch (Exception ex)
{
rc = "45435465 Token=" + token + ", err=" + ex.Message;
}
return rc;
Kłopot w tym, za każdym razem uruchomić to otrzymam 401 (Nieautoryzowany) odpowiedź od SFDC, chociaż jestem przekazując token zabezpieczeń dostarczonych przez SFDC.
Czy interfejs REST API jest właściwym podejściem do tego rodzaju dostępu bez nadzoru i czy ktoś może doradzić, co robię źle w swoim kodzie, czy może wyrazić mądrość, jak to zrobić?
Wielkie dzięki.