【问题标题】:Devise Saml Authenticatable Gem Error - AuthnRequest with AuthnContexts is not supported设计 Saml Authenticatable Gem 错误 - 不支持带有 AuthnContexts 的 AuthnRequest
【发布时间】:2019-04-03 08:54:03
【问题描述】:

我正在使用devise_saml_authenticatable 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 可能的组合,但似乎没有任何效果。

如果您能提供任何见解来解决错误,那将非常有帮助。

谢谢!

【问题讨论】:

    标签: ruby-on-rails single-sign-on saml-2.0 shibboleth


    【解决方案1】:

    这是来自 IdP 的响应者代码,它们当前配置为支持在 SAML AuthnRequest 中指定 AuthnContext 参数的服务提供商。

    您在config/initializers/devise.rb 文件中指定了settings.authn_context = "" 吗?还是您指定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+ 中,这可以通过在默认依赖方或 SP 的特定 RelyingPartyOverride 上指定 p:disallowedFeatures-ref="SAML2.SSO.FEATURE_AUTHNCONTEXT" 来完成。您可能会询问 IdP 管理员并询问他们是否在 SAML2.SSO bean 上指定了该属性?

    【讨论】:

    • 感谢@Kellen 的回复。我试过设置settings.authn_context = "",但没有运气。
    • 你收到同样的信息了吗?这是 IDP 生成的消息。如果您可以从 IDP 管理员那里获得,看看 idp-process.log 中弹出的内容,您可能会获得一些运气。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-02-20
    • 1970-01-01
    • 1970-01-01
    • 2015-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多