blueauth 0.0.12 → 0.0.13
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/blueauth.rb +19 -8
- data/lib/blueauth/certificates.rb +50 -0
- data/lib/blueauth/version.rb +1 -1
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 42384f862714ea89a02cec943c4daa7c97e32e1f
|
4
|
+
data.tar.gz: 345d289fe0308256b7ee8d279f16cfa75ff64a1e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bf77d5ec6f4288a1a073ba05c35723ec6b2780a8c365df5bd906d9f4c2f07ad255f2a98656b639b87aee3220a220dd899acb8dd1b52101942b073097af2e90ef
|
7
|
+
data.tar.gz: 133e7073959ffc71012cabc89c79b80345cf17c659f9e789fb98e1852b45742062c9f967ba3c7c486edc37f64e44cbe32c7c686cd8c8fea2e8ccf7d9f38c2902
|
data/lib/blueauth.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
require 'blueauth/version'
|
2
2
|
require 'blueauth/error'
|
3
|
+
require 'blueauth/certificates'
|
3
4
|
require 'net-ldap'
|
4
5
|
|
5
6
|
module Blueauth
|
@@ -13,15 +14,27 @@ module Blueauth
|
|
13
14
|
Net::LDAP::LDAPControls::PAGED_RESULTS = FALSE
|
14
15
|
$VERBOSE = old_verbose
|
15
16
|
|
17
|
+
@cert_store = OpenSSL::X509::Store.new
|
18
|
+
@cert_store.add_cert OpenSSL::X509::Certificate.new(NEW_CERT)
|
19
|
+
@cert_store.add_cert OpenSSL::X509::Certificate.new(OLD_CERT)
|
20
|
+
|
21
|
+
@ldap = Net::LDAP.new hosts: BPHOSTS, encryption: {
|
22
|
+
method: :simple_tls,
|
23
|
+
tls_options: {
|
24
|
+
ssl_version: :TLSv1_2,
|
25
|
+
verify_mode: OpenSSL::SSL::VERIFY_PEER,
|
26
|
+
cert_store: @cert_store
|
27
|
+
}
|
28
|
+
}
|
29
|
+
|
16
30
|
# using this method a user can be authenticated
|
17
31
|
# Intraned ID, password are mandatory
|
18
32
|
def self.authenticate(id, password)
|
19
|
-
ldap = Net::LDAP.new hosts: BPHOSTS, base: BPBASE, :encryption => { :method => :simple_tls, :tls_options => { :verify_mode => OpenSSL::SSL::VERIFY_NONE } }
|
20
33
|
user = search id.strip
|
21
34
|
unless user.nil?
|
22
|
-
ldap.auth user[:dn], password.strip
|
35
|
+
@ldap.auth user[:dn], password.strip
|
23
36
|
begin
|
24
|
-
auth = ldap.bind
|
37
|
+
auth = @ldap.bind
|
25
38
|
rescue => e
|
26
39
|
raise Blueauth::BlueError, "BluePages Bind issue -> #{e.message}"
|
27
40
|
end
|
@@ -66,8 +79,7 @@ module Blueauth
|
|
66
79
|
end
|
67
80
|
filter = Net::LDAP::Filter.eq(searchfield, id) & Net::LDAP::Filter.eq('objectclass', "ibmPerson")
|
68
81
|
begin
|
69
|
-
|
70
|
-
user_array = ldap.search(base: BPBASE, filter: filter, size: 1)
|
82
|
+
user_array = @ldap.search(base: BPBASE, filter: filter, size: 1)
|
71
83
|
rescue => e
|
72
84
|
raise Blueauth::BlueError, "BluePages Search issue -> #{e.message}"
|
73
85
|
end
|
@@ -83,10 +95,9 @@ module Blueauth
|
|
83
95
|
|
84
96
|
def self.bluegroups(dn)
|
85
97
|
result = []
|
86
|
-
|
87
|
-
bgf = Net::LDAP::Filter.eq('uniquemember', dn)
|
98
|
+
filter = Net::LDAP::Filter.eq('uniquemember', dn)
|
88
99
|
begin
|
89
|
-
bgres =
|
100
|
+
bgres = @ldap.search(base: BGBASE, filter: filter, attributes: ['cn'])
|
90
101
|
bgres.each {|g| result << g.cn.first}
|
91
102
|
rescue => e
|
92
103
|
raise Blueauth::BlueError, "BlueGroup Search issue -> #{e.message}"
|
@@ -0,0 +1,50 @@
|
|
1
|
+
module Blueauth
|
2
|
+
|
3
|
+
# Having only the root signer certificate (DigiCert Global Root G2) in the TLS client truststore is sufficient.
|
4
|
+
# https://w3-connections.ibm.com/wikis/home?lang=en-us#!/wiki/W1f849f7604cc_43a5_a6d9_2ad1fcbc532e/page/Digital%20Certificate%20FAQs
|
5
|
+
# https://knowledge.geotrust.com/support/knowledge-base/index?page=content&id=INFO1421#lightbox-06
|
6
|
+
NEW_CERT = "-----BEGIN CERTIFICATE-----
|
7
|
+
MIIDjjCCAnagAwIBAgIQAzrx5qcRqaC7KGSxHQn65TANBgkqhkiG9w0BAQsFADBh
|
8
|
+
MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
|
9
|
+
d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBH
|
10
|
+
MjAeFw0xMzA4MDExMjAwMDBaFw0zODAxMTUxMjAwMDBaMGExCzAJBgNVBAYTAlVT
|
11
|
+
MRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5j
|
12
|
+
b20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IEcyMIIBIjANBgkqhkiG
|
13
|
+
9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuzfNNNx7a8myaJCtSnX/RrohCgiN9RlUyfuI
|
14
|
+
2/Ou8jqJkTx65qsGGmvPrC3oXgkkRLpimn7Wo6h+4FR1IAWsULecYxpsMNzaHxmx
|
15
|
+
1x7e/dfgy5SDN67sH0NO3Xss0r0upS/kqbitOtSZpLYl6ZtrAGCSYP9PIUkY92eQ
|
16
|
+
q2EGnI/yuum06ZIya7XzV+hdG82MHauVBJVJ8zUtluNJbd134/tJS7SsVQepj5Wz
|
17
|
+
tCO7TG1F8PapspUwtP1MVYwnSlcUfIKdzXOS0xZKBgyMUNGPHgm+F6HmIcr9g+UQ
|
18
|
+
vIOlCsRnKPZzFBQ9RnbDhxSJITRNrw9FDKZJobq7nMWxM4MphQIDAQABo0IwQDAP
|
19
|
+
BgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAdBgNVHQ4EFgQUTiJUIBiV
|
20
|
+
5uNu5g/6+rkS7QYXjzkwDQYJKoZIhvcNAQELBQADggEBAGBnKJRvDkhj6zHd6mcY
|
21
|
+
1Yl9PMWLSn/pvtsrF9+wX3N3KjITOYFnQoQj8kVnNeyIv/iPsGEMNKSuIEyExtv4
|
22
|
+
NeF22d+mQrvHRAiGfzZ0JFrabA0UWTW98kndth/Jsw1HKj2ZL7tcu7XUIOGZX1NG
|
23
|
+
Fdtom/DzMNU+MeKNhJ7jitralj41E6Vf8PlwUHBHQRFXGU7Aj64GxJUTFy8bJZ91
|
24
|
+
8rGOmaFvE7FBcf6IKshPECBV1/MUReXgRPTqh5Uykw7+U0b6LJ3/iyK5S9kJRaTe
|
25
|
+
pLiaWN0bfVKfjllDiIGknibVb63dDcY3fe0Dkhvld1927jyNxF1WW6LZZm6zNTfl
|
26
|
+
MrY=
|
27
|
+
-----END CERTIFICATE-----"
|
28
|
+
|
29
|
+
# The root signer certificate (Equifax) in the current certificate chain will also expire on August 22, 2018.
|
30
|
+
# https://knowledge.geotrust.com/support/knowledge-base/index?page=content&id=INFO4668
|
31
|
+
OLD_CERT = "-----BEGIN CERTIFICATE-----
|
32
|
+
MIIDIDCCAomgAwIBAgIENd70zzANBgkqhkiG9w0BAQUFADBOMQswCQYDVQQGEwJV
|
33
|
+
UzEQMA4GA1UEChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2Vy
|
34
|
+
dGlmaWNhdGUgQXV0aG9yaXR5MB4XDTk4MDgyMjE2NDE1MVoXDTE4MDgyMjE2NDE1
|
35
|
+
MVowTjELMAkGA1UEBhMCVVMxEDAOBgNVBAoTB0VxdWlmYXgxLTArBgNVBAsTJEVx
|
36
|
+
dWlmYXggU2VjdXJlIENlcnRpZmljYXRlIEF1dGhvcml0eTCBnzANBgkqhkiG9w0B
|
37
|
+
AQEFAAOBjQAwgYkCgYEAwV2xWGcIYu6gmi0fCG2RFGiYCh7+2gRvE4RiIcPRfM6f
|
38
|
+
BeC4AfBONOziipUEZKzxa1NfBbPLZ4C/QgKO/t0BCezhABRP/PvwDN1Dulsr4R+A
|
39
|
+
cJkVV5MW8Q+XarfCaCMczE1ZMKxRHjuvK9buY0V7xdlfUNLjUA86iOe/FP3gx7kC
|
40
|
+
AwEAAaOCAQkwggEFMHAGA1UdHwRpMGcwZaBjoGGkXzBdMQswCQYDVQQGEwJVUzEQ
|
41
|
+
MA4GA1UEChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2VydGlm
|
42
|
+
aWNhdGUgQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMBoGA1UdEAQTMBGBDzIwMTgw
|
43
|
+
ODIyMTY0MTUxWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAUSOZo+SvSspXXR9gj
|
44
|
+
IBBPM5iQn9QwHQYDVR0OBBYEFEjmaPkr0rKV10fYIyAQTzOYkJ/UMAwGA1UdEwQF
|
45
|
+
MAMBAf8wGgYJKoZIhvZ9B0EABA0wCxsFVjMuMGMDAgbAMA0GCSqGSIb3DQEBBQUA
|
46
|
+
A4GBAFjOKer89961zgK5F7WF0bnj4JXMJTENAKaSbn+2kmOeUJXRmm/kEd5jhW6Y
|
47
|
+
7qj/WsjTVbJmcVfewCHrPSqnI0kBBIZCe/zuf6IWUrVnZ9NA2zsmWLIodz2uFHdh
|
48
|
+
1voqZiegDfqnc1zqcPGUIWVEX/r87yloqaKHee9570+sB3c4
|
49
|
+
-----END CERTIFICATE-----"
|
50
|
+
end
|
data/lib/blueauth/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: blueauth
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.13
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- zoltan-izso
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2018-01-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: net-ldap
|
@@ -85,6 +85,7 @@ files:
|
|
85
85
|
- bin/setup
|
86
86
|
- blueauth.gemspec
|
87
87
|
- lib/blueauth.rb
|
88
|
+
- lib/blueauth/certificates.rb
|
88
89
|
- lib/blueauth/error.rb
|
89
90
|
- lib/blueauth/version.rb
|
90
91
|
homepage:
|
@@ -108,7 +109,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
108
109
|
version: '0'
|
109
110
|
requirements: []
|
110
111
|
rubyforge_project:
|
111
|
-
rubygems_version: 2.
|
112
|
+
rubygems_version: 2.5.2
|
112
113
|
signing_key:
|
113
114
|
specification_version: 4
|
114
115
|
summary: Bluepages Authentication for IBMers within IBM's Intranet
|