ruby-on-rails - 设计 Saml Authenticatable Gem 错误 - 不支持带有 AuthnContexts 的 AuthnRequest
问题描述
我正在使用devise_saml_authenticable gem 使 Ruby on Rails 应用程序充当服务提供者 (SP)以允许用户使用 SAML SSO 进行身份验证。
Idp是一个 Shibboleth 解决方案,用作urn:oasis:names:tc:SAML:2.0:ac:classes:Password
身份验证上下文。
但是,我遇到以下错误:
<Status>
<StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:Responder">
<StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:RequestUnsupported" />
</StatusCode>
<StatusMessage> The AuthnRequest with AuthnContexts is not supported!
</StatusMessage>
</Status>
我尝试了各种authn_context可能的组合,但似乎没有任何效果。
如果您可以提供任何见解来解决错误,那将非常有帮助。
谢谢!
解决方案
这是来自 IdP 的响应程序代码,它们当前配置为不支持服务提供商在 SAML AuthnRequest 中指定 AuthnContext 参数。
你在文件中settings.authn_context = ""
指定了吗?config/initializers/devise.rb
还是您指定urn:oasis:names:tc:SAML:2.0:ac:classes:Password
.
说 Shibboleth 使用 AuthnContext 是一种严重的夸大其词。Shibboleth 支持许多上下文类,包括用于多因素身份验证等自定义定义的类。urn:oasis:names:tc:SAML:2.0:ac:classes:Password
只是 Shibboleth 支持的众多功能之一。IdP 管理员启用了哪些 Authn 流是另一回事。也许这是他们配置的唯一流程,因此是默认流程。
我会尝试发送带有空 AuthnContext 的 AuthnRequest,因为看起来这个特定的 IdP 已配置为禁用 SP 指定它的能力。
在 Shib IdP 3+ 中,这可以通过p:disallowedFeatures-ref="SAML2.SSO.FEATURE_AUTHNCONTEXT"
为您的 SP 指定默认依赖方或特定的 RelyingPartyOverride 来完成。您可能会询问 IdP 管理员并询问他们是否在SAML2.SSO
bean 上指定了该属性?
推荐阅读
- asp.net-mvc - 是否可以使用客户端凭证授予类型来验证将由 SailPoint(IAM) 使用的 WEB API
- ios - 基于子视图控制器的动态大小视图
- artificial-intelligence - 如何让敌人在 2D 平台游戏 Godot 中跟随我
- regex - 逗号分隔的前缀列表,里面有逗号
- python - 如何使用 Selenium 和 Python 抓取和计算星级?
- google-sheets - =Google 表格中的 LEN 函数无法正常工作
- java - Gradle 无法解析 org.springframework.boot:spring-boot-dependencies:
- java - 为什么java中的main方法必须是(String.[]args)?
- machine-learning - 有没有办法测量图像的哪些部分对分类器来说是困难的?
- vue.js - 如何实现可重用的 vuetify 对话框