你能否推荐一个用于测试的 SAML 2.0 身份提供者?

36

我正在实现一个 SAML 2.0 服务提供者,并需要安装一个 SAML 2.0 身份提供者进行测试。因此,理想情况下,身份提供者应该是免费的(或有一个试用期)并且易于设置和配置。

我正在寻找基本的单点登录和单点注销功能。

我尝试了 Sun Opensso Enterprise。价格很合适,但是配置过程非常困难。此外,它的错误消息和日志记录留下了很多问题,我经常要解决一个归结为配置不正确或默认设置不直观的问题。


1
你打算对安装的 IdP 测试自己开发的 SP 吗? - mavis
https://medium.com/the-new-control-plane/i-need-a-saml-idp-to-test-now-477761595b60 - rbrayb
11个回答

22

你在配置OpenSSO时遇到了什么问题?我觉得OpenSSO的设置是最简单的!

以下是我关于基本IDP设置的笔记-希望能帮助你轻松上手。

迈克尔


我发现最好(即最轻松)的方法是...
  1. 使用Glassfish - 这是OpenSSO的一个受支持的容器 - 使用开发者配置文件以使您的生活更加轻松 - 使用下载页面上记录的快速设置步骤
  2. 按照基本说明部署OpenSSO(解压缩zip文件 - 将war文件部署到默认域)

我使用以下步骤进行设置(我使用OpenSSO构建7):

  • 在“自定义配置”下,单击“创建新配置”。
  • 在密码和确认字段中键入密码“adminadmin”。单击下一步。
  • 在服务器设置中,保留默认值(或根据需要进行编辑),然后选择下一步。
  • 在配置数据存储中,保留默认值(或根据需要进行编辑),然后选择下一步。
  • 在用户数据存储中,选择“OpenSSO用户数据存储”。单击下一步。
  • 在站点配置中,选择否(此安装将不使用负载平衡器)。单击下一步。
  • 在默认代理用户中,输入admin123作为密码和确认密码。单击下一步。
  • 单击“创建配置”。
  • 单击“继续登录”。
  • 使用密码“adminadmin”作为“amadmin”登录。

上述说明基于http://developers.sun.com/identity/reference/techart/opensso-glassfish.html

现在,您已经掌握了基础知识。在 / 下创建一个名为users的子域,并在其中创建一个或两个帐户。

现在准备好你的SP元数据。起初不要在元数据中放太多内容 - 保持简单。

在GUI的默认页面中,选择创建托管IDP。这是一个相当基本的工作流程。您应该指定您的/users领域,并选择使用测试密钥别名进行签名。您创建的信任圈可以叫做任何名称。

完成工作流程后,系统会询问您是否要导入SP的元数据 - 选择“是”,并选择从您准备好的元数据文件中导入。

此时,您应该已经准备妥当了。

接下来,您需要获取IDP元数据。有几种方法可以做到这一点。您可以使用 "http://servername:8080/opensso/ssoadm.jsp?cmd=export-entity" 或 "http://servername:8080/opensso/saml2/jsp/exportmetadata.jsp?realm=/users"。

... 这就是设置的全部内容。

如果在与OpenSSO互操作时遇到问题,您可以查看OpenSSO数据目录(默认为~/opensso)。在其中的子目录中有调试和日志信息。您可以与OpenSSO Wiki交叉参考这些信息,该Wiki提供了一些非常好的故障排除信息。


我认为到目前为止,我在使用OpenSSO时遇到的最大问题要么是接受我的SP元数据,要么是在身份验证失败时无法追踪其根本原因。对于第一个问题,OpenSSO抱怨我的元数据中有一些它不希望出现的元素。例如SingleLogoutService和其他组织元数据。我将检查~/opensso中的日志以及维基百科。谢谢。 - Steve Reed
嗨,史蒂夫,如果在~/opensso下找不到足够的信息,您应该能够转到http://servername:8080/amserver/Debug.jsp来提高调试级别。我也遇到了很多元数据问题 - 这就是为什么我建议从(非常)简单的开始。一旦我理解了OpenSSO中元数据和配置应该是什么样子,事情就变得更加清晰了。 - Michael van der Westhuizen
1
你在OpenSSO邮件列表上寻求过帮助吗,Steve?订阅方式:
  1. 访问https://www.dev.java.net/servlets/Join并注册java.net账户。
  2. 访问https://opensso.dev.java.net/servlets/ProjectMembershipRequest并请求在OpenSSO上拥有“观察员”角色。
  3. 访问https://opensso.dev.java.net/servlets/ProjectMailingListList并订阅“users@opensso.dev.java.net”。
- metadaddy
10
OpenSSO项目已更名为OpenAM。由于此页面在我最近进行的几个Google搜索中相对较高,我想我会写下这个说明。 - Summers Pittman
1
OpenSSO已经过时,但是上述步骤同样适用于OpenAM,没有任何问题(我只需要使用第二个链接来导出元数据,第一个链接无法工作)。感谢您提供的优秀教程! - xMort

13

我认为这让我非常接近了,如果我能弄清楚在OpenIdP中用什么实体ID,那就好了。 - tggagne
或者如果我能够解决最终的断言并避免出现“无法将主题映射到Salesforce.com用户”的情况。 - tggagne
或者您可以使用Centrify IDP进行测试,注册链接:https://www.centrify.com/cloud/cloud-service-registration.asp;获取免费的租户,然后创建几个用户,添加一个通用应用程序(https://cloud.centrify.com/vfslow/lib/docs//appref/wwhelp/wwhimpl/js/html/wwhelp.htm#href=saas_appref_generic_SAML.html),将其与您的SP绑定并进行测试。 - Sumana Mehta
OpenIdP不再可用:“重要提示 OpenIdP已关闭。无法再使用它来测试您的SAML服务提供商。如果您曾经为此目的使用它,您需要寻找替代方案。” - Rob Audenaerde

6

使用 samlidp.io 进行测试非常完美且免费,您只需添加自定义服务提供商元数据即可轻松设置自己的 IdP,一切都很简单,就这样!


5
@MohammadAkbari 我认为这个回答没有任何问题。OP要求推荐,sitya提供了一个。 - xverges
3
链接似乎已经离线(2021年12月3日)。 - crokusek

2
你可以试试 LemonLDAP::NG (http://lemonldap-ng.org)。它已经被打包到大多数Linux发行版中,所以安装和设置都很容易。

2


2
你可以将 Auth0 配置为 SAML IdP。设置过程非常简单,并且有免费的套餐可用。

0

我一直在苦恼如何测试 SAML2 集成,使用了 OpenSSO。自从我发现了http://okta.com/,用于测试应用程序的 OKTA 后,我就没有再回头过。它非常完美,易于使用,您还可以创建不同的用户并将定制属性发送回 SP。

OpenSSO 不好用。首先,您需要输入那些毫无意义的验证码。SSOCircle 不允许您发送自定义属性,也不允许您使用 SHA-256 加密,据我所知。OpenSSO 除了支付他们的调试功能(可能质量很差)之外,不会提供有关错误消息的任何帮助。


0

0

看一下这个答案

简而言之,samling是一个无服务器的SAML IdP,用于测试任何SAML SP端点。它支持AuthnRequest和LogoutRequest。它仅在浏览器中运行,模拟从SAML IdP返回的SAML响应 - 没有注册,没有服务器,只有一个浏览器,允许您控制响应的许多方面 - 从成功到各种失败。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接