什么是最适合支持多个IDP的本地移动应用程序的SSO解决方案?

15
在我们目前的情况下,我们的基于Web的应用程序(SP)已经使用Spring Security SAML扩展集成了SSO。我们的产品是一种SaaS,我们有不同的客户端可能在其端配置了不同的IDP(身份提供者)。现在我们正试图为我们的移动应用程序提供SSO支持。
经过一些搜索,我找到了3个可能可以实现的解决方案:
1) 使用Web View:当为客户启用SAML时,移动应用程序将嵌入Web View,该Web View会在打开移动应用程序时呈现IDP登录页面。 SP端上的URL将被访问,这将触发一个SAML重定向回IDP。因此,Web View将执行SP-initiated登录流程。但由于Web View没有使用Cookie空间,用户必须每次重新登录应用程序或会话过期时重新登录。另外,由于Web View不是浏览器,我读到它可能无法处理HTTP重定向期间的边缘情况。
2) 使用本地SSO应用程序:IDP通常提供本地SSO应用程序,移动应用程序可以登录IDP。移动应用程序可以通过各自IDP提供的SDK与IDP的本地应用程序进行交互。但由于我们的移动应用程序应该能够支持多个IDP的SSO,如果我们采用这种方法,我们可能需要为每个IDP集成多个本地SSO应用程序。我不确定在我们的情况下是否可行。
3) 使用OAuth和SAML:第三个选项是向我们的移动应用程序添加OAuth支持。像Salesforce这样的IDP支持OAuth来授权移动应用程序,但我不确定所有IDP是否都支持OAuth以及实现OAuth和SAML对于移动应用程序有多困难。
请问有谁能告诉我在上述情况下哪种方法是可取的,或者是否有任何更好的方法我没有考虑?有什么建议吗?
非常感谢!

你最终解决了这个问题吗?我想知道你得出了什么结果? - Mark
你能解决这个问题吗? - swapab
@Mark 我尝试了Anders建议的相同方法,并着陆于https://dev59.com/FFgQ5IYBdhLWcg3wnVR3。 - Kartik Domadiya
1个回答

6

对于移动应用程序而言,我认为OAuth2或OpenID Connect优于SAML。它们在移动解决方案中表现出色。

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

如果您只有SAML Idps选项,则可以使用标识服务器进行翻译,该服务器充当SAML2 SP和OAuth服务器。


谢谢您的回复。我会研究OpenID Connect和OAuth 2.0。 - abhilash
我尝试了你建议的方法,但最终遇到了两个问题,如果你能帮忙看一下这个链接:https://dev59.com/FFgQ5IYBdhLWcg3wnVR3 - Kartik Domadiya

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接