首页 > 解决方案 > “saml_idp”gem 设置失败

问题描述

我试图在我的应用程序中使用“gem saml_idp”,但我失败了。

我正在关注本教程https://spin.atomicobject.com/2017/05/31/rails-saml-identity-provider/但每次我在http://localhost发出 GET 请求时,我都会从服务器收到以下消息:3000/saml/auth

Processing by SamlIdpController#new as HTML
Unable to find service provider for issuer 
Breadcrumb Controller halted via callback meta_data filter:Symbol has been dropped for having an invalid data type
Filter chain halted as :validate_saml_request rendered or redirected
Completed 403 Forbidden in 144ms (ActiveRecord: 0.0ms)

Started GET "/__meta_request/92c4c9d5-244f-4094-92e7-c7fed56de976.json" for ::1 at 2019-12-04 15:08:33 -0200

有人知道这里发生了什么吗?路线是:

get '/saml/auth' => 'saml_idp#new'
post '/saml/auth' => 'saml_idp#create'

标签: ruby-on-railsrubygemssaml-2.0

解决方案


该教程描述了 SP 启动的 SSO 流所需的配置。它并不完全适用于您,因为您正在创建一个 idP 启动的流程。您可能会看到“无法找到颁发者的服务提供商”错误,因为您正在访问的路由需要存在 AuthnRequest(通常由 SP 生成和发送,以请求 idP 上的用户登录...然后它将使用包含断言的 SAMLResponse 响应 SP)。发生这种情况是因为您正在扩展 gem 中的 idPController。除非您希望响应来自 SP 的 AuthnRequest,否则您不需要这样做。

这颗宝石可能对您仍然有用。您仍然应该能够调用 SamlIdp::SamlResponse.new 从 idP 启动的流构建 SAMLResponse。确切的配置取决于您必须如何与您的 SP 通信,因此很难在此处提供指导。


推荐阅读