根据SAML IDP对移动用户进行身份验证

nsh*_*eta 16 restful-authentication saml-2.0

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

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

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

提前致谢!

Vla*_*fer 33

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

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

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