spid 0.15.2 → 0.16.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.rubocop.yml +1 -0
- data/CHANGELOG.md +7 -1
- data/README.md +92 -6
- data/lib/spid/configuration.rb +6 -4
- data/lib/spid/generators/install_generator.rb +13 -0
- data/lib/spid/generators/templates/spid.rb +24 -0
- data/lib/spid/generators.rb +9 -0
- data/lib/spid/rack/sso.rb +4 -0
- data/lib/spid/railtie.rb +11 -0
- data/lib/spid/synchronize_idp_metadata.rb +86 -0
- data/lib/spid/tasks/certificate.rake +60 -0
- data/lib/spid/tasks/fetch_idp_metadata.rake +11 -0
- data/lib/spid/tasks.rb +7 -0
- data/lib/spid/version.rb +1 -1
- data/lib/spid.rb +2 -0
- data/spid.gemspec +1 -1
- metadata +30 -16
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7ba07f30c0e0a0f5a7e810dd65f1fa640c7c44be9821d80d3e66aa9beacd96f3
|
4
|
+
data.tar.gz: 51bdce6a6796d79c084ae3c0c4ef590fee8fa09407282a083730d851f20087a4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0e9bb862aa5e52e2bc9322a599f1f52905b0bfc91ac754aed5962134eeab1f4f87db3146e43a7788f5e46c34d73c0d9697c61d3e49eab81d30bd934f3f59ec11
|
7
|
+
data.tar.gz: 75f930de84a75db8ea97e7651a96a6116bd2e29b8e3903e39c24d98074c952d6936700a08267605a747f97956d703acab408db4ec5875bfea98cb8b4cf1ae3db
|
data/.rubocop.yml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -2,6 +2,11 @@
|
|
2
2
|
|
3
3
|
## [Unreleased]
|
4
4
|
|
5
|
+
## [0.16.0] - 2018-09-05
|
6
|
+
### Added
|
7
|
+
- Task rake for IdPs metadata fetching
|
8
|
+
- Rails installer
|
9
|
+
|
5
10
|
## [0.15.2] - 2018-08-31
|
6
11
|
### Fixed
|
7
12
|
- Now response doesn't fail if status code is not success
|
@@ -118,7 +123,8 @@
|
|
118
123
|
- Coveralls Integration
|
119
124
|
- Rubygems version badge in README
|
120
125
|
|
121
|
-
[Unreleased]: https://github.com/italia/spid-ruby/compare/v0.
|
126
|
+
[Unreleased]: https://github.com/italia/spid-ruby/compare/v0.16.0...HEAD
|
127
|
+
[0.16.0]: https://github.com/italia/spid-ruby/compare/v0.15.2...v0.16.0
|
122
128
|
[0.15.2]: https://github.com/italia/spid-ruby/compare/v0.15.1...v0.15.2
|
123
129
|
[0.15.1]: https://github.com/italia/spid-ruby/compare/v0.15.0...v0.15.1
|
124
130
|
[0.15.0]: https://github.com/italia/spid-ruby/compare/v0.14.0...v0.15.0
|
data/README.md
CHANGED
@@ -1,8 +1,5 @@
|
|
1
1
|
# spid-ruby
|
2
2
|
|
3
|
-
Ruby library for SPID authentication
|
4
|
-
|
5
|
-
|
6
3
|
| Project | Spid Ruby |
|
7
4
|
| ---------------------- | ------------ |
|
8
5
|
| Gem name | spid |
|
@@ -12,14 +9,103 @@ Ruby library for SPID authentication
|
|
12
9
|
| Test coverate | [](https://coveralls.io/github/italia/spid-ruby?branch=master) |
|
13
10
|
| Credits | [Contributors](https://github.com/italia/spid-ruby/graphs/contributors) |
|
14
11
|
|
15
|
-
##
|
16
|
-
|
17
|
-
Add into your Gemfile
|
12
|
+
## Installazione & Configurazione
|
18
13
|
|
14
|
+
### Installazione
|
15
|
+
Aggiungi al tuo Gemfile
|
19
16
|
```ruby
|
20
17
|
gem "spid"
|
21
18
|
```
|
19
|
+
ed esegui nel terminale
|
20
|
+
```bash
|
21
|
+
$ bundle install
|
22
|
+
```
|
23
|
+
|
24
|
+
### Configurazione
|
25
|
+
A questo punto è necessario aggiungere il middleware `Spid::Rack` nello stack dell'applicazione, avendo cura di inserirlo **dopo** un middleware per la gestione della sessione, ad esempio `Rack::Session::Cookie`
|
26
|
+
|
27
|
+
```ruby
|
28
|
+
use Rack::Session::Cookie
|
29
|
+
use Spid::Rack
|
30
|
+
```
|
31
|
+
|
32
|
+
E configurare il parametri spid tramite il seguente codice
|
33
|
+
```ruby
|
34
|
+
Spid.configure do |config|
|
35
|
+
#config ...
|
36
|
+
end
|
37
|
+
```
|
38
|
+
tramite il quale potete accedere alle seguenti configurazioni:
|
39
|
+
|
40
|
+
|Nome|valore default||Obbligatorio?|
|
41
|
+
|:---|:---|:---|:---|
|
42
|
+
|config.hostname||Hostname dell'applicazione, che verrà utilizzato come entity_id del service provider|✓|
|
43
|
+
|config.idp_metadata_dir_path||Directory dove si troveranno copia dei metadata degli Identity Provider del sistema SPID|✓|
|
44
|
+
|config.private_key_pem||Chiave privata del Service Provider in rappresentazione pem|✓|
|
45
|
+
|config.certificate_pem||Certificato X509 del Service Provider in rappresentazione pem|✓|
|
46
|
+
|config.attribute_services||Array degli attribute service indexes richiesti dal Service Provider all'Identity Provider (vedi sotto)|✓|
|
47
|
+
|config.metadata_path|`/spid/metadata`|Path per la fornitura del metadata del Service Provider||
|
48
|
+
|config.login_path|`/spid/login`|Path per la generazione ed invio dell'AuthnRequest all'Identity Provider||
|
49
|
+
|config.acs_path|`/spid/sso`|Path per la ricezione dell'Assertion di autenticazione||
|
50
|
+
|config.logout_path|`/spid/logout`|Path per la generazione ed invio della LogoutRequest all'Identity Provider||
|
51
|
+
|config.slo_path|`/spid/slo`|Path per la ricezione dell'Assertion di chiusura della sessione||
|
52
|
+
|config.default_relay_state_path|`/`|Indirizzo di ritorno dopo aver ricevuto un Assertion||
|
53
|
+
|config.digest_method|Spid::SHA256|Algoritmo utilizzato per la generazione del digest per le firme||
|
54
|
+
|config.signature_method|Spid::RSA_SHA256|Algoritmo utilizzato per la generazione della signature XML||
|
55
|
+
|config.acs_binding|Spid::BINDINGS_HTTP_POST|Binding method utilizzato per la ricezione dell'Assertion di autenticazione||
|
56
|
+
|config.slo_binding|Spid::BINDINGS_HTTP_REDIRECT|Binding method utilizzato ler la ricezione dell'Assertion di chiusura della sessione||
|
57
|
+
|
58
|
+
#### Attribute Services
|
59
|
+
Il protocollo SPID prevede la possibilità di specificare almeno un servizio di attributi. Ogni servizio ha un nome e un elenco di attributi richiesti.
|
60
|
+
|
61
|
+
Per configurare dei servizi bisogna utilizzare questa configurazione
|
62
|
+
```ruby
|
63
|
+
Spid.configure do |config|
|
64
|
+
...
|
65
|
+
config.attribute_services = [
|
66
|
+
{ name: "Service 1 name", fields: [ elenco_attributi_servizio_1 ] },
|
67
|
+
{ name: "Service 2 name", fields: [ elenco_attributi_servizio_2] }
|
68
|
+
]
|
69
|
+
```
|
70
|
+
Gli attributi disponibili sono
|
71
|
+
```
|
72
|
+
:spid_code, :name, :family_name, :place_of_birth, :date_of_birth, :gender, :company_name, :registered_office, :fiscal_number, :iva_code, :id_card, :mobile_phone, :email, :address, :digital_address
|
73
|
+
```
|
74
|
+
### Scaricamento metadata degli Identity Providers
|
75
|
+
Per motivi di sicurezza il sistema SPID prevede che un Service Provider abbia una copia 'sicura' dei metadata degli Identity Providers.
|
76
|
+
|
77
|
+
Al fine di facilitarne lo scaricamento la gemma `spid-ruby` prevede un task rake che li installa nella directory `config.idp_metadata_dir_path`.
|
78
|
+
|
79
|
+
A questo punto è possibile lanciare
|
80
|
+
|
81
|
+
```bash
|
82
|
+
$ rake spid:fetch_idp_metadata
|
83
|
+
```
|
84
|
+
|
85
|
+
#### Sinatra
|
86
|
+
Occorre modificare il `Rakefile` dell'applicazione aggiungendo
|
87
|
+
```ruby
|
88
|
+
# qui è necessario caricare preventivamente la configurazione SPID
|
89
|
+
# require "sinatra-app.rb"
|
90
|
+
require "spid/tasks"
|
91
|
+
```
|
92
|
+
|
93
|
+
## Funzionamento
|
94
|
+
### Login
|
95
|
+
|
96
|
+
Per iniziare un login con SPID è necessario utilizzare un url in questo formato `/spid/login?idp_name=posteid&relay_state=/path/to/return&attribute_index=0`, dove
|
97
|
+
|
98
|
+
* **/spid/login**: è il path configurato nel parametro `config.login_path`
|
99
|
+
* **idp_name**: rappresenta l'identificativo dell'Identity Provider con cui si vuole autenticarsi
|
100
|
+
* **relay_state**: rappresenta l'url dove deve essere fatto il redirect a seguito della ricezione della response di autenticazione
|
101
|
+
* **attribute_index**: rappresenta l'indice del servizio di attributi che vogliano vengano forniti dall'Identity Provider in caso di autenticazione riuscita
|
102
|
+
|
103
|
+
### Logout
|
104
|
+
Per iniziare un logout con SPID l'url da utilizzare è `/spid/logout?idp_name=posteid&relay_state=/path/to/return`, dove
|
22
105
|
|
106
|
+
* **/spid/logout**: è il path configurato nel parametro `config.logout_path`
|
107
|
+
* **idp_name**: rappresenta l'identificativo dell'Identity Provider dove vogliamo terminare la sessione di autenticazione
|
108
|
+
* **relay_state**: rappresenta l'url dove deve essere fatto il redirect a seguito della ricezione della response di logout
|
23
109
|
|
24
110
|
## Features
|
25
111
|
|
data/lib/spid/configuration.rb
CHANGED
@@ -15,8 +15,8 @@ module Spid
|
|
15
15
|
attr_accessor :acs_binding
|
16
16
|
attr_accessor :slo_binding
|
17
17
|
attr_accessor :attribute_services
|
18
|
-
|
19
|
-
|
18
|
+
attr_accessor :private_key_pem
|
19
|
+
attr_accessor :certificate_pem
|
20
20
|
|
21
21
|
def initialize
|
22
22
|
@idp_metadata_dir_path = "idp_metadata"
|
@@ -53,11 +53,13 @@ module Spid
|
|
53
53
|
end
|
54
54
|
|
55
55
|
def certificate
|
56
|
-
|
56
|
+
return nil if certificate_pem.nil?
|
57
|
+
@certificate ||= OpenSSL::X509::Certificate.new(certificate_pem)
|
57
58
|
end
|
58
59
|
|
59
60
|
def private_key
|
60
|
-
|
61
|
+
return nil if private_key_pem.nil?
|
62
|
+
@private_key ||= OpenSSL::PKey::RSA.new(private_key_pem)
|
61
63
|
end
|
62
64
|
|
63
65
|
def service_provider
|
@@ -0,0 +1,13 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Spid
|
4
|
+
module Generators
|
5
|
+
class InstallGenerator < ::Rails::Generators::Base # :nodoc:
|
6
|
+
source_root File.expand_path("templates", __dir__)
|
7
|
+
|
8
|
+
def code_that_runs
|
9
|
+
copy_file "spid.rb", "config/initializers/spid.rb"
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
Spid.configure do |config|
|
4
|
+
config.hostname = ENV.fetch("HOST")
|
5
|
+
|
6
|
+
config.idp_metadata_dir_path = Rails.root.join("config/idp_metadata")
|
7
|
+
config.private_key_pem = ENV.fetch("PRIVATE_KEY")
|
8
|
+
config.certificate_pem = ENV.fetch("CERTIFICATE")
|
9
|
+
|
10
|
+
config.metadata_path = "/spid/metadata"
|
11
|
+
config.start_sso_path = "/spid/login"
|
12
|
+
config.start_slo_path = "/spid/logout"
|
13
|
+
config.acs_path = "/spid/sso"
|
14
|
+
config.slo_path = "/spid/slo"
|
15
|
+
config.default_relay_state_path = "/"
|
16
|
+
|
17
|
+
config.digest_method = Spid::SHA512
|
18
|
+
config.signature_method = Spid::RSA_SHA512
|
19
|
+
config.acs_binding = Spid::BINDINGS_HTTP_POST
|
20
|
+
config.slo_binding = Spid::BINDINGS_HTTP_REDIRECT
|
21
|
+
config.attribute_services = [
|
22
|
+
{ name: "Service1", fields: ["email"] }
|
23
|
+
]
|
24
|
+
end
|
data/lib/spid/rack/sso.rb
CHANGED
@@ -34,10 +34,14 @@ module Spid
|
|
34
34
|
session["attributes"] = responser.attributes
|
35
35
|
session["session_index"] = responser.session_index
|
36
36
|
session.delete("sso_request_uuid")
|
37
|
+
session.delete("errors")
|
37
38
|
end
|
38
39
|
|
39
40
|
def store_session_failure
|
40
41
|
session["errors"] = responser.errors
|
42
|
+
session.delete("attributes")
|
43
|
+
session.delete("sso_request_uuid")
|
44
|
+
session.delete("session_index")
|
41
45
|
end
|
42
46
|
|
43
47
|
def response
|
data/lib/spid/railtie.rb
ADDED
@@ -0,0 +1,86 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "json"
|
4
|
+
require "net/http"
|
5
|
+
|
6
|
+
module Spid
|
7
|
+
class SynchronizeIdpMetadata # :nodoc:
|
8
|
+
def initialize
|
9
|
+
FileUtils.mkdir_p(Spid.configuration.idp_metadata_dir_path)
|
10
|
+
end
|
11
|
+
|
12
|
+
def call
|
13
|
+
idp_list.map do |name, url|
|
14
|
+
metadata_name = "#{name.delete(' ').downcase}-metadata.xml"
|
15
|
+
metadata = get_metadata_from_url(url)
|
16
|
+
|
17
|
+
File.open(metadata_path(metadata_name), "wb") { |f| f.write metadata }
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
def idp_list
|
22
|
+
metadata_list.each.with_object({}) do |(name, url), acc|
|
23
|
+
uri = URI(url)
|
24
|
+
res = Net::HTTP.get_response(uri)
|
25
|
+
acc[name] = if res.code == "302"
|
26
|
+
res["Location"]
|
27
|
+
else
|
28
|
+
url
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
def metadata_list
|
34
|
+
entities.each.with_object({}) do |entity, acc|
|
35
|
+
entity_name = entity["entity_name"]
|
36
|
+
entity_name = "SPIDItalia" if entity_name =~ /SPIDItalia/
|
37
|
+
acc[entity_name] = entity["metadata_url"]
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
def metadata_path(name)
|
42
|
+
File.join(
|
43
|
+
Spid.configuration.idp_metadata_dir_path,
|
44
|
+
name
|
45
|
+
)
|
46
|
+
end
|
47
|
+
|
48
|
+
def entities
|
49
|
+
return [] if idp_list_raw.nil?
|
50
|
+
|
51
|
+
JSON.parse(idp_list_raw)["spidFederationRegistry"]["entities"]
|
52
|
+
end
|
53
|
+
|
54
|
+
def get_metadata_from_url(url)
|
55
|
+
uri = URI(url)
|
56
|
+
req = Net::HTTP::Get.new(uri)
|
57
|
+
|
58
|
+
res = Net::HTTP.start(
|
59
|
+
uri.host, uri.port, use_ssl: uri.scheme == "https"
|
60
|
+
) do |http|
|
61
|
+
http.request(req)
|
62
|
+
end
|
63
|
+
|
64
|
+
res.body
|
65
|
+
end
|
66
|
+
|
67
|
+
def idp_list_raw
|
68
|
+
uri = URI(registry_url)
|
69
|
+
|
70
|
+
req = Net::HTTP::Get.new(uri)
|
71
|
+
req["Accept"] = "application/json"
|
72
|
+
|
73
|
+
res = Net::HTTP.start(
|
74
|
+
uri.host, uri.port, use_ssl: uri.scheme == "https"
|
75
|
+
) do |http|
|
76
|
+
http.request(req)
|
77
|
+
end
|
78
|
+
|
79
|
+
res.body
|
80
|
+
end
|
81
|
+
|
82
|
+
def registry_url
|
83
|
+
"https://registry.spid.gov.it/api/identity-providers"
|
84
|
+
end
|
85
|
+
end
|
86
|
+
end
|
@@ -0,0 +1,60 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
namespace :spid do
|
4
|
+
task :certificate do
|
5
|
+
Rake::Task["environment"].invoke if defined?(Rails)
|
6
|
+
|
7
|
+
if File.exist?(Spid.configuration.certificate_path) &&
|
8
|
+
File.exist?(Spid.configuration.private_key_path)
|
9
|
+
puts "A certificate and a private key already exists!"
|
10
|
+
exit
|
11
|
+
end
|
12
|
+
|
13
|
+
private_key = OpenSSL::PKey::RSA.new(4096)
|
14
|
+
public_key = private_key.public_key
|
15
|
+
|
16
|
+
subject = {}
|
17
|
+
|
18
|
+
print "Insert the certificate Country (default IT): "
|
19
|
+
subject[:C] = $stdin.gets.chomp
|
20
|
+
subject[:C] = "IT" if subject[:C] == ""
|
21
|
+
|
22
|
+
print "Insert the Organization name: "
|
23
|
+
subject[:O] = $stdin.gets.chomp
|
24
|
+
|
25
|
+
print "Insert the Organization Unit name: "
|
26
|
+
subject[:OU] = $stdin.gets.chomp
|
27
|
+
|
28
|
+
print "Insert the Common Name: "
|
29
|
+
subject[:CN] = $stdin.gets.chomp
|
30
|
+
|
31
|
+
print "Insert the Domain Component: "
|
32
|
+
subject[:DC] = $stdin.gets.chomp
|
33
|
+
|
34
|
+
print "Insert the State or Province name: "
|
35
|
+
subject[:ST] = $stdin.gets.chomp
|
36
|
+
|
37
|
+
subject = subject.map do |key, value|
|
38
|
+
"/#{key}=#{value}" if !value.nil? && value != ""
|
39
|
+
end.join
|
40
|
+
|
41
|
+
certificate = OpenSSL::X509::Certificate.new
|
42
|
+
name = OpenSSL::X509::Name.parse(subject)
|
43
|
+
certificate.issuer = certificate.subject = name
|
44
|
+
certificate.not_before = Time.now
|
45
|
+
certificate.not_after = Time.now + (30 * 365 * 24 * 60 * 60)
|
46
|
+
certificate.public_key = public_key
|
47
|
+
certificate.serial = 0x0
|
48
|
+
certificate.version = 2
|
49
|
+
|
50
|
+
certificate.sign private_key, OpenSSL::Digest::SHA512.new
|
51
|
+
|
52
|
+
File.open(Spid.configuration.certificate_path, "w") do |f|
|
53
|
+
f.write certificate.to_pem
|
54
|
+
end
|
55
|
+
|
56
|
+
File.open(Spid.configuration.private_key_path, "w") do |f|
|
57
|
+
f.write private_key.to_pem
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "spid/synchronize_idp_metadata"
|
4
|
+
|
5
|
+
namespace :spid do
|
6
|
+
desc "Synchronize IDP metadata"
|
7
|
+
task :fetch_idp_metadata do
|
8
|
+
Rake::Task["environment"].invoke if defined?(Rails)
|
9
|
+
Spid::SynchronizeIdpMetadata.new.call
|
10
|
+
end
|
11
|
+
end
|
data/lib/spid/tasks.rb
ADDED
data/lib/spid/version.rb
CHANGED
data/lib/spid.rb
CHANGED
@@ -8,6 +8,8 @@ require "spid/metadata"
|
|
8
8
|
require "spid/version"
|
9
9
|
require "spid/configuration"
|
10
10
|
require "spid/identity_provider_manager"
|
11
|
+
require "spid/synchronize_idp_metadata"
|
12
|
+
require "spid/railtie" if defined?(Rails)
|
11
13
|
|
12
14
|
module Spid # :nodoc:
|
13
15
|
class UnknownAuthnComparisonMethodError < StandardError; end
|
data/spid.gemspec
CHANGED
@@ -26,6 +26,7 @@ Gem::Specification.new do |spec|
|
|
26
26
|
|
27
27
|
spec.add_runtime_dependency "activesupport", ">= 3.0.0", "< 5.3"
|
28
28
|
spec.add_runtime_dependency "rack", ">= 1", "< 3"
|
29
|
+
spec.add_runtime_dependency "rake", ">= 10.0", "< 13"
|
29
30
|
spec.add_runtime_dependency "xmldsig", ">= 0.6.6"
|
30
31
|
|
31
32
|
spec.add_development_dependency "bundler", "~> 1.16"
|
@@ -36,7 +37,6 @@ Gem::Specification.new do |spec|
|
|
36
37
|
spec.add_development_dependency "nokogiri", "~> 1.8", ">= 1.8.3"
|
37
38
|
spec.add_development_dependency "pry", "~> 0"
|
38
39
|
spec.add_development_dependency "pry-doc", "~> 0"
|
39
|
-
spec.add_development_dependency "rake", "~> 10.0"
|
40
40
|
spec.add_development_dependency "rspec", "~> 3.0"
|
41
41
|
spec.add_development_dependency "rubocop", "0.57.2"
|
42
42
|
spec.add_development_dependency "rubocop-rspec", "1.27.0"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: spid
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.16.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- David Librera
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-09-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -50,6 +50,26 @@ dependencies:
|
|
50
50
|
- - "<"
|
51
51
|
- !ruby/object:Gem::Version
|
52
52
|
version: '3'
|
53
|
+
- !ruby/object:Gem::Dependency
|
54
|
+
name: rake
|
55
|
+
requirement: !ruby/object:Gem::Requirement
|
56
|
+
requirements:
|
57
|
+
- - ">="
|
58
|
+
- !ruby/object:Gem::Version
|
59
|
+
version: '10.0'
|
60
|
+
- - "<"
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: '13'
|
63
|
+
type: :runtime
|
64
|
+
prerelease: false
|
65
|
+
version_requirements: !ruby/object:Gem::Requirement
|
66
|
+
requirements:
|
67
|
+
- - ">="
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: '10.0'
|
70
|
+
- - "<"
|
71
|
+
- !ruby/object:Gem::Version
|
72
|
+
version: '13'
|
53
73
|
- !ruby/object:Gem::Dependency
|
54
74
|
name: xmldsig
|
55
75
|
requirement: !ruby/object:Gem::Requirement
|
@@ -182,20 +202,6 @@ dependencies:
|
|
182
202
|
- - "~>"
|
183
203
|
- !ruby/object:Gem::Version
|
184
204
|
version: '0'
|
185
|
-
- !ruby/object:Gem::Dependency
|
186
|
-
name: rake
|
187
|
-
requirement: !ruby/object:Gem::Requirement
|
188
|
-
requirements:
|
189
|
-
- - "~>"
|
190
|
-
- !ruby/object:Gem::Version
|
191
|
-
version: '10.0'
|
192
|
-
type: :development
|
193
|
-
prerelease: false
|
194
|
-
version_requirements: !ruby/object:Gem::Requirement
|
195
|
-
requirements:
|
196
|
-
- - "~>"
|
197
|
-
- !ruby/object:Gem::Version
|
198
|
-
version: '10.0'
|
199
205
|
- !ruby/object:Gem::Dependency
|
200
206
|
name: rspec
|
201
207
|
requirement: !ruby/object:Gem::Requirement
|
@@ -312,6 +318,9 @@ files:
|
|
312
318
|
- idp_metadata/.gitkeep
|
313
319
|
- lib/spid.rb
|
314
320
|
- lib/spid/configuration.rb
|
321
|
+
- lib/spid/generators.rb
|
322
|
+
- lib/spid/generators/install_generator.rb
|
323
|
+
- lib/spid/generators/templates/spid.rb
|
315
324
|
- lib/spid/identity_provider_manager.rb
|
316
325
|
- lib/spid/metadata.rb
|
317
326
|
- lib/spid/rack.rb
|
@@ -321,6 +330,7 @@ files:
|
|
321
330
|
- lib/spid/rack/session.rb
|
322
331
|
- lib/spid/rack/slo.rb
|
323
332
|
- lib/spid/rack/sso.rb
|
333
|
+
- lib/spid/railtie.rb
|
324
334
|
- lib/spid/saml2.rb
|
325
335
|
- lib/spid/saml2/authn_request.rb
|
326
336
|
- lib/spid/saml2/identity_provider.rb
|
@@ -345,6 +355,10 @@ files:
|
|
345
355
|
- lib/spid/sso.rb
|
346
356
|
- lib/spid/sso/request.rb
|
347
357
|
- lib/spid/sso/response.rb
|
358
|
+
- lib/spid/synchronize_idp_metadata.rb
|
359
|
+
- lib/spid/tasks.rb
|
360
|
+
- lib/spid/tasks/certificate.rake
|
361
|
+
- lib/spid/tasks/fetch_idp_metadata.rake
|
348
362
|
- lib/spid/version.rb
|
349
363
|
- spid.gemspec
|
350
364
|
homepage: https://github.com/italia/spid-ruby
|