首页 > 解决方案 > API Rest上的SAML Authentication,打开认证页面

问题描述

我对 SAML 真的很陌生,我必须建立一个 SAML 身份验证系统。我们正在开发 API 平台和 Angular 7+。

一切正常,API 使用 SAML 向 SSO 进行身份验证,客户端使用 JWT 向 API 进行身份验证。

但问题是,当用户未通过 SSO 身份验证时,如何告诉客户端“将用户重定向或打开弹出窗口”到 SSO 身份验证页面。

我搜索了一些答案,但看起来 SAML 身份验证在 Rest API World 中并不是很有名。

提前致谢。

标签: restapiauthenticationsingle-sign-onsaml

解决方案


我不确定 SAML 是否用于处理 API。据我所知,它旨在与网页一起使用。

您不能只返回 HTTP 401 并将错误处理留给客户端吗?REST 服务不应该将用户重定向到登录页面,因为它是一种资源,而不是视图解析器。

编辑: 正如我所见:

  1. 客户端发送没有 Auth 标头 (JWT) 的 REST 请求
  2. API 以 401 和 body 回复,{"error":"auth required","url":"SSO_http_url"}无需与 SSO 联系
  3. 客户端必须处理错误 - 将用户重定向到 SSO 服务并获取 JWT 令牌
  4. 客户端发送具有有效 Auth 标头 (JWT) 的新请求

推荐阅读