ruby-on-rails - “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'
解决方案
该教程描述了 SP 启动的 SSO 流所需的配置。它并不完全适用于您,因为您正在创建一个 idP 启动的流程。您可能会看到“无法找到颁发者的服务提供商”错误,因为您正在访问的路由需要存在 AuthnRequest(通常由 SP 生成和发送,以请求 idP 上的用户登录...然后它将使用包含断言的 SAMLResponse 响应 SP)。发生这种情况是因为您正在扩展 gem 中的 idPController。除非您希望响应来自 SP 的 AuthnRequest,否则您不需要这样做。
这颗宝石可能对您仍然有用。您仍然应该能够调用 SamlIdp::SamlResponse.new 从 idP 启动的流构建 SAMLResponse。确切的配置取决于您必须如何与您的 SP 通信,因此很难在此处提供指导。
推荐阅读
- python - 安装 GraphLab 创建会使我的 Jupyter Notebook 从 Python 3.6 降级到 Python 2.7
- hyperledger-fabric - 现实世界中的超级账本——它如何扩展?
- php - 交叉引用表并将结果插入另一个表 SQL
- python - 对字典的python列表中的值进行排序
- ag-grid - 具有嵌套数组的 ag-grid 数据源
- android - AppCompatPreferenceActivity 在 Android 4.4 左右奇怪的填充
- django - Django - 获取用户的名字和姓氏
- xml - 从基于 xml 的文件中提取 N 个字符串
- javascript - 使用 Pixi.js 优化提示的简单游戏
- sql - SQL Server:从父表中选择,其中 id 不存在于任一子表中