如何从头开始创建使用 API 进行身份验证的 SAML IDP

问题描述 投票:0回答:1

现在我正在参与一个项目,我们希望使用 Node 创建 SAML IDP。

问题: 我们有一个实现 API REST 的系统,该 API 对用户进行身份验证,其响应包含经过身份验证的用户的信息……就像 API 响应一样(与 SAML 无关)。 重点是在 SAML IDP 系统中聚合来自 API 的响应,其中一些 SAML 请求 (XML) 来自服务提供商。 SAML IDP 系统在内部查询 API,获取身份验证信息,并以 SAML 响应 (XML) 的形式响应服务提供商。 我一直在寻找像 Okta、OneLogin 这样的简单解决方案来解决这个问题,但问题是这些公司对用户进行身份验证,而在我的系统中进行身份验证的是 API,我无法更改这一点,因为该项目就是这样定义的。

我的问题是:

  • 您是否了解提供 SAML 配置但使用外部 API 进行身份验证的系统?

  • 我们正在使用 samlify Node Library 来解决这个问题,您有关于这个库的性能信息吗?

  • 您知道如何轻松解决这个问题吗?

  • 我们计划使用 lambda 进行部署,这对于此类问题来说是一个好的做法吗?

我不是 SAML 方面的专家,因此如果您有有关创建 SAML IDP 的文档或任何帮助都会很有用。

感谢您的阅读,对我的英语感到抱歉。

node.js authentication saml service-provider idp
1个回答
1
投票

您是否了解提供 SAML 配置但使用外部 API 进行身份验证的系统?

首先,您必须记住 SAML 是一个协议;这是服务提供商可以选择与身份提供商交谈的语言。验证用户凭证和验证用户身份的任务完全独立于协议。 SP 可以选择向 IdP 发送 SAML 身份验证请求,而 IdP 可以根据自己认为合适的方式自由地对用户进行身份验证。两者通常彼此无关。

其次,有大量 IdP 允许您:

  1. 打开 SAML2 功能,以便 IdP 可以使用 SAML2 协议。
  2. 使用自定义 REST API 验证用户凭据。 IdP 将联系您的 API 来验证从用户处收到的凭据,并最终生成返回给 SP 的 SAML2 响应。

此类 IdP 的示例为:https://github.com/apereo/cas。它允许您将其充当 SAML2 IdP 并支持 REST API 用于用户身份验证。

虽然它可能不是 100% 适合您的用例 OOTB,但它是一个很好的起点。你永远不应该从头开始并重新发明轮子。 “创建一个从头开始使用 API 进行身份验证的 SAML IDP”通常是要求终生惩罚的好方法。

PS 您的其他问题可能应该作为单独的帖子/问题发布。

© www.soinside.com 2019 - 2024. All rights reserved.