Autenticazione SPID per Ruby on Rails. Questa gemma si appoggia alla gemma ruby-saml.
Cosa c'è e cosa manca
- Creazione gemma
- Applicazione demo funzionante con login tramite il server test idp.spid.gov.it repository: https://github.com/rubynetti/rubynetti-rails
- Login tramite redirect
- Login tramite post
- Sistema di testing automatico
- Sistema di configurazione
- Integrazione con omniauth
- Integrazione o esempio di integrazione con devise
- Configurazione richiesta attributi utente
Installazione
Aggiungere nel Gemfile
gem 'spid-rails'
ed eseguire
$ bundle
Configurazione
Per creare il file di configurazione:
$ rails g spid:rails:config
che creerà il file config/initializer/spid-rails.rb
con la configurazione default.
Una volta creata la configurazione bisogna aggiungere il middleware dopo il middleware di gestione della sessione. In config/application.rb
# config/application.rb
module MyApplication
class Application < ::Rails::Application
config.middleware.insert_after(
::ActionDispatch::Session::CookieStore,
::Spid::Rack
)
end
end
Questa gemma è un wrapper della gemma spid-ruby con funzionalità per semplificare l'utilizzo con rails
Helpers
La gemma fornirà una serie di helpers per la generazione dei paths:
spid_login_path
spid_login_path(idp_name: idp_entity_id, authn_context: Spid::L1, attribute_service_index: 0)
che genera un url per iniziare il processo di autenticazione con un identity provider:
- idp_name: Obbligatorio, è l'entity_id dell'IdP con cui vogliamo instaurare l'autenticazione
- authn_context: E' il valore del tipo di autenticazione richiesta. Default:
https://www.spid.gov.id/L1
- attribute_service_index: Nel caso in cui l'applicazione disponga di più
AttributeConsumingService
, l'indice del servizio che vogliamo utilizzare. Default: 0
spid_logout_path
spid_logout_path(idp_name: idp_entity_id)
Come sopra, crea un link per iniziare il processo di logout verso l'IdP
License
The gem is available as open source under the terms of the MIT License.