Class: LogStash::Outputs::MicrosoftSentinelOutputInternal::LogAnalyticsMiTokenProvider

Inherits:
Object
  • Object
show all
Defined in:
lib/logstash/sentinel_la/logAnalyticsMiTokenProvider.rb

Instance Method Summary collapse

Constructor Details

#initialize(logstashLoganalyticsConfiguration) ⇒ LogAnalyticsMiTokenProvider



11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/logstash/sentinel_la/logAnalyticsMiTokenProvider.rb', line 11

def initialize (logstashLoganalyticsConfiguration)
  scope = CGI.escape("#{logstashLoganalyticsConfiguration.get_monitor_endpoint}")
  @token_request_uri = sprintf("http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=%s", scope)
  # https://learn.microsoft.com/en-us/entra/identity/managed-identities-azure-resources/how-to-use-vm-token

  @token_state = {
    :access_token => nil,
    :expiry_time => nil,
    :token_details_mutex => Mutex.new,
  }
  @logger = logstashLoganalyticsConfiguration.logger
  @logstashLoganalyticsConfiguration = logstashLoganalyticsConfiguration
end

Instance Method Details

#get_aad_token_bearerObject



27
28
29
30
31
32
33
34
# File 'lib/logstash/sentinel_la/logAnalyticsMiTokenProvider.rb', line 27

def get_aad_token_bearer()
  @token_state[:token_details_mutex].synchronize do
    if is_saved_token_need_refresh()
      refresh_saved_token()
    end
    return @token_state[:access_token]
  end
end