2012-11-01 46 views
0

我試圖利用omniauth-shibboleth策略(與rack-saml)。OmniAuth Shibboleth策略配置不通過

我omniauth初始化看起來是這樣的:

Rails.application.config.middleware.use OmniAuth::Builder do 
    provider :shibboleth, { 
    :info_fields => { 
     :email => 'mail', 
    }, 
    :extra_fields => [:cn, :sn, :schacHomeOrganization], 
    } 
end 

一切順利達至omniauth-陳詞濫調應該建立omniauth.auth ENV變量的地步,但是這最終部分。

即 - 它確實檢測到eduPersonPrincipalName並將其傳遞到uid正確提交 - 我可以看到它。

但是它未能填寫email,以及額外的參數cn, sn, schacHomeOrganization

我已驗證request.env確實包含所有必需的屬性,所以問題不在於Shibboleth方。

對於調試,我硬編碼在創業板選項文件lib/omniauth/strategies/shibboleth.rb

option :info_fields, {:email => 'mail'} 
    option :extra_fields, [:cn, :sn, :schacHomeOrganization] 

然後一切正常。

因此,似乎有問題,或者請與我Omniauth設置或omniauth-陳詞濫調處理的選項,讓我的配置並沒有結束合併使用默認值的方式

我在做什麼錯?

版本:

omniauth - 1.1.1 
omniauth-shibboleth - 1.0.8 
rack-saml - 0.0.4 

pow - 0.4.0 
+0

你有沒有嘗試不把額外的選項放在哈希?提供者:shibboleth,:info_fields => {:email =>'mail'},:extra_fields => [:cn,:sn,:schacHomeOrganization] – brimil01

+0

是的,我有,儘管Omniauth源代碼表示它不應該有任何區別。 – Laas

回答

0

原來設計處理Omniauth初始化本身,雖然我使用config/initializers/omniauth.rb切換:debug => true,制定推翻我已經設置任何其他選項。

所以,正確的位置,以便在使用設計config/initializers/devise.rb配置Omniauth策略

config.omniauth :shibboleth, {:uid_field => 'eppn', 
        :info_fields => {:email => 'mail', :name => 'cn', :last_name => 'sn'}, 
        :extra_fields => [:schacHomeOrganization] 
       } 

以前我以爲這行只暗示設計出的策略是默認的。