2011-02-10 3 views
4

Я пытаюсь подключиться к Salesforce.com, используя их интерфейс OAuth 2.0. Я нашел такие решения, как LROAuth2Client, которые позволяют мне открывать веб-страницу и аутентифицироваться именно так. Но есть ли способ сделать это через бэкэнд, не перейдя на веб-страницу, чтобы я мог больше интегрироваться в приложение?OAuth 2.0 для Salesforce без веб-страницы

Я новичок в OAuth, поэтому я не знаю всех ограничений.

Заранее спасибо.

+0

Salesforce webauth - это просто пользовательский интерфейс для iPad с iPad с их родным SDK. Бар появляется на вкладке между полями ... действительно ?? Невозможно вернуться с страницы с информацией о забытых паролях ... действительно ?? Мигает пустой белый экран перед синей страницей ... тьфу. –

+0

Очень подробный ответ об этом процессе здесь http://stackoverflow.com/questions/12794302/salesforce-authentication-failing/29112224 –

ответ

5

Salesforce поддерживает опцию OAuth2 username/password, которая выполняется без веб-страницы. например с помощью завиток вы могли бы сделать

curl -v https://login.salesforce.com/services/oauth2/token -d "grant_type=password" -d "client_id=xxxxxxxxxx" -d "client_secret=1234567890" -d "[email protected]" -d "password=XXXXXXXXX" 

Сказав, что, веб/интерактивный поток довольно прост в использовании с прошивкой, используя пользовательскую схему URL для обратного вызова (пытается использовать библиотеку, возможно, что делает его более трудным, чем это на самом деле). Веб-поток важен для пользователей, настроенных для альтернативных потоков аутентификации (например, SSO на основе SAML), которые не будут работать над потоком имени пользователя и пароля.

Должно быть видео в Интернете, где-то из REST & сеанса OAuth от dreamforce'10, где PM службы безопасности написал приложение на iPhone для iPhone oAuth на сцене.

+4

Не забудьте добавить маркер безопасности в конце вашего пароля здесь. – umassthrower

+0

@superfell, у меня есть вопрос здесь. Я также использовал ту же библиотеку LROAuth2Client для приложения. Я успешно вошел в систему и получил данные Json, возвращенные SalesForce.Now мне нужно отображать информацию о пользователе на некоторой веб-странице, и у меня есть идентификатор пользователя и последний доступ token.Now, я вызываю этот URL-адрес, чтобы показать пользователю: https://login.salesforce.com/id/orgID/userID&access_token=XXXXXXXXXXXXX, который я получаю после успешной аутентификации. Теперь проблема заключается в том, что каждый раз, когда я вызываю URL-адрес, он показывает me Ошибка: Missing_OAuth_Token, хотя я предоставил это в url в параметре access_token. Так что я смущен, что я делаю неправильно? –

+0

Спасибо заранее. –

0

Это зависит от вашей цели. Одной из причин использования oauth2 является то, что вы хотите лучше понять, что работает. Скажем, например, у вас есть много приложений API cron, которые подключаются к одному и тому же сайту. В этом случае, поскольку они являются приложениями cron, у вас даже не обязательно есть веб-браузер, работающий на ваших серверах cron. Разумеется, вы можете просто настроить имя пользователя и пароль, но если у вас есть сброс пароля, вы должны обновить все свои серверы cron, и даже не обязательно знаете, сколько серверов это. Особенно, если они проходят через NAT.

В этом типе сценария очень эффективным решением является использование страницы визуальной силы в salesforce в качестве URL-адреса обратного вызова. Администратор может войти в систему Salesforce, а затем использовать страницу визуальной силы для создания токена обновления, а затем передать ее для использования с заданием cron.

Знаете, у вас есть oauth 2 на этапе аудита. Выбранный токен может быть ограничен API. И, надеюсь, если salesforce не будет корректно работать, вы можете сбросить пароль на логин пользователя так часто, как нужно, без выполнения жетонов, которые вы раздавали.

Законопроект

0

Существует еще один подход к этому. Вы можете посетить мой site для подхода.

Смежные вопросы