Tôi đã được giao nhiệm vụ tích hợp CRM đa khách hàng trong nước của chúng tôi với Salesforce.com. Tôi sẽ viết một dịch vụ dựa trên máy chủ, sẽ đẩy thông tin từ mỗi khách hàng của chúng tôi vào kho dữ liệu CRM đến Salesforce. Tôi muốn sử dụng API REST SFDC, nhưng có thể sử dụng API SOAP nếu cần.Cách tiếp cận bảo mật tốt nhất để tích hợp Salesforce.com với máy chủ .NET C#
Tôi đang đấu tranh để hiểu cơ chế bảo mật tốt nhất để sử dụng. Vì giải pháp sẽ dựa trên máy chủ, điều quan trọng là không cần tương tác người dùng khi kết nối với SFDC. Máy chủ của chúng tôi cần có khả năng thiết lập kết nối an toàn tới SFDC mà không cần người dùng cung cấp bằng chứng xác thực đăng nhập của họ.
Cho đến nay tôi đã thử nghiệm với API REST và OAuth2.0. Tôi đã thiết lập một tài khoản SFDC thử nghiệm và cấu hình ứng dụng của chúng tôi bên trong nó, nhận khóa người dùng, khóa bí mật và uri gọi lại. Điều này tất cả các công trình, và trang gọi lại của tôi nhận được một mã thông báo bảo mật. Trang callback của tôi sử dụng token cung cấp như sau:
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;
Vấn đề là, mỗi khi tôi chạy này, tôi nhận được một (trái phép) trả lời 401 từ SFDC, mặc dù tôi đang đi qua các thẻ an ninh được cung cấp bởi SFDC.
REST API là phương pháp chính xác cho truy cập 'không được giám sát' như thế này, và bất cứ ai có thể tư vấn cho những gì tôi làm sai trong mã của tôi, hoặc cung cấp những lời khôn ngoan về cách làm việc này?
Rất cám ơn.