Как аутентифицировать Salesforce через драйвер ODBC CData через accessToken OAuth?

Я могу получить данные отдела продаж только по имени пользователя и паролю, как показано ниже.

cnxn = pyodbc.connect("DRIVER={CData ODBC Driver for Salesforce};User=myUser;Password=myPassword;Security Token=myToken;")

Но если я не хочу указывать имя пользователя и пароль и хочу получить доступ к данным с помощью Accesstoken, который возвращается из Oauth. Как я могу это сделать?

1 ответ

Инструкции по подключению к Salesforce с использованием OAuth с драйвером CData ODBC находятся здесь: http://cdn.cdata.com/help/RFE/odbc/pg_oauthcustomappcreate.htm (скопировано ниже).

Короче говоря, вы будете использовать токен доступа OAuth и URL-адрес сервера OAuth, ваш код будет выглядеть примерно так:

cnxn = pyodbc.connect("DRIVER={CData ODBC Driver for Salesforce};OAuthAccessToken=OAUTH_ACCESS_TOKEN;OAuthServerUrl=OAUTH_SERVER_URL;")

Аутентификация в Salesforce из веб-приложения

Чтобы получить токен доступа, установите следующие свойства подключения:

  • OAuthClientId: задайте ключ клиента в настройках приложения.
  • OAuthClientSecret: укажите секрет потребителя в настройках приложения.
  • CallbackURL: укажите URL-адрес обратного вызова в настройках приложения.

При подключении через веб-приложение или если драйвер не авторизован для открытия окна браузера, вам необходимо обменять временные значения проверки на токен доступа:

  1. Вызовите GetOAuthAuthorizationUrl. Хранимая процедура возвращает URL-адрес конечной точки OAuth.
  2. Авторизуйтесь и авторизуйте приложение. Вы будете перенаправлены обратно на URL-адрес обратного вызова. Если установить для параметра GrantType значение Implicit, URL-адрес обратного вызова будет содержать OAuth Access Token и OAuthServerUrl в параметре строки запроса. Если вы установите для параметра GrantType значение code, URL-адрес обратного вызова будет содержать код проверки в параметре строки запроса с именем "code". Извлеките код верификатора и вызовите GetOAuthAccessToken.

Соответствующая часть:

Чтобы подключиться к данным, установите следующие свойства подключения:

  • OAuthAccessToken
  • OAuthServerUrl

Чтобы автоматически обновлять токен доступа по истечении срока его действия, установите для InitiateOAuth значение REFRESH и установите OAuthRefreshToken. В качестве альтернативы вызовите хранимую процедуру RefreshOAuthAccessToken по истечении срока действия токена доступа. Учитывая токен обновления в качестве входных данных, процедура возвращает действительный токен доступа OAuth.

В качестве альтернативы получению URL-адреса авторизации и регистрации пользователя в Salesforce вы можете настроить тип предоставления пароля, вызвав GetOAuthAccessToken, установив для GrantType значение PASSWORD. Здесь вам необходимо убедиться, что имя пользователя и пароль установлены в строке подключения в дополнение к идентификатору клиента и секрету вашего приложения. Обратите внимание, что для параметра InitiateOAuth необходимо установить значение OFF, чтобы тип предоставления пароля работал. Полученный таким образом токен обновить нельзя. Этот метод имеет то преимущество, что удаляет шаг входа в систему для пользователей, которые не могут открыть веб-браузер, но он имеет недостаток, заключающийся в том, что учетные данные пользователя обмениваются в виде обычного текста между сервером и Salesforce.

Примечание. Вы можете настроить время ожидания сеанса в Salesforce, выбрав "Настройка"> "Настройка администрирования"> "Управление безопасностью"> "Настройки сеанса".

Другие вопросы по тегам