当前位置: 首页 > 知识库问答 >
问题:

对于可以支持多个国内流离失所者的本地移动应用程序,什么是最好的单点登录解决方案?

端木弘方
2023-03-14

在我们目前的情况下,我们基于web的应用程序(SP)已经使用Spring Security SAML扩展集成了SSO。我们的产品是SaaS,我们有不同的客户,他们可能在其终端配置了不同的IDP(身份提供商)。现在,我们正试图为我们的移动应用程序提供SSO支持。

经过一番探索,我发现了3种可能的解决方案,我可以实施:

1)使用Web视图:当为客户端启用SAML时,移动应用程序将嵌入Web视图,该视图在打开移动应用程序时呈现IDP登录页面。SP端的URL将被命中,这将触发SAML重定向回IDP。因此webview将执行SP启动的登录流程。但是,由于webview不使用cookie空间,用户必须登录到应用程序,每次应用程序被杀死或会话过期。另外,由于webview不是浏览器,我读到它可能无法在HTTP重定向期间处理边缘情况。

2)使用本地SSO应用程序:国内流离失所者通常提供本地SSO应用程序,移动应用程序可以登录国内流离失所者。移动应用程序可以通过相应IDP提供的SDK与IDP的本地应用程序交互。但是,由于我们的移动应用程序应该能够支持许多国内流离失所者的SSO,如果我们遵循这种方法,我们可能必须为每个国内流离失所者集成多个本地SSO应用程序。我不确定这是否符合我们的设想

3)使用OAuth和SAML:第三个选项是为我们的移动应用添加OAuth支持。像Salesforce这样的国内流离失所者支持OAuth授权移动应用,但我不确定是否所有国内流离失所者都支持OAuth,以及为移动应用实现OAuth和SAML有多难。

有人能告诉我,在上述情况下,哪种方法更可取,还是有更好的方法?有什么建议吗?

非常感谢!

共有1个答案

扈阳辉
2023-03-14

对于移动应用程序,我认为OAuth2或OpenID Connect比SAML更受欢迎。他们非常适合移动解决方案。

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

如果只有SAML IDP,可以选择使用一个身份服务器来进行翻译,该服务器充当SAML2 SP和OAuth服务器。

 类似资料:
  • 我试图在使用OAuth2.0的移动应用程序的Web API中实现委托授权。根据规范,隐式授权流不支持刷新令牌,这意味着一旦某个访问令牌在特定时间内被授予,用户必须在令牌到期或被撤销时再次授予该应用程序的权限。

  • 是否有标准或经过验证的模型以sso方式对同一设备上的各种应用程序进行身份验证? 假设设备上有两个应用程序,它们需要相同的登录/密码凭据才能对同一系统进行身份验证。 我们希望能够: -启动APP1 -登录APP1 -启动APP2。在app2中,用户已经通过身份验证。 我们认为是一个“pop”模型,其中第一个进行登录的应用程序共享身份验证的信息(例如,令牌)。第二个应用程序,获取(弹出)令牌来执行SS

  • 我有一个客户端-服务器应用程序,两者都通过TCP进行通信。我们正在计划重用tcp内置的保持活动机制,以确保客户端和服务器都知道对方还活着。 几个问题: null

  • 我正在使用Sping、MVC和Spring Security性,但在我的脑海中有一些困惑。对于Spring Security,登录表单的操作是‘{application context}/j_spring_security_check',它隐藏了身份验证的整个过程。在Spring MVC中,我可以很容易地找出控制器对应的特定URL。显然,没有控制器来处理j_spring_security_chec

  • 我正在使用Ruby on Rails开发一个SaaS应用程序。每个用户必须订阅一个特定的计划才能开始使用该应用程序。这一步已经使用Stripe完成 问题是,如果自动支付订阅失败(他更改了信用卡等),我不知道如何阻止该用户使用我的应用程序。我正在考虑使用用户模型中的一列将此用户标记为非活动用户,并阻止其登录。但它并没有像我预期的那样工作,因为我希望这个用户能够登录,但他必须更新订阅才能继续。 顺便说