我在Rails(3.2.1)中有一个路由问题。
我正在使用omniauth saml进行身份验证(https://github.com/PracticallyGreen/omniauth-saml). 医生说:
“用于简化IdP中SAML SP配置的服务提供商元数据可以从http://example.com/auth/saml/metadata.将此URL发送给IdP的管理员。"
当我转到我的服务器时。com/auth/saml/metadata,我得到一个路由错误(没有路由匹配)。路线中唯一相关的路线。rb为/auth/:提供程序/回调。我需要添加什么路径才能访问元数据URL?
身份验证本身正在按预期工作。我只是元数据有问题。
非常感谢!
您可以通过向路由添加以下匹配器来生成元数据路由。rb*:
devise_scope :user do
match "/users/auth/:action/metadata",
constraints: { action: /saml/ },
to: "omniauth_callbacks",
as: :user_omniauth_metadata,
via: [:get, :post]
end
导致以下路由(sans"(. form)"):
user_omniauth_metadata GET|POST /users/auth/:action/metadata omniauth_callbacks#(?-mix:saml)
这是对标准omniauth路由的补充:
user_omniauth_authorize GET|POST /users/auth/:provider omniauth_callbacks#passthru {:provider=>/saml/}
user_omniauth_callback GET|POST /users/auth/:action/callback omniauth_callbacks#(?-mix:saml)
这是由于:
devise_for :users, controllers: { omniauth_callbacks: "omniauth_callbacks" }
注意:我在:user范围内使用designe执行此操作,但在范围之外,它看起来更像:
match( "/auth/:action/metadata",
constraints: { action: /saml/ },
to: "omniauth_callbacks",
as: :omniauth_metadata,
via: [:get, :post]
)
您还需要为“other\u phase”定义回调;e、 g.在SAML策略中添加以下内容
module OmniAuth
module Strategies
class Saml
include OmniAuth::Strategy
def other_phase
if on_path?("#{request_path}/metadata")
# omniauth does not set the strategy on the "other_phase"
@env['omniauth.strategy'] ||= self
setup_phase
response = OneLogin::RubySaml::Metadata.new
settings = OneLogin::RubySaml::Settings.new # set whatever params you want on this guy
Rack::Response.new(response.generate(settings), 200,
{ "Content-Type" => "application/xml" }).finish
else
call_app!
end
end
end
end
end
我正在尝试为我的Rails网站创建Google SAML SSO自定义应用程序集成。我正在使用omniauth saml gem。 但是,我真的很困惑在google saml idp设置期间需要在“服务提供商详细信息”下设置的“ACS URL”和“实体ID”。 我有几个问题: ACS URL应该是什么? 我的理解是:它应该是谷歌接收和发送SAML断言的URL。如果这是正确的,那么:assertio
让我在这个问题的开头说,我是SAML的新手,几乎不了解它是如何工作的。 我正在使用gem和Rails 4应用程序来实现SSO。Rails应用程序充当服务提供商(SP)。为了测试我的设置,我创建了一个OneLogin开发者帐户,并使用以下属性设置了一个SAML测试连接器(IdP w/attr w/sign response): 设置页 观众:mysubdomain.onelogin.com 收件人:
我需要一种使用omniauth saml将动态参数从SP发送到IDP的方法。要求有两个网站:网站1和网站2。网站1由另一个已经实施saml的团队控制。在我的网站上,我添加了一个按钮,点击它,我将向网站1发送请求。在请求的同时,我需要发送用户参数,如first\u name、last\u name、email 当我浏览文档时,我认为我需要利用 但我不确定如何通过它传递动态参数。在我之前的帖子中,有人
在spring security saml中部署《快速入门指南》中的示例应用程序时,我不清楚站点元数据的导入错误: 元数据位于:是Internet2 shibboleth SP在组织中使用的签名元数据(许多SP数据,一些IdP),没有问题。 spring security saml的IdP元数据的预期格式是什么?
我正在开发一个基于Java的web应用程序,在Tomcat服务器上使用Spring Security SAML实现SSO。此应用程序将扮演服务提供者的角色(SP)。检索此SP元数据的默认Spring URL是: 这样做很好,按预期返回元数据XML文件。但是,当我向web.xml添加DefaultServlet servlet-mappings时,我遇到了一个问题。甚至只是一些基本的东西:
我正在尝试使用OpenProject OmniAuth SAML单点登录插件设置SSO(单点登录)与OpenProject的集成。我已经配置了相关的详细信息。生成元数据并向Shibboleth支持的IDP注册。该插件在openproject登录表单上显示了一个额外的登录按钮。单击它将正确重定向到IDP的登录页面。在提供凭据之后,它正确地重定向到我提到的AssertionConsumerServic