omniauth-shibboleth戦略を利用しようとしています( Rack-samlを使用)。
私の omniauth イニシャライザは次のようになります。
Rails.application.config.middleware.use OmniAuth::Builder do
provider :shibboleth, {
:info_fields => {
:email => 'mail',
},
:extra_fields => [:cn, :sn, :schacHomeOrganization],
}
end
omniauth-shibboleth がomniauth.auth
ENV 変数を設定する必要があるところまではすべて成功していますが、これは部分的なものになります。
つまり、それは正しく検出eduPersonPrincipalName
され、ファイルに渡されます-私はそれを見ることができます。uid
しかし、それは記入に失敗しemail
、余分なパラメータcn, sn, schacHomeOrganization
.
request.env
に必要な属性がすべて含まれていることを確認したので、問題は Shibboleth 側にはありません。
デバッグのために、Gem ファイルにオプションをハードコーディングしましたlib/omniauth/strategies/shibboleth.rb
。
option :info_fields, {:email => 'mail'}
option :extra_fields, [:cn, :sn, :schacHomeOrganization]
その後、すべてが機能します。
したがって、Omniauthのセットアップまたはomniauth-shibbolethがオプションを処理する方法に問題があるようで、構成がデフォルト値とマージされません。
私は何を間違っていますか?
バージョン:
omniauth - 1.1.1
omniauth-shibboleth - 1.0.8
rack-saml - 0.0.4
pow - 0.4.0