class Vault

Wrapper class for ::Azure::KeyVault::Profiles::Latest::Mgmt::Client allowing custom configuration, for example, defining additional settings for the ::MsRestAzure::ApplicationTokenProvider.

Constants

AUTH_ENDPOINT
RESOURCE_ENDPOINT

Public Class Methods

client(vault_name, credentials) click to toggle source
# File lib/train/transports/clients/azure/vault.rb, line 9
def self.client(vault_name, credentials)
  raise ::Train::UserError, "Vault Name cannot be nil" if vault_name.nil?

  credentials[:credentials] = ::MsRest::TokenCredentials.new(provider(credentials))
  credentials[:base_url] = api_endpoint(vault_name)

  ::Azure::KeyVault::Profiles::Latest::Mgmt::Client.new(credentials)
end

Private Class Methods

api_endpoint(vault_name) click to toggle source
# File lib/train/transports/clients/azure/vault.rb, line 27
def self.api_endpoint(vault_name)
  "https://#{vault_name}#{MsRestAzure::AzureEnvironments::AzureCloud.key_vault_dns_suffix}"
end
provider(credentials) click to toggle source
# File lib/train/transports/clients/azure/vault.rb, line 18
def self.provider(credentials)
  ::MsRestAzure::ApplicationTokenProvider.new(
    credentials[:tenant_id],
    credentials[:client_id],
    credentials[:client_secret],
    settings
  )
end
settings() click to toggle source
# File lib/train/transports/clients/azure/vault.rb, line 31
def self.settings
  client_settings = MsRestAzure::ActiveDirectoryServiceSettings.get_azure_settings
  client_settings.authentication_endpoint = AUTH_ENDPOINT
  client_settings.token_audience = RESOURCE_ENDPOINT
  client_settings
end