oneaws 0.1.2 → 0.2.0

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
  SHA256:
3
- metadata.gz: 3b5cdbbf6859ec90de78c5452beeb47d7b7f55bbaaabfdedcd17db81e2c9f47b
4
- data.tar.gz: a05a3d7470c4fe913c52568a820f0acffa551609c77f336d0194c7e2e788e325
3
+ metadata.gz: 4246492bb2bb3db3d687669b230897b097f2962c381822b7bbc5acd194d3af4b
4
+ data.tar.gz: 3e0a5e9de75af06e83671bc1bf89133ee6fdef8f68a367f7c520a0a9b89cfed2
5
5
  SHA512:
6
- metadata.gz: 854fad5d4bd924fb013aace3d1ed0efeac8a225cde6210851f0abebee2eda0dfb643fb6570af33c5de53a694de9f848488d838d6fe29b5c0c540516475f6551c
7
- data.tar.gz: b430d35a80808e8fba8ae98e87192bc2aa170dafbe27753df4343ca9f05ee3c784053770f922e7ed9b5f26e4b9ad010dde4caa10fa7aaa5f488243d050feb6d4
6
+ metadata.gz: 76c21fcd42010ad553aa036898f3b629f920409713dd494a02e18683794924c3d5989f03ae1f8243fb5b794d8d238945646915c9e5cc6d4d555041baeb1f173c
7
+ data.tar.gz: 3b7dba5bd0457b20273ab25f56f9ca3ec78b7ef4a0abe1ec8385ce801cc2ad378e95ed2c4edc7161d5929135172b8f522902c3b497a47985a5a31be03725198f
data/lib/oneaws/cli.rb CHANGED
@@ -22,7 +22,7 @@ module Oneaws
22
22
  credential = client.issue_credential(params)
23
23
 
24
24
  if options["update_aws_credentials"]
25
- credential_file = File.expand_path("~/.aws/credentials")
25
+ credential_file = File.expand_path(find_credentials)
26
26
  unless inifile = IniFile.load(credential_file)
27
27
  FileUtils.mkdir_p(File.dirname(credential_file))
28
28
  inifile = IniFile.new
@@ -51,5 +51,21 @@ module Oneaws
51
51
  EOS
52
52
  end
53
53
  end
54
+
55
+ private
56
+
57
+ # AWS の credential を以下の順番で存在チェックをする
58
+ # 1. ~/.aws/credentials
59
+ # 2. ~/.config/aws/credentials
60
+ # 存在しない場合は順番1つ目のものを用いる
61
+ def find_credentials
62
+ credentials = ["~/.aws/credentials", "~/.config/aws/credentials"]
63
+ credential = credentials.find{|c| File.exists? File.expand_path(c) }
64
+ if credential
65
+ credential
66
+ else
67
+ credentials.first
68
+ end
69
+ end
54
70
  end
55
71
  end
data/lib/oneaws/client.rb CHANGED
@@ -1,5 +1,6 @@
1
1
  require 'onelogin'
2
2
  require 'aws-sdk-core'
3
+ require 'io/console'
3
4
 
4
5
  module Oneaws
5
6
  class Client
@@ -32,13 +33,23 @@ module Oneaws
32
33
  mfa = response.mfa
33
34
 
34
35
  # sent push notification to OneLogin Protect
35
- mfa_device = mfa.devices.select{|device| device.type == "OneLogin Protect"}&.first
36
+ mfa_device = mfa.devices.first
36
37
 
37
38
  if mfa_device.nil?
38
- raise MfaDeviceNotFoundError.new("OneLogin Protect device not found.")
39
+ raise MfaDeviceNotFoundError.new("MFA device not found.")
39
40
  end
40
41
 
41
- response = @onelogin.get_saml_assertion_verifying(app_id, mfa_device.id, mfa.state_token, nil, nil, false)
42
+ device_types_that_do_not_require_token = [
43
+ "OneLogin Protect"
44
+ ]
45
+
46
+ otp_token = unless device_types_that_do_not_require_token.include?(mfa_device.type)
47
+ print "input OTP of #{mfa_device.type}: "
48
+ STDIN.noecho(&:gets)
49
+ end
50
+
51
+ response = @onelogin.get_saml_assertion_verifying(app_id, mfa_device.id, mfa.state_token, otp_token, nil, false)
52
+
42
53
  if response.nil?
43
54
  raise SamlRequestError.new("#{@onelogin.error} #{@onelogin.error_description}")
44
55
  end
@@ -1,3 +1,3 @@
1
1
  module Oneaws
2
- VERSION = "0.1.2"
2
+ VERSION = "0.2.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: oneaws
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yuki Koya
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-07-15 00:00:00.000000000 Z
11
+ date: 2023-01-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor
@@ -93,7 +93,7 @@ metadata:
93
93
  homepage_uri: https://github.com/pepabo/oneaws
94
94
  source_code_uri: https://github.com/pepabo/oneaws
95
95
  changelog_uri: https://github.com/pepabo/oneaws
96
- post_install_message:
96
+ post_install_message:
97
97
  rdoc_options: []
98
98
  require_paths:
99
99
  - lib
@@ -108,8 +108,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
108
108
  - !ruby/object:Gem::Version
109
109
  version: '0'
110
110
  requirements: []
111
- rubygems_version: 3.1.2
112
- signing_key:
111
+ rubygems_version: 3.3.26
112
+ signing_key:
113
113
  specification_version: 4
114
114
  summary: Issue temporary credentials using OneLogin and AWS STS.
115
115
  test_files: []