如何检查 Rails 项目中使用的是哪个 SAML 版本?

How to check which SAML version is being used in Rails Project?

这个问题的答案可能很简单,但我找不到。在我的 Gemfile.lock 文件中显示 0.7.2,即 gem 版本。但是如何知道它是 SAML 2.0 还是 1.1,以便使用不同技术堆栈的其他团队也可以遵循相同的版本。

Gem用于实现SAML,ruby-saml.

不确定 Rails 项目是否具有此功能来判断它是否实现了 SAML2.0 或 SAML1.1,但是可以通过元数据文件轻松检查 SAML 版本。

对于 SAML2.0:

<md:EntityDescriptor xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata" .../>

对于 SAML1.1:

...
<IDPSSODescriptor protocolSupportEnumeration="urn:mace:shibboleth:1.0
urn:oasis:names:tc:SAML:1.1:protocol">
...

此外,如果 SAML-Rails 项目支持 SP 发起的 web-SSO、通过工件参考的工件解析协议和单点注销协议,那么它是 SAML2.0,因为 SAML 以前的版本不支持这些功能。