Аутентификация Python Salesforce API - PullRequest
0 голосов
/ 14 октября 2019

Я пытаюсь автоматизировать создание билетов в Salesforce. Для этого я использую API с Python. У меня есть идентификатор клиента и секрет клиента для моего зарегистрированного приложения Python. Я прочитал много вопросов, и в целях безопасности я не хочу использовать поток «user-password» для моего сценария. Есть ли способ, которым я могу использовать только «ИД КЛИЕНТА» и «СЕКРЕТ КЛИЕНТА», чтобы получить токен доступа, где я могу передать этот токен доступа в заголовке носителя для других вызовов

import requests

params = {
    "grant_type": "client_credentials",
    "client_id": client_id, # Consumer Key
    "client_secret": client_secret, # Consumer Secret

}

r=requests.post("https://login.salesforce.com/services/oauth2/token", params=params)

access_token = r.json().get("access_token")

instance_url = r.json().get("instance_url")
print("Access Token:", access_token)

1 Ответ

2 голосов
/ 15 октября 2019

Вам всегда потребуется учетная запись SF. Невозможно просто заставить бэкэнд-систему общаться с SF-системой. Salesforce рассматривает каждого как пользователя, поэтому вам нужно тратить учетную запись на «интеграционного пользователя» - но взамен вы можете контролировать доступ к таблицам, столбцам и функциям так же, как вы контролируете доступ реальных людей. Это вплоть до базовых привилегий базы данных Oracle и пользователей базы данных.

Используете ли вы потоки OAuth2 (включая секреты клиента) или, возможно, некоторую аутентификацию на основе сертификатов - всегда будеттребуется какой-то элемент «имя пользователя и пароль». Лучшее, что вы можете сделать, это убедиться, что вашему приложению не нужно видеть и хранить пароль, вместо этого показывается обычное приглашение SF для входа в систему и при успешном входе пользователь перенаправляется в ваше приложение, чтобы продолжить с известным идентификатором сеанса ...

Может быть, вы сможете что-то еще автоматизировать, если ваше приложение и SF используют один и тот же единый вход, но в целом ... Вы должны либо разрешить пользователям входить в SF через ваше приложение, либо создавать заявки как отдельныепользователь с правами администратора (а затем вы сохраняете учетные данные этого пользователя в своем приложении)

...