Method: Google::Auth.get_application_default

Defined in:
lib/googleauth/application_default.rb

.get_application_default(scope = nil, options = {}) ⇒ Object

Obtains the default credentials implementation to use in this environment.

Use this to obtain the Application Default Credentials for accessing Google APIs. Application Default Credentials are described in detail at https://cloud.google.com/docs/authentication/production.

If supplied, scope is used to create the credentials instance, when it can be applied. E.g, on google compute engine and for user credentials the scope is ignored.

Parameters:

  • scope (string|array|nil) (defaults to: nil)

    the scope(s) to access

  • options (Hash) (defaults to: {})

    Connection options. These may be used to configure the Faraday::Connection used for outgoing HTTP requests. For example, if a connection proxy must be used in the current network, you may provide a connection with with the needed proxy options. The following keys are recognized:

    • :default_connection The connection object to use for token refresh requests.
    • :connection_builder A Proc that creates and returns a connection to use for token refresh requests.
    • :connection The connection to use to determine whether GCE metadata credentials are available.

Raises:



55
56
57
58
59
60
61
62
# File 'lib/googleauth/application_default.rb', line 55

def get_application_default scope = nil, options = {}
  creds = DefaultCredentials.from_env(scope, options) ||
          DefaultCredentials.from_well_known_path(scope, options) ||
          DefaultCredentials.from_system_default_path(scope, options)
  return creds unless creds.nil?
  raise InitializationError, NOT_FOUND_ERROR unless GCECredentials.on_gce? options
  GCECredentials.new options.merge(scope: scope)
end