【问题标题】:What is the best SSO solution for a native mobile app which can support multiple IDPs?对于可以支持多个 IDP 的原生移动应用程序来说,最好的 SSO 解决方案是什么?
【发布时间】: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


【解决方案1】:

对于移动应用,我认为 OAuth2 或 OpenID Connect 优于 SAML。它们与移动解决方案配合得很好。

它们还具有用于与身份验证服务器通信的反向通道的概念。这意味着您可以安全地启动设备的默认浏览器进行登录并从该浏览器中的任何 cookie 中受益。一旦用户在浏览器中进行了身份验证,应用程序将通过调用身份验证服务器的反向通道接收令牌。

如果您有仅限 SAML 的 Idps,则可以选择使用身份服务器进行转换,该服务器充当 SAML2 SP 和 OAuth 服务器。

【讨论】:

  • 感谢您的回复。我将研究 OpenID 连接和 OAuth 2.0。
  • 我完全按照您的建议进行了尝试,但最终遇到了两个问题,如果您可以提供帮助 stackoverflow.com/questions/42486871/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-08-02
  • 1970-01-01
  • 1970-01-01
  • 2019-11-19
  • 1970-01-01
  • 2020-08-25
  • 1970-01-01
相关资源
最近更新 更多