restful-authentication - 针对 SAML IDP 对移动用户进行身份验证

标签 restful-authentication saml-2.0

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

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

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

提前致谢!

最佳答案

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

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

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

    关于restful-authentication - 针对 SAML IDP 对移动用户进行身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23623200/

    相关文章:

    authentication - RESTful HTTP : Showing different representations to two users on the same URI

    ruby-on-rails - 我究竟如何在 rails 3 中安装 restful 身份验证插件?

    asp.net - 以编程方式完成 ADFS 登录

    azure - 我的 Azure AD - SAML 2.0 配置有问题

    azure - CAS azure saml2 即时身份验证问题太旧或将来

    angularjs - 处理 AJAX 请求上的 SAML 重定向

    python - 结合 Flask-reSTLess、Flask-security 和常规 Python 请求

    java - 如何在 Java 中使用 RESTful Web 服务获取远程/客户端 IP 地址?

    c# - ADFS 返回注销响应,状态代码为 "urn:oasis:names:tc:SAML:2.0:status:Requester"

    python - 在 Flask 中保护 REST API