【发布时间】:2015-01-30 11:17:47
【问题描述】:
在我们目前的情况下,我们基于 Web 的应用程序 (SP) 已经使用 Spring Security SAML 扩展集成了 SSO。我们的产品是一种 SaaS,我们有不同的客户,他们可能在他们的末端配置了不同的 IDP(身份提供商)。 现在我们正在尝试为我们的移动应用程序提供 SSO 支持。
经过一番搜索,我发现了 3 种可以实施的解决方案:
1) 使用网页视图:当为客户端启用 SAML 时,移动应用程序将嵌入网页视图,该网页视图在打开移动应用程序时呈现 IDP 登录页面。将命中 SP 端的 URL,这将触发 SAML 重定向回 IDP。因此,webview 将执行 SP 发起的登录流程。然而,由于 webview 不使用 cookie 空间,用户必须登录到应用程序,每次应用程序被杀死或会话过期。另外,由于 webview 不是浏览器,我读到它可能无法在 HTTP 重定向期间处理边缘情况。
2) 使用原生 SSO 应用:IDP 通常提供原生 SSO 应用,移动应用可以在其中登录 IDP。移动应用程序可以通过相应 IDP 提供的 SDK 与 IDP 的本机应用程序进行交互。但是由于我们的移动应用程序应该能够支持许多 IDP 的 SSO,如果我们采用这种方法,我们可能必须为每个 IDP 与多个 Native SSO 应用程序集成。我不确定这在我们的场景中是否合理
3) 使用 OAuth 和 SAML:第三个选项是向我们的移动应用程序添加 OAuth 支持。像 Salesforce 这样的 IDP 支持 OAuth 来授权移动应用程序,但我不确定是否所有 IDP 都支持 OAuth 以及为移动应用程序实施 OAuth 和 SAML 的难度。
谁能告诉我在上述情况下哪种方法更可取,或者有没有我没有考虑过的更好的方法?有什么建议吗?
非常感谢!
【问题讨论】:
-
您最终解决了这个问题吗?我想知道你得出了什么结果?
-
你能在哪里解决这个问题?
-
@Mark 我按照安德斯的建议尝试了同样的方法并登陆了stackoverflow.com/questions/42486871/…
标签: mobile oauth single-sign-on saml-2.0 spring-saml