У меня есть борьба за то, чтобы это работало, поэтому я создал приложение Rails для адского мира, чтобы попытаться заставить его работать.Аутентификация Shibboleth в Rails
Вот репо с кодом, который не работает: https://github.com/pitosalas/shibtry
Вот что я сделал, начиная с пустого приложения Rails:
я добавил два драгоценных камней в драгоценных файлов:
gem 'omniauth-shibboleth' gem 'rack-saml'
Я получил Шибболет мета-данные из веб-сайта моего университета и превратили его использованием shib_conv.rb в соответствующий YAML: ./con fig.yml
Я обновляемые маршруты добавляющих
get '/auth/:provider/callback', to: 'sessions#create'
Я поставил точку останова в
SessionController#create
Я добавил инициализатор: omniauth.rb:
Rails.application.config.middleware.use OmniAuth::Builder do provider :shibboleth, { :shib_session_id_field => "Shib-Session-ID", :shib_application_id_field => "Shib-Application-ID", :debug => true, :extra_fields => [ :"unscoped-affiliation", :entitlement ] } end
Я добавил инициализатор rack_sam.rb:
Rails.application.config.middleware.insert_after Rack::ETag, Rack::Saml, { :metadata => "#{Rails.root}/config/metadata.yml"}
Теперь запустите сервер и перейти к
http://0.0.0.0:3000/auth/shibboleth
и я получаю сообщение об ошибке:undefined method `[]' for nil:NilClass'
, которая восходит к этой линии в стойку-SAML/разное/onelogin_setting.rb линии 13, которая:
settings.idp_sso_target_url = @metadata['saml2_http_redirect']
Другими словами, поиск хэша метаданных для этого ключа. Бывает, что в моем файле metadata.yml этот ключ присутствует, но к тому времени, когда я доберусь до этой строки onelogin_setting.rb 13,
@metadata
равен нулю (он должен содержать содержимое файла), и, следовательно, этот ключ не существует.
И вот где, на данный момент тропа высыхает.
привет, вы когда-нибудь получали эту работу? я действительно мог бы использовать некоторую помощь, чтобы установить это с моим университетом также. –
Да, я сделал это совершенно по-другому. Я использовал собственный механизм Google, чтобы приложение могло войти в систему. Https://developers.google.com/identity/sign-in/web/ – pitosalas
gotcha, к сожалению, мне нужно сделать это через shibboleth для приложения в моем университете. если у вас есть какие-либо потенциальные подсказки или подсказки о том, как заставить его работать, я все уши. Я также получаю эту ошибку. –