saml2 1.0.5 → 1.0.6
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/lib/saml2/attribute.rb +1 -4
- data/lib/saml2/attribute_consuming_service.rb +2 -2
- data/lib/saml2/base.rb +5 -4
- data/lib/saml2/endpoint.rb +1 -2
- data/lib/saml2/entity.rb +61 -14
- data/lib/saml2/identity_provider.rb +14 -8
- data/lib/saml2/indexed_object.rb +6 -1
- data/lib/saml2/key.rb +8 -0
- data/lib/saml2/organization_and_contacts.rb +9 -5
- data/lib/saml2/role.rb +10 -6
- data/lib/saml2/schemas.rb +4 -0
- data/lib/saml2/service_provider.rb +0 -8
- data/lib/saml2/sso.rb +9 -5
- data/lib/saml2/version.rb +1 -1
- data/schemas/MetadataExchange.xsd +112 -0
- data/schemas/oasis-200401-wss-wssecurity-secext-1.0.xsd +195 -0
- data/schemas/oasis-200401-wss-wssecurity-utility-1.0.xsd +108 -0
- data/schemas/ws-addr.xsd +137 -0
- data/schemas/ws-authorization.xsd +145 -0
- data/schemas/ws-federation.xsd +471 -0
- data/schemas/ws-securitypolicy-1.2.xsd +1205 -0
- data/spec/fixtures/FederationMetadata.xml +670 -0
- data/spec/fixtures/identity_provider.xml +45 -0
- data/spec/lib/entity_spec.rb +4 -0
- data/spec/lib/identity_provider_spec.rb +14 -0
- data/spec/lib/service_provider_spec.rb +1 -1
- metadata +18 -7
@@ -0,0 +1,45 @@
|
|
1
|
+
<?xml version="1.0"?>
|
2
|
+
<EntityDescriptor xmlns="urn:oasis:names:tc:SAML:2.0:metadata" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" entityID="https://sso.school.edu/idp/shibboleth">
|
3
|
+
<IDPSSODescriptor protocolSupportEnumeration="urn:mace:shibboleth:1.0 urn:oasis:names:tc:SAML:1.1:protocol urn:oasis:names:tc:SAML:2.0:protocol">
|
4
|
+
<KeyDescriptor use="signing">
|
5
|
+
<ds:KeyInfo>
|
6
|
+
<ds:X509Data>
|
7
|
+
<ds:X509Certificate>
|
8
|
+
MIIE8TCCA9mgAwIBAgIJAITusxON60cKMA0GCSqGSIb3DQEBBQUAMIGrMQswCQYD
|
9
|
+
VQQGEwJVUzENMAsGA1UECBMEVXRhaDEXMBUGA1UEBxMOU2FsdCBMYWtlIENpdHkx
|
10
|
+
GTAXBgNVBAoTEEluc3RydWN0dXJlLCBJbmMxEzARBgNVBAsTCk9wZXJhdGlvbnMx
|
11
|
+
IDAeBgNVBAMTF0NhbnZhcyBTQU1MIENlcnRpZmljYXRlMSIwIAYJKoZIhvcNAQkB
|
12
|
+
FhNvcHNAaW5zdHJ1Y3R1cmUuY29tMB4XDTEzMDQyMjE3NDQ0M1oXDTE1MDQyMjE3
|
13
|
+
NDQ0M1owgasxCzAJBgNVBAYTAlVTMQ0wCwYDVQQIEwRVdGFoMRcwFQYDVQQHEw5T
|
14
|
+
YWx0IExha2UgQ2l0eTEZMBcGA1UEChMQSW5zdHJ1Y3R1cmUsIEluYzETMBEGA1UE
|
15
|
+
CxMKT3BlcmF0aW9uczEgMB4GA1UEAxMXQ2FudmFzIFNBTUwgQ2VydGlmaWNhdGUx
|
16
|
+
IjAgBgkqhkiG9w0BCQEWE29wc0BpbnN0cnVjdHVyZS5jb20wggEiMA0GCSqGSIb3
|
17
|
+
DQEBAQUAA4IBDwAwggEKAoIBAQDHRYRp/slsoqD7iPFo+8UFjqd+LgSQ062x09CG
|
18
|
+
m5uW9smY/x2ig8hxfd05Dtk42wrA9frRh6QiEhtoy8qL/4g/LOmYq5USDdzLXsPF
|
19
|
+
/nqTVPkTOhGcuSpfJbxucRsMfGL6IvrGqLNxpyfroyV1dv9/fim+d6bs7js5k1i5
|
20
|
+
EkKksgVlnnpUpOx5pswWVcZICeIJwTMe1C0KHcpUMycZxMHueJ+Y7tWHtWW+R75T
|
21
|
+
QWdWjL+TevEL57B3cW19+9Sud2Y63DcwP6V0aDrwArxQwmp73uUb5ol6gSSvD+Ol
|
22
|
+
CIsf6S/5gqMdgqxJJsWqzBOTeDsVr8m2Dx3VX7Plho7pk06FAgMBAAGjggEUMIIB
|
23
|
+
EDAdBgNVHQ4EFgQUQy1zIfZP/NZKPYLGugNSjjBnTYgwgeAGA1UdIwSB2DCB1YAU
|
24
|
+
Qy1zIfZP/NZKPYLGugNSjjBnTYihgbGkga4wgasxCzAJBgNVBAYTAlVTMQ0wCwYD
|
25
|
+
VQQIEwRVdGFoMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0eTEZMBcGA1UEChMQSW5z
|
26
|
+
dHJ1Y3R1cmUsIEluYzETMBEGA1UECxMKT3BlcmF0aW9uczEgMB4GA1UEAxMXQ2Fu
|
27
|
+
dmFzIFNBTUwgQ2VydGlmaWNhdGUxIjAgBgkqhkiG9w0BCQEWE29wc0BpbnN0cnVj
|
28
|
+
dHVyZS5jb22CCQCE7rMTjetHCjAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBQUA
|
29
|
+
A4IBAQC1dgkv3cT4KRMR42mIKgJRp4Jf7swUrtoAFOdOr1R6fjI/9bFNSVNgauiQ
|
30
|
+
flN6q8QA5B2sbDihiSqAylm9F34hpI3C3PvzSWzuIk+Z2FPHcA05CZtwrUWj1M0c
|
31
|
+
eBXxXragtR7ZYtIbEb0srzBfwoFYvWnLU7tM8t6wM6+1rxvOuQFVCCSXyptsGoBl
|
32
|
+
D9qyzAbyYDgJZYpbTjaA9bqhpkn/9CLN3JhNHLyBVr03fp3hQqNwZ2do9bFZBnW0
|
33
|
+
c5Dx9pbKTvC3TAUb2cwUD69yTYS1oq7//yIC2ha2ouzkV/VpB1fcF5YEj2pc6uaj
|
34
|
+
lOTDX4Eg7OBEkTzU8cX04b15bJfE
|
35
|
+
</ds:X509Certificate>
|
36
|
+
</ds:X509Data>
|
37
|
+
</ds:KeyInfo>
|
38
|
+
</KeyDescriptor>
|
39
|
+
<ArtifactResolutionService Binding="urn:oasis:names:tc:SAML:2.0:bindings:SOAP" Location="https://sso.school.edu:8443/idp/profile/SAML2/SOAP/ArtifactResolution" index="1"/>
|
40
|
+
<ArtifactResolutionService Binding="urn:oasis:names:tc:SAML:1.0:bindings:SOAP-binding" Location="https://sso.school.edu:8443/idp/profile/SAML1/SOAP/ArtifactResolution" index="2"/>
|
41
|
+
<SingleSignOnService Binding="urn:mace:shibboleth:1.0:profiles:AuthnRequest" Location="https://sso.school.edu/idp/profile/Shibboleth/SSO"/>
|
42
|
+
<SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://sso.school.edu/idp/profile/SAML2/POST/SSO"/>
|
43
|
+
<SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" Location="https://sso.school.edu/idp/profile/SAML2/Redirect/SSO"/>
|
44
|
+
</IDPSSODescriptor>
|
45
|
+
</EntityDescriptor>
|
data/spec/lib/entity_spec.rb
CHANGED
@@ -30,6 +30,10 @@ module SAML2
|
|
30
30
|
entity.organization.display_name('es').must_equal nil
|
31
31
|
entity.organization.display_name(:all).must_equal en: 'Canvas'
|
32
32
|
end
|
33
|
+
|
34
|
+
it "validates metadata from ADFS containing lots of non-SAML schemas" do
|
35
|
+
Entity.parse(fixture('FederationMetadata.xml')).valid_schema?.must_equal true
|
36
|
+
end
|
33
37
|
end
|
34
38
|
|
35
39
|
describe Entity::Group do
|
@@ -19,5 +19,19 @@ module SAML2
|
|
19
19
|
entity.roles << idp
|
20
20
|
Schemas.metadata.validate(Nokogiri::XML(entity.to_s)).must_equal []
|
21
21
|
end
|
22
|
+
|
23
|
+
describe "valid metadata" do
|
24
|
+
let(:entity) { Entity.parse(fixture('identity_provider.xml')) }
|
25
|
+
let(:idp) { entity.roles.first }
|
26
|
+
|
27
|
+
it "should create the single_sign_on_services array" do
|
28
|
+
idp.single_sign_on_services.length.must_equal 3
|
29
|
+
idp.single_sign_on_services.first.location.must_equal 'https://sso.school.edu/idp/profile/Shibboleth/SSO'
|
30
|
+
end
|
31
|
+
|
32
|
+
it "should find the signing certificate" do
|
33
|
+
idp.keys.first.x509.must_match(/MIIE8TCCA9mgAwIBAgIJAITusxON60cKMA0GCSqGSIb3DQEBBQUAMIGrMQswCQYD/)
|
34
|
+
end
|
35
|
+
end
|
22
36
|
end
|
23
37
|
end
|
@@ -13,7 +13,7 @@ module SAML2
|
|
13
13
|
end
|
14
14
|
|
15
15
|
it "should find the signing certificate" do
|
16
|
-
sp.signing_keys.first.x509.must_match
|
16
|
+
sp.signing_keys.first.x509.must_match(/MIIE8TCCA9mgAwIBAgIJAITusxON60cKMA0GCSqGSIb3DQEBBQUAMIGrMQswCQYD/)
|
17
17
|
end
|
18
18
|
|
19
19
|
it "should load the organization" do
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: saml2
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Cody Cutrer
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-04-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: nokogiri
|
@@ -39,7 +39,7 @@ dependencies:
|
|
39
39
|
version: '0.9'
|
40
40
|
- - ">="
|
41
41
|
- !ruby/object:Gem::Version
|
42
|
-
version: 0.9.
|
42
|
+
version: 0.9.3pre
|
43
43
|
type: :runtime
|
44
44
|
prerelease: false
|
45
45
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -49,7 +49,7 @@ dependencies:
|
|
49
49
|
version: '0.9'
|
50
50
|
- - ">="
|
51
51
|
- !ruby/object:Gem::Version
|
52
|
-
version: 0.9.
|
52
|
+
version: 0.9.3pre
|
53
53
|
- !ruby/object:Gem::Dependency
|
54
54
|
name: activesupport
|
55
55
|
requirement: !ruby/object:Gem::Requirement
|
@@ -59,7 +59,7 @@ dependencies:
|
|
59
59
|
version: '3.2'
|
60
60
|
- - "<"
|
61
61
|
- !ruby/object:Gem::Version
|
62
|
-
version: '5.
|
62
|
+
version: '5.1'
|
63
63
|
type: :runtime
|
64
64
|
prerelease: false
|
65
65
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -69,7 +69,7 @@ dependencies:
|
|
69
69
|
version: '3.2'
|
70
70
|
- - "<"
|
71
71
|
- !ruby/object:Gem::Version
|
72
|
-
version: '5.
|
72
|
+
version: '5.1'
|
73
73
|
- !ruby/object:Gem::Dependency
|
74
74
|
name: rake
|
75
75
|
requirement: !ruby/object:Gem::Requirement
|
@@ -142,16 +142,25 @@ files:
|
|
142
142
|
- lib/saml2/sso.rb
|
143
143
|
- lib/saml2/subject.rb
|
144
144
|
- lib/saml2/version.rb
|
145
|
+
- schemas/MetadataExchange.xsd
|
146
|
+
- schemas/oasis-200401-wss-wssecurity-secext-1.0.xsd
|
147
|
+
- schemas/oasis-200401-wss-wssecurity-utility-1.0.xsd
|
145
148
|
- schemas/saml-schema-assertion-2.0.xsd
|
146
149
|
- schemas/saml-schema-metadata-2.0.xsd
|
147
150
|
- schemas/saml-schema-protocol-2.0.xsd
|
151
|
+
- schemas/ws-addr.xsd
|
152
|
+
- schemas/ws-authorization.xsd
|
153
|
+
- schemas/ws-federation.xsd
|
154
|
+
- schemas/ws-securitypolicy-1.2.xsd
|
148
155
|
- schemas/xenc-schema.xsd
|
149
156
|
- schemas/xml.xsd
|
150
157
|
- schemas/xmldsig-core-schema.xsd
|
158
|
+
- spec/fixtures/FederationMetadata.xml
|
151
159
|
- spec/fixtures/authnrequest.xml
|
152
160
|
- spec/fixtures/calculated.txt
|
153
161
|
- spec/fixtures/certificate.pem
|
154
162
|
- spec/fixtures/entities.xml
|
163
|
+
- spec/fixtures/identity_provider.xml
|
155
164
|
- spec/fixtures/privatekey.key
|
156
165
|
- spec/fixtures/response_signed.xml
|
157
166
|
- spec/fixtures/response_with_attribute_signed.xml
|
@@ -187,7 +196,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
187
196
|
version: '0'
|
188
197
|
requirements: []
|
189
198
|
rubyforge_project:
|
190
|
-
rubygems_version: 2.
|
199
|
+
rubygems_version: 2.5.1
|
191
200
|
signing_key:
|
192
201
|
specification_version: 4
|
193
202
|
summary: SAML 2.0 Library
|
@@ -196,6 +205,8 @@ test_files:
|
|
196
205
|
- spec/fixtures/calculated.txt
|
197
206
|
- spec/fixtures/certificate.pem
|
198
207
|
- spec/fixtures/entities.xml
|
208
|
+
- spec/fixtures/FederationMetadata.xml
|
209
|
+
- spec/fixtures/identity_provider.xml
|
199
210
|
- spec/fixtures/privatekey.key
|
200
211
|
- spec/fixtures/response_signed.xml
|
201
212
|
- spec/fixtures/response_with_attribute_signed.xml
|