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 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