【问题标题】:How do I set up a local test SAML2.0 Identity Provider?如何设置本地测试 SAML2.0 身份提供程序?
【发布时间】:2014-09-06 21:01:48
【问题描述】:

作为服务提供商 (SP),我编写了一个 node.js 服务来处理 SAML2.0 断言。我现在想测试这段代码。

我知道我可以使用各种基于云的服务来充当我的测试身份提供者 (IdP),但是这些需要公开我的新的、未经测试的 SP 端点。

目前我只是将一个手工制作的 SAML2.0 断言发布到我的 SP 端点,但我想要一个更真实的测试,尤其是测试 SP 发起的 SSO 的能力。

因此,我认为我需要在我的开发机器上运行一个本地 IdP,这样我就可以暂时将所有测试保持在本地和沙盒中。

你能为我推荐一个前进的道路吗?

【问题讨论】:

    标签: node.js single-sign-on saml-2.0


    【解决方案1】:

    实际上,您无需发布端点即可使用公共 IDP。

    SP 和 IDP 之间的所有通信要么通过您的浏览器完成(当然需要能够访问您的本地 SP 和公共 IDP),或者您的 SP 调用 IDP(当使用 HTTP-Artifact 配置文件时)。但是在通常情况下IDP从不直接调用SP,这意味着SP可以在本地运行而无需公开访问的URL。

    可以以这种方式配置的公共 IDP 之一是SSO Circle

    如果您仍想在本地运行 IDP,Shibboleth 可能是您最简单的选择。

    【讨论】:

    • 感谢您的重要观察,即我的 SP 端点不需要公开。按照建议,我将使用 Shibboleth。我决定试试TestShib
    【解决方案2】:

    有一个开放的 Idp 可以在https://stubidp.sustainsys.com 上免费回复任何可用的 AuthnRequest。它将允许您以简单的形式设置您想要的主题 NameId,然后回复给 SP。如果您想设置自己的实例,可以在https://github.com/Sustainsys/Saml2 获得 stubidp 的源代码。

    披露声明:我是 stubidp 的作者,但我不会从任何使用它的人身上赚钱,它完全作为免费服务提供。

    【讨论】:

    • 这已被证明非常有用且易于使用,比在云中设置测试 idp 或在本地安装软件要容易得多。感谢您提供。
    • 是否可以在<ds:Signature> 元素内的<saml2:Assertion 元素内提供您的公钥数据?这是我用来验证 SAMLResponse 的 saml20 nodejs 模块所期望的结构。谢谢。
    【解决方案3】:

    同意 Shibboleth - 其他人是 SimpleSAMLphp 和(如果您有 Windows Server)那么可能是 ADFS。

    如果您走云路线,Azure Active Directory 是另一种选择 - 尽管它目前仅支持 SP Initiated。

    【讨论】:

      【解决方案4】:

      另一个选项是https://github.com/mcguinness/saml-idp。本地测试设置简单快捷(它是一个节点服务器)。我成功地使用它使用 cypress 实现了一些完整的端到端 SAML SSO 测试。

      我们有一个 .net 核心应用程序,如果在开发环境中运行,我基本上只是在启动时运行 node server.js。我将节点服务器的输出重定向到我们的 .net 核心 Web 应用程序的输出,因此我们可以在我们的应用程序日志旁边看到 SAML 请求/响应。效果很好。

      【讨论】:

        猜你喜欢
        • 2020-08-27
        • 2012-05-31
        • 2013-08-21
        • 1970-01-01
        • 2015-09-14
        • 1970-01-01
        • 1970-01-01
        • 2015-11-21
        • 2011-04-10
        相关资源
        最近更新 更多