我正在尝试使用其OAuth 2.0界面连接到Salesforce.com。我找到了像LROAuth2Client这样的解决方案,允许我打开一个网页并进行身份验证。但有没有办法通过后端完成这一切,而不首先访问网页,这样我可以将它更多地集成到应用程序中?
我是OAuth的新手,所以我不知道所有的限制。
提前致谢。
答案 0 :(得分:5)
Salesforce支持OAuth2用户名/密码选项,这一切都是在没有网页的情况下完成的。例如使用卷曲你会做
curl -v https://login.salesforce.com/services/oauth2/token -d "grant_type=password" -d "client_id=xxxxxxxxxx" -d "client_secret=1234567890" -d "username=noreply@salesforce.com" -d "password=XXXXXXXXX"
话虽如此,从iOS使用Web /交互流程非常简单,使用自定义方案URL进行回调(尝试使用库可能使其比实际更难)。基于Web的流对于为其他身份验证流配置的用户(例如基于SAML的SSO)非常重要,这些用户/密码流无效。
在REST和&位置的某个地方应该有一个视频在线来自dreamforce'10的OAuth会议,其中安全PM在舞台上编写了基于iPhone oAuth客户端的应用程序。
答案 1 :(得分:0)
这取决于你的目标。使用oauth2的一个原因是您希望更好地了解正在运行的内容。让我们假设您有许多连接到同一站点的cron API应用程序。在这种情况下,由于它们是cron应用程序,因此您甚至不必在cron服务器上运行Web浏览器。您当然可以只配置用户名和密码,但如果您重置密码,则必须更新所有cron服务器,而您甚至不必知道有多少台服务器。特别是如果他们通过NAT来。
在这种情况下,一个非常可行的解决方案是使用salesforce上的可视化强制页面作为回调URL。管理员可以登录salesforce,然后使用visual force页面生成刷新令牌,然后将其交给cron作业使用。
你知道你的审计阶段有oauth 2。您分发的令牌可以限制为API。并且希望如果salesforce没有正确地使用oauth 2,您可以根据需要随时重置用户登录密码,而不会影响您发放的令牌。
比尔
答案 2 :(得分:0)
还有一种解决方法。您可以访问我的site方法。