Project

spid-rails

0.02
No commit activity in last 3 years
No release in over 3 years
Soluzione per poter effettuare il login tramite SPID
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

Runtime

~> 5.1, >= 5.1.4
~> 1.0, >= 1.0.4
~> 1.8.0
>= 0.18.0
 Project Readme

spid-rails Build Status

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.