Mam problem ze sprawnym działaniem, więc stworzyłem aplikację Rails w świecie piekła, aby spróbować uruchomić to.Uwierzytelnianie Shibboleth w Railsach
Oto repo z kodem, który nie działa: https://github.com/pitosalas/shibtry
Oto co zrobiłem zaczynając od pustej aplikacji Rails:
dodałem dwa kamienie do plików gem:
gem 'omniauth-shibboleth' gem 'rack-saml'
dostałem Shibboleth meta dane ze strony internetowej mojej uczelni i przekształcono go za pomocą shib_conv.rb do odpowiedniego YAML: ./con fig.yml
mam zaktualizowane trasy dodając
get '/auth/:provider/callback', to: 'sessions#create'
Mam umieścić punkt przerwania na
SessionController#create
Dodałem inicjatorów: 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
Dodałem inicjator rack_sam.rb:
Rails.application.config.middleware.insert_after Rack::ETag, Rack::Saml, { :metadata => "#{Rails.root}/config/metadata.yml"}
Teraz uruchomić serwer i przejdź do
http://0.0.0.0:3000/auth/shibboleth
i pojawia się błąd:undefined method `[]' for nil:NilClass'
który sięgają do tej linii w rack-SAML/misc/onelogin_setting.rb linii 13, która jest:
settings.idp_sso_target_url = @metadata['saml2_http_redirect']
innymi słowy, szukanie skrótu metadanych dla tego klucza. Zdarza się, że w moim pliku metadata.yml ten klucz jest obecny, ale do czasu, gdy dojdę do tej linii onelogin_setting.rb 13,
@metadata
jest zerowy (powinien zawierać zawartość pliku), w związku z czym klucz ten nie istnieje.
I to tutaj, na razie, szlak wysycha.
Witam, czy kiedykolwiek udało ci się to zrobić? mogłem naprawdę skorzystać z pomocy, aby ustawić to również na moim uniwersytecie. –
Tak, zrobiłem to w zupełnie inny sposób. Użyłem własnego mechanizmu google, aby umożliwić aplikacji zalogowanie się. Https://developers.google.com/identity/sign-in/web/ – pitosalas
Mam, niestety, muszę to zrobić przez shibboleth dla aplikacji na mojej uczelni. jeśli masz jakieś potencjalne wskazówki lub wskazówki, jak sprawić, żeby działało, ja jestem uszy. Otrzymuję również ten błąd. –