我应该如何将 SAML 登录与 REST API + SPA 应用程序一起使用?

Jie*_*eng 6 rest saml

我想将 SAML 登录用于具有 REST API 的单个 Web 应用程序。我该怎么做?通常,使用 OAuth,让我们以 Google/Firebase 为例:

  • SPA 调用 Google 进行登录。Google 返回 Google ID 令牌
  • SPA 可以使用 Google ID 令牌调用服务器,该服务器可以与 Google 进行验证并返回访问令牌以供应用程序使用

首先,这是正确的还是到目前为止我做错了什么?


但是对于 SAML,据我所知,它的用户被重定向到 SAML IDP,然后 SAML IDP 将用户重定向到服务器断言 URL。因为有这个重定向,我如何在 REST 的上下文中使用它?我不熟悉 SAML,但我没有看到令牌。服务器只是获得用户信息的“断言”?

小智 6

以下是应用程序使用 SAML 进行身份验证时发生的事件序列:

  1. 服务器应使用 SAML IDP 的 URL 向客户端发送响应。
  2. 客户端应用程序将浏览器重定向到 SAML IDP (1)。
  3. 身份验证成功后,SAML 服务器将带有重定向的响应发送回客户端。浏览器会自动将 HTML 表单 SAML 服务器发布到您的服务器。
  4. 验证 SAML 断言并成功授权后(您可以使用用户信息或其他属性来授权用户使用您的应用程序),您的服务器应该生成一个令牌,现在可供客户端应用程序使用。

这是一个基本场景。

请参阅此处的 spirng-saml 项目,您可以尝试使用示例 Web 应用程序。 https://projects.spring.io/spring-security-saml