【问题标题】:Pass SAML response from a Web App to the REST API for authentication?将 SAML 响应从 Web 应用程序传递到 REST API 以进行身份​​验证?
【发布时间】:2019-02-18 05:50:37
【问题描述】:

我们有一个使用 REST API 的 Web 应用程序。 REST API 基于 Loopback 并使用其内置的基于令牌的身份验证。对于 Web 应用,我们通过 HTTPS 使用基于表单的身份验证,因此用户必须输入他的用户名和密码,然后我们使用这些用户名和密码通过POST /users/login 端点从 REST API 获取访问令牌。

我们的一位客户要求我们通过 SAML 2.0 和 AD FS 支持单点登录 (SSO) 身份验证。

我们将 Web 应用程序配置为服务提供者(AD FS 中的依赖方)并设法为其支持 SSO。 changeling 部分是 Web App 和 REST API 之间的身份验证。现在的想法是将 Web App 和 REST API 配置为同一个依赖方,并将新的POST /users/saml-login 端点添加到 REST API,因此 Web App 可以向该端点发送 SAML 响应并获得基于访问令牌在 SAML 响应中指定的声明上。其他一切都应该像以前一样工作。这是我想象的流程:

  1. Web 应用程序生成 SAML 请求并将用户重定向到 IdP 登录页面
  2. 成功登录后,用户将通过 SAML 响应重定向回 Web 应用程序
  3. Web 应用充当代理并将 SAML 响应重定向到对其进行验证的 REST API 端点 (POST /users/saml-login)
  4. 如果 SAML 响应有效,API 会根据声明返回访问令牌
  5. Web 应用程序使用访问令牌与 REST API 进行进一步的通信,与以前一样

问题来了:以这种方式实施基于 SAML 的 SSO 是否可行?您是否发现此方法存在任何问题或安全注意事项?有其他选择吗?

我已经阅读了很多关于如何同时使用 SAML 和 REST API 的网络文章和 StackOverflow 上的问题:

他们都没有真正帮助我确认或拒绝上述想法。

【问题讨论】:

  • 我也有类似的情况。您能否让我们知道它是否对您长期有效?
  • 嗨@VishalPatel,是的,它对我有用。我可以看到你一年多前发表了评论。你呢。它也对你有用吗?

标签: rest authentication saml adfs loopback


【解决方案1】:

这听起来是一种合理的方法。我想不出任何安全问题。 您只是在应用程序内部重新发布 SAML 响应以进行处理。只要您随后在 REST API 中对 SAML 响应和断言执行各种安全检查,就不会有任何问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-09-05
    • 2013-12-04
    • 2017-03-03
    • 2014-04-23
    • 1970-01-01
    • 2017-05-06
    • 2014-02-25
    相关资源
    最近更新 更多