【问题标题】:SSO with ADFS on Mobile在移动设备上使用 ADFS 进行 SSO
【发布时间】:2017-12-15 14:15:54
【问题描述】:

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

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

  • SAML 是构建身份验证系统的必经之路(即使是移动设备)?
  • 我已经看到 ADFS 实现了 Oauth2 端点,这不是更简单的方法吗?
  • 对于干净且安全的实施,信息流会是什么样子?

我错过了什么吗?

提前感谢您的帮助。

【问题讨论】:

  • 我尝试过使用passport-saml,问题是我不知道如何测试它,因为我需要客户端授权测试应用程序(不能是本地的?)。有什么建议吗?
  • 我还应该提供护照配置什么网址?因为它是移动的

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


【解决方案1】:

SAML 不是移动设备的好方法。您需要一个 SAML 客户端堆栈,而用于移动设备的堆栈并不多。

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

本质上它只支持web API

以上链接指向 Azure AD 而非 ADFS 上的项目。

【讨论】:

  • 我就是这么想的。感谢您的确认。
【解决方案2】:

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-10-29
    • 2018-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多