cie-es 0.0.1 → 0.0.6

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1fddb69bc580ee945fdf740e072a06a43f13133bc821e65cd4c16ebde05a8490
4
- data.tar.gz: 1ebb454f25165f5916887b4742eeaf0e8a1c9b823bd2377a8c5b12e70d4ac595
3
+ metadata.gz: aa8ffcd923c77d685ba34780714399f6c8d6e9319e40e2ba6306b4a67ef7bd68
4
+ data.tar.gz: 4ff68734ae1fcc20ead106bea204530ace83c3222fd9832af1cca77af4afb890
5
5
  SHA512:
6
- metadata.gz: 5f6a34790df5ebf8d9d0bf06e71167e34550b2c972cf113c881d92a86dd96bae9b164b15c2891e20ab3a3f0c67a6c8f18906fcec5c8baca0cf287b352e209c0e
7
- data.tar.gz: e352e080c27f29fc4b214d99466ff75d5e38f2d680fad4d60140865084038d89c308e60c44b804abafbddb961a6c4b4017eb6cbd00de9b1521521be028b531e5
6
+ metadata.gz: 21ec147dcf6c26f1538f3938a5b1e8dfc9f016fcc187bb743acd0dfafa3468f022c245a0861ac8ac6313a480e027084675b84ad0193252cca723b3af2b4345eb
7
+ data.tar.gz: 1eff47e58ff23c9a80becc38b23fe00dd28f5b8678fc7b592589b55a0b80fd9078aa9ecf31c857c56dfd57400f885a150b964e642f26a2a449b5e43f24b8bdd9
@@ -2,7 +2,7 @@ $LOAD_PATH.push File.expand_path('../lib', __FILE__)
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = 'cie-es'
5
- s.version = '0.0.1'
5
+ s.version = '0.0.6'
6
6
 
7
7
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
8
8
  s.authors = ["Fabiano Pavan"]
@@ -29,24 +29,16 @@ module Cie::Saml
29
29
  # Create AuthnRequest root element using REXML
30
30
  request_doc = Cie::XMLSecurityNew::Document.new
31
31
  request_doc.context[:attribute_quote] = :quote
