【问题标题】:Authenticating mobile users against SAML IDP针对 SAML IDP 对移动用户进行身份验证
【发布时间】:2014-05-13 05:07:08
【问题描述】:

我正在寻找一种解决方案 - 针对 SAML IDP 对移动应用用户进行身份验证,并且有一些基本查询(我是 SAML、OAuth 的新手 :)) 在这种情况下,流程可能就像移动用户将通过 IDP 进行身份验证,IDP 生成的 SAML 响应被发送到服务提供商(通过移动浏览器 - Webview)。然后,服务提供者将创建一个令牌,移动应用程序将使用该令牌进行后续调用。这种理解正确吗?

另外,移动用户将如何在 IDP 进行身份验证,我的意思是,相应的 IDP 是否应该支持移动应用程序?登录时会在手机上看到 IDP 的登录屏幕吗?

目前,在我的应用程序中,移动(Rest API)用户根据其应用程序在数据库中的凭据进行身份验证。但现在桌面应用程序正在结合 SAML 进行身份验证。因此,需要针对 SAML IDP 对移动用户进行身份验证。

提前致谢!

【问题讨论】:

标签: restful-authentication saml-2.0


【解决方案1】:

是的,你的理解是正确的。为了在移动客户端上使用 SAML IDP,您需要经历与普通客户端相同的过程(AuthnRequest -> SP 和 IDP 之间的响应交换)。整个流程可能如下所示:

  • 您的移动应用程序打开 WebView 访问您的 SP 的公共 URL
  • 您的 SP 通过使用 AuthnRequest 向 SAML IDP 发送重定向来开始使用 IDP 进行身份验证
  • 用户在 IDP 的 UI 中进行身份验证(应该能够在使用移动客户端打开时为移动客户端正确呈现)
  • IDP 通过响应重定向回您的 SP
  • 您的 SP 应用程序处理响应并生成可用于您的 Rest API 的令牌
  • SP 将令牌传回移动应用程序(例如,使用 WebViewClient + onPageFinished + cookie,或调用由 addJavascriptInterface 提供的对象,或您已经使用的任何东西)

与使用 IDP 的通常移动身份验证(例如对 Facebook/Google 使用 OAuth 2)相比,SAML 更加复杂。使用 OAuth 2.0,可以轻松提取授权令牌并使用自定义 URL 方案拦截响应,而无需 Web 部署 (SP) 组件。由于 SAML 不支持类似于 Oauth 中“隐式”的流(出于安全原因),并且由于 SAML 响应的处理要复杂得多(由于 XML 签名、XML 加密等),因此这种方法在使用时不可行SAML。

【讨论】:

  • 您好 vschafer,非常感谢您的回复。在使用 OAuth 2.0 的通常移动身份验证中,流程到底如何? OAuth 有什么方法可以简单地使用 SAML 实现上述流程?
  • 不,遗憾的是 OAuth 2.0 无法帮助您简化 SAML 2.0 WebSSO。您可以在 tools.ietf.org/html/rfc6749#section-4.2 的规范中找到有关 OAuth 2.0 支持的隐式授权的更多信息
  • Vschafer,您如何从 SAML 续订用户会话,或者 SP 应该担心吗?
  • 嗨@VladimírSchäfer 当用户更改他/她的密码时会发生什么?令牌仍然有效吗?
  • 嗨@VladimírSchäfer:是否有任何教程或示例说明如何为 Cordova 移动应用程序完成此操作
猜你喜欢
  • 2021-10-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-24
  • 2018-07-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多