blueauth 0.0.12 → 0.0.13
Sign up to get free protection for your applications and to get access to all the features.
- 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
|