在移动设备上使用ADFS进行SSO

时间:2017-12-15 14:15:54

标签: javascript node.js ionic-framework saml-2.0 adfs3.0

我们有一个基于Ionic 3的现有应用程序,它与sails.js API进行通信。 今天,我们需要根据客户的ADFS为客户端添加身份验证系统。 显然,这个客户端已经设置了具有多个Web应用程序的单点登录,他们使用SAML协议。

我对如何实现这样的事情感到很困惑,这是我的问题:

  • SAML是构建身份验证系统的方法吗(即使是移动设备)?
  • 我见过ADFS实现了Oauth2端点,这不是一种更简单的方法吗?
  • 干净安全的实施信息流会是什么样的?

我错过了什么吗?

提前感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

大多数SAML配置文件都使用浏览器。具有HTTP_POST绑定的Web浏览器SSO(WBSSO)等配置文件。在这种情况下的流程是:

  • 用户导航到您的应用
  • 您的应用将其浏览器重定向到客户端的SAML端点
  • SAML端点决定用户是否已有会话或需要登录。
  • 客户端的SAML端点通过POST将用户浏览器重定向到您的应用,其中包含属性的正文
  • 您的应用解压缩SAMLResponse参数以获取SAML属性,并根据这些属性做出授权决策。也许它们包含电子邮件地址,姓名等。根据您的应用程序,根据该事件创建会话的时间长短。

在上文中,您的应用充当SAML SP,而客户端的SAML端点充当IdP。

对于AD OAuth,您通常必须将您的应用注册为租户应用,以允许另一端信任您。因此,您必须向他们提供您通过浏览器发送属性的URL。 Microsoft提供了一系列用于在gdal实施AD SSO的项目。

答案 1 :(得分:0)

SAML不适合移动设备。您需要一个SAML客户端侧堆栈,移动设备并不多。

OpenID Connect / OAuth是一种更好的方法,但ADFS 3.0对此的支持非常有限。

基本上它只支持3.11 Program Instrumentation Options

上面的链接指向Azure AD上的项目而不是ADFS。