Организация входа в систему Salesforce за прокси-сервером

Я пытаюсь подключиться к SalesForce с помощью python и Simple Salesforce. Моя цель — найти что-то эквивалентное команде командной строки — sfdx force:auth:web:login -r $url в python и получить токен доступа через пользовательский домен. Я запускаю эту команду после указания переменных прокси в командной строке, экспортируя http_proxy и https_proxy.

Пока просматривая примеры и документацию, я не смог найти ничего, что могло бы получить мне токен. Любое руководство по этому поводу будет оценено по достоинству. Я могу вызвать процесс sdfx, но мне было интересно, есть ли способ сделать это через python.


person Steve_Greenwood    schedule 11.02.2021    source источник


Ответы (1)


simple_salesforce не поддерживает большинство форм аутентификации OAuth, например force:auth:web:login. три способа входа с помощью simple_salesforce:

  1. Предоставьте свой собственный токен доступа, полученный путем выполнения аутентификации OAuth в другом месте.
  2. Выполните вход по протоколу SOAP, указав имя пользователя, пароль и токен безопасности (или другие необходимые параметры в зависимости от конкретной конфигурации вашей организации).
  3. Используйте поток JWT OAuth с именем пользователя и сертификатом.

Из этих трех предпочтительнее использовать JWT при межсерверной интеграции, а вход по протоколу SOAP — для интерактивного использования на консоли.

person David Reed    schedule 11.02.2021
comment
Есть ли другая библиотека, которая может это сделать? Я пробовал упомянутые методы, и они не работали. - person Steve_Greenwood; 12.02.2021
comment
Что ты имеешь в виду? Они, безусловно, работают, но не предоставляют возможности OAuth. Если ваша организация использует определенные стратегии, такие как белый список IP-адресов, вам может потребоваться следовать другим инструкциям в документации simple_salesforce. - person David Reed; 12.02.2021
comment
SalesforcePy поддерживает поток OAuth с использованием имени пользователя и пароля. - person David Reed; 12.02.2021
comment
Всякий раз, когда я пытаюсь получить токен, он ничего не возвращает. Также все эти методы требуют секрета клиента и ключа, которых у меня нет. Я пытался заставить что-то работать с идентификатором пользователя и паролем. Это один из простых методов Salesforce, но для него требуется токен доступа. - person Steve_Greenwood; 14.02.2021
comment
simple_salesforce обеспечивает вход по имени пользователя и паролю. Вам понадобится токен безопасности, но это не то же самое, что токен доступа. Ваш токен безопасности сбрасывается и отправляется вам по электронной почте каждый раз, когда вы сбрасываете пароль. - person David Reed; 14.02.2021
comment
Поскольку вход в мою организацию контролируется через oauth, я не могу сбросить пароль, и он не был отправлен мне при создании учетной записи. Есть ли способ получить его с портала? - person Steve_Greenwood; 14.02.2021
comment
Что значит контролировать через oauth? Вы говорите, что в вашей организации есть обязательная система единого входа? - person David Reed; 14.02.2021
comment
Да, без него даже войти на портал невозможно. - person Steve_Greenwood; 14.02.2021
comment
Тогда simple_salesforce одного не хватит. Вам придется внедрить OAuth вне библиотеки (и создать связанное приложение, чтобы получить секрет и ключ клиента) или использовать другую библиотеку, которая поддерживает вход OAuth и получить токен доступа, а затем передать токен доступа в simple_salesforce. Вы не сможете использовать вариант входа в систему, доступный в самой simple_salesforce. - person David Reed; 14.02.2021
comment
См. этот вопрос SFSE: salesforce.stackexchange.com/ вопросы/170673/ - person David Reed; 14.02.2021