32
- root = request_doc.add_element "saml2p:AuthnRequest", { "xmlns:saml2p" => "urn:oasis:names:tc:SAML:2.0:protocol",
32
+ root = request_doc.add_element "samlp:AuthnRequest", { "xmlns:samlp" => "urn:oasis:names:tc:SAML:2.0:protocol",
33
33
  "xmlns:saml" => "urn:oasis:names:tc:SAML:2.0:assertion"
34
34
  }
35
35
  root.attributes['ID'] = uuid
36
36
  root.attributes['IssueInstant'] = time
37
37
  root.attributes['Version'] = "2.0"
38
- #root.attributes['ProtocolBinding'] = "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"
38
+ root.attributes['ProtocolBinding'] = HTTP_POST
39
39
  root.attributes['AttributeConsumingServiceIndex'] = @settings.assertion_consumer_service_index
40
40
  root.attributes['ForceAuthn'] = "true"
41
- #root.attributes['IsPassive'] = "false"
42
- #usato AssertionConsumerServiceURL e ProtocolBinding in alternativa, pag 8 regole tecniche
43
- root.attributes['AssertionConsumerServiceIndex'] = @settings.attribute_consuming_service_index
44
-
45
- #Tolto, utilizzo AssertionConsumerServiceIndex
46
- # # Conditionally defined elements based on settings
47
- # if @settings.assertion_consumer_service_url != nil
48
- # root.attributes["AssertionConsumerServiceURL"] = @settings.assertion_consumer_service_url
49
- # end
41
+ root.attributes["AssertionConsumerServiceURL"] = @settings.assertion_consumer_service_url
50
42
 
51
43
  if @settings.destination_service_url != nil
52
44
  root.attributes["Destination"] = @settings.destination_service_url
@@ -71,9 +63,9 @@ module Cie::Saml
71
63
 
72
64
 
73
65
  if @settings.name_identifier_format != nil
74
- root.add_element "saml2p:NameIDPolicy", {
66
+ root.add_element "samlp:NameIDPolicy", {
75
67
  # Might want to make AllowCreate a setting?
76
- #{}"AllowCreate" => "true",
68
+ "AllowCreate" => "1",
77
69
  "Format" => @settings.name_identifier_format[0]
78
70
  }
79
71
  end
@@ -82,7 +74,7 @@ module Cie::Saml
82
74
  # match required for authentication to succeed. If this is not defined,
83
75
  # the IdP will choose default rules for authentication. (Shibboleth IdP)
84
76
  if @settings.authn_context != nil
85
- requested_context = root.add_element "saml2p:RequestedAuthnContext", {
77
+ requested_context = root.add_element "samlp:RequestedAuthnContext", {
86
78
  "Comparison" => "minimum"
87
79
  }
88
80
  context_class = []
@@ -94,12 +86,12 @@ module Cie::Saml
94
86
  end
95
87
 
96
88
  if @settings.requester_identificator != nil
97
- requester_identificator = root.add_element "saml2p:Scoping", {
89
+ requester_identificator = root.add_element "samlp:Scoping", {
98
90
  "ProxyCount" => "0"
99
91
  }
100
92
  identificators = []
101
93
  @settings.requester_identificator.each_with_index{ |requester, index|
102
- identificators[index] = requester_identificator.add_element "saml2p:RequesterID"
94
+ identificators[index] = requester_identificator.add_element "samlp:RequesterID"
103
95
  identificators[index].text = requester
104
96
  }
105
97
 
@@ -140,23 +132,25 @@ module Cie::Saml
140
132
  metadata = Metadata::new
141
133
  meta_doc = metadata.get_idp_metadata(@settings)
142
134
 
143
- # first try POST
135
+ # first try GET
144
136
  sso_element = REXML::XPath.first(meta_doc,
145
- "/EntityDescriptor/IDPSSODescriptor/SingleSignOnService[@Binding='#{HTTP_POST}']")
137
+ "/EntityDescriptor/IDPSSODescriptor/SingleSignOnService[@Binding='#{HTTP_GET}']")
146
138
  if sso_element
147
139
  @URL = sso_element.attributes["Location"]
148
- #Logging.debug "binding_select: POST to #{@URL}"
149
- return "POST", content_post
140
+ Logging.debug "binding_select: GET from #{@URL}"
141
+ return "GET", content_get
150
142
  end
151
-
152
- # next try GET
143
+
144
+ # then try POST
153
145
  sso_element = REXML::XPath.first(meta_doc,
154
- "/EntityDescriptor/IDPSSODescriptor/SingleSignOnService[@Binding='#{HTTP_GET}']")
146
+ "/EntityDescriptor/IDPSSODescriptor/SingleSignOnService[@Binding='#{HTTP_POST}']")
155
147
  if sso_element
156
148
  @URL = sso_element.attributes["Location"]
157
- Logging.debug "binding_select: GET from #{@URL}"
158
- return "GET", content_get
149
+ #Logging.debug "binding_select: POST to #{@URL}"
150
+ return "POST", content_post
159
151
  end
152
+
153
+
160
154
  # other types we might want to add in the future: SOAP, Artifact
161
155
  end
162
156
 
@@ -38,9 +38,11 @@ module Cie
38
38
  if settings.issuer != nil
39
39
  root.attributes["entityID"] = settings.issuer
40
40
  end
41
- uuid = "_" + UUID.new.generate
42
- self.uuid = uuid
43
- root.attributes["ID"] = uuid
41
+
42
+ #Tolgo attributo ID per avere il metadata uguale e non farlo cambiare continuamente
43
+ # uuid = "_" + UUID.new.generate
44
+ # self.uuid = uuid
45
+ # root.attributes["ID"] = uuid
44
46
 
45
47
  sp_sso = root.add_element "md:SPSSODescriptor", {
46
48
  "protocolSupportEnumeration" => "urn:oasis:names:tc:SAML:2.0:protocol",
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cie-es
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Fabiano Pavan
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-05-04 00:00:00.000000000 Z
11
+ date: 2020-06-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: canonix
@@ -112,7 +112,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
112
112
  - !ruby/object:Gem::Version
113
113
  version: '0'
114
114
  requirements: []
115
- rubygems_version: 3.0.6
115
+ rubygems_version: 3.0.8
116
116
  signing_key:
117
117
  specification_version: 4
118
118
  summary: SAML Ruby Toolkit Cie