在rails

时间:2018-05-25 14:27:35

标签: ruby-on-rails omniauth saml google-apps saml-2.0

我正在尝试为我的Rails网站创建Google SAML SSO自定义应用集成。我正在使用omniauth-saml gem。

然而,我真的很困惑" ACS URL"和"实体ID"需要在"服务提供商详细信息"在谷歌saml idp设置期间。

我有几个问题:

  1. ACS网址应该是什么?
  2. 我的理解:应该是Google收到SAML断言的网址。如果这是正确的,有什么用途:assertion_consumer_service_url,可以在rails app中设置为:     Rails.application.config.middleware.use OmniAuth::Builder do provider :saml, :assertion_consumer_service_url => "acs url here!!" # http://www.my-rails-app.com/sso/saml_asertion_handler ... end

    这会覆盖Google门户网站中设置的ACS网址并将响应发送到Omniauth配置中指定的响应吗?

    1. 实体ID应该是什么?
    2. 我的理解:它应该是我的rails应用程序的网址(http://www.my-rails-app.com)。但是,我找到了一些指定了saml元数据网址的地方(http://my-rails-app.com/auth/saml/metadata)。

      1. 在rails配置中OmniAuth :: Builder中的发布者应该是什么? 我的理解:就像实体ID一样,我发现它是'应用程序名称'(http://www.my-rails-app.com)以及元数据的路径(http://my-rails-app.com/auth/saml/metadata)。
      2. 我对此非常陌生,任何指导都非常感谢。

2 个答案:

答案 0 :(得分:1)

  1. Google ACS URL 是Rails应用程序中的回调URL。在您的情况下,Google就是在这里发送SAML响应的。缺省值为http://example.com/auth/saml/callback

  2. &3. Google的实体ID 应该与Rails应用中的:issuer SAML配置属性完全匹配。大多数人为此使用域名来减少命名冲突的机会。

答案 1 :(得分:0)

ACS是断言使用者服务URL。它是发送SAML断言的服务提供商(SP)上的目标。你必须告诉谷歌IDP在哪里发送断言。您必须在Rails中的SP上定义ACS。您的实体ID是应用的唯一标识符,通常设置为您的基本域网址。