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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9ca129d26799f295938146285368b1e7fa5ae6b1
4
- data.tar.gz: 573f817a1663f6958ef0a0560cb6d6440e62c513
3
+ metadata.gz: 42384f862714ea89a02cec943c4daa7c97e32e1f
4
+ data.tar.gz: 345d289fe0308256b7ee8d279f16cfa75ff64a1e
5
5
  SHA512:
6
- metadata.gz: 756b134ae0e5601b7b89a8e8157bfe9440652bb45c7e07eb6eb30387b0780513bce682740938bf8a4c0dedcf6e0137628e252ab5694fecc97a1078d00d2322b5
7
- data.tar.gz: a9c11445ff322a445beaf4fdbcb93f1cec2bdea0a3686cf05b30ac43ebd7ff1287c2116e4e755889d8b882641a06d4b1754aea96784b76d66b062062d8b9a1e8
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
- ldap = Net::LDAP.new hosts: BPHOSTS, base: BPBASE, :encryption => { :method => :simple_tls, :tls_options => { :verify_mode => OpenSSL::SSL::VERIFY_NONE } }
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
- bg = Net::LDAP.new hosts: BPHOSTS, base: BGBASE, :encryption => { :method => :simple_tls, :tls_options => { :verify_mode => OpenSSL::SSL::VERIFY_NONE } }
87
- bgf = Net::LDAP::Filter.eq('uniquemember', dn)
98
+ filter = Net::LDAP::Filter.eq('uniquemember', dn)
88
99
  begin
89
- bgres = bg.search(base: BGBASE, filter: bgf, attributes: ['cn'])
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
@@ -1,3 +1,3 @@
1
1
  module Blueauth
2
- VERSION = "0.0.12"
2
+ VERSION = "0.0.13"
3
3
  end
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.12
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: 2017-06-08 00:00:00.000000000 Z
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.6.7
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