目前,我们并未在应用中使用OAuth,但我们正在努力进行转变,我们已经直接登录并捕获了输入的用户/密码并存储了这些密码。然后,我们转过身来,使用存储的凭据来实现一项功能,该功能允许用户在Salesforce.com中打开记录,我们将用户/传入用户以及登录URL以及起始URL传递给特定记录,这很好并且这是一个广受欢迎的功能,因为它是从应用程序到Salesforce.com的简单SSO,用户可以在其中看到所有在应用程序中不可见的数据。
转移到OAuth 2.0并使用标准的Webflow,我们不再能够捕获用户/密码,就安全性而言,这实际上是一件好事。但是,我们想保留此功能,通过传递一个OAuth令牌或某种sesson ID来将SSO进入Salesforce.com吗?
在阅读了更多的内容并思考了OAuth的功能后,我觉得这不可能,因为获得的令牌只能用于API,不能用于前端系统。我希望我是错的,并且有一种方法可以使用这些令牌登录到前端。
编辑
好的,我正在编辑以希望使这一点更加清楚。当前,用户使用login()API方法及其用户/密码进行身份验证,我们将此用户/密码存储在本地(不理想)。然后,我们同步用户可以在应用程序内随时访问的数据子集,因为它是一个子集,所以我们具有“ SSO”到Salesforce.com前端的功能。这只是使用URL在Web视图(UIWebView)中打开Salesforce.com https://ns8.salesforce.com/?pw=PASSWORD&un=username@example.com&startURL=/recordId。这将使我们登录到Salesforce.com并打开指定的记录。
展望未来,我们希望在网络流中使用OAuth 2.0,这样我们就不会处理用户/密码,因此我们不必处理安全令牌或打开特定的IP范围就可以在没有安全令牌的情况下进行登录。
话虽如此,是否仍然可以使用从OAuth身份验证接收到的令牌/凭证来打开Salesforce.com,自动登录用户并转到特定记录?
我以前可能滥用“单一登录”,但是从某种意义上说,这可以模拟从我们的应用程序到Salesforce.com的SSO,因为我们的用户可以触摸应用程序内的单个按钮并登录到Salesforce。 com Web界面。
当您请求OAuth令牌时,可以指定其范围,选项仅包括api(令牌的原始类型),或其他选项,包括将令牌与UI页面一起使用的功能。(请参阅帮助中的范围参数详细信息)。仍然缺少的一种方法是,当您只能告诉浏览器/ Webview进入URL时,使用该令牌来引导UI,但是一种广泛使用(但不受支持)的方法是通过frontdoor.jsp,例如d打开https:// {instance} /secur/frontdoor.jsp?sid= {the_Access_token}&retURL = {optional_relative_url_to_open}记住要对两个值进行URL编码。
| 归档时间: |
|
| 查看次数: |
10467 次 |
| 最近记录: |