如何集成Devise和SAML?

时间:2015-05-01 19:50:02

标签: devise

让SAML使用广泛使用的https://github.com/plataformatec/devise

的最佳方法是什么?

https://github.com/apokalipto/devise_saml_authenticatable没有签名/加密身份验证请求,这对我们来说是一个交易破坏者,并且通常的来源无法帮助。

例如,Devise的Omniauth集成需要一个应用程序ID和Onelogin的SAML连接器无法提供的秘密。

1 个答案:

答案 0 :(得分:2)

所以,对我有用的答案是使用https://github.com/PracticallyGreen/omniauth-saml#usage中概述的gemlfile和omniauth.rb设置,然后在https://github.com/plataformatec/devise/wiki/OmniAuth:-Overview关注设计的omniauth教程,用以下内容替换facebook SAML。请注意,您可能不需要教程中提到的UID字段,具体取决于您的IdP如何存储其用户(如果您使用瞬态nameid格式,则不会获得永久UID)。使用在IdP上唯一标识您的用户的内容,这很可能是一个电子邮件地址。

ioblomov添加的devise.rb内容似乎没有添加任何东西,实际上如果你这样做并且做omniauth.rb文件会导致问题。这会产生一种情况,即IdP执行两次回调,一次使用omniauth.rb设置,另一次使用devise.rb设置。鉴于devise.rb设置不完整(例如,他们没有消费者网址),我无法看到即使拥有它本身也能工作。我不清楚是什么"设计整合"甚至意味着在omniauth-saml的背景下。一旦你得到一个auth响应(你将只使用omniauth.rb设置),那么你所要做的就是在你的回调控制器中使用设计方法sign_in_and_redirect,然后你拥有所有可用的常用设备。那个用户。我将向omniauth-saml提交一份公关,但我不会屏住呼吸,因为此刻该项目似乎是偶尔维持的。