Reference documentation and code samples for the googleauth class Google::Auth::ExternalAccount::PluggableAuthCredentials.
This module handles the retrieval of credentials from Google Cloud by utilizing the any 3PI
provider then exchanging the credentials for a short-lived Google Cloud access token.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-09-09 UTC."],[],[],null,["# googleauth - Class Google::Auth::ExternalAccount::PluggableAuthCredentials (v1.15.0)\n\nVersion latestkeyboard_arrow_down\n\n- [1.15.0 (latest)](/ruby/docs/reference/googleauth/latest/Google-Auth-ExternalAccount-PluggableAuthCredentials)\n- [1.14.0](/ruby/docs/reference/googleauth/1.14.0/Google-Auth-ExternalAccount-PluggableAuthCredentials)\n- [1.13.1](/ruby/docs/reference/googleauth/1.13.1/Google-Auth-ExternalAccount-PluggableAuthCredentials)\n- [1.12.2](/ruby/docs/reference/googleauth/1.12.2/Google-Auth-ExternalAccount-PluggableAuthCredentials) \nReference documentation and code samples for the googleauth class Google::Auth::ExternalAccount::PluggableAuthCredentials.\n\nThis module handles the retrieval of credentials from Google Cloud by utilizing the any 3PI\nprovider then exchanging the credentials for a short-lived Google Cloud access token. \n\nInherits\n--------\n\n- Object \n\nExtended By\n-----------\n\n- [Google::Auth::CredentialsLoader](./Google-Auth-CredentialsLoader) \n\nIncludes\n--------\n\n- [Google::Auth::ExternalAccount::BaseCredentials](./Google-Auth-ExternalAccount-BaseCredentials)\n- [Google::Auth::ExternalAccount::ExternalAccountUtils](./Google-Auth-ExternalAccount-ExternalAccountUtils)\n\nMethods\n-------\n\n### #client_id\n\n def client_id()\n\nWill always be nil, but method still gets used.\n\n### #initialize\n\n def initialize(options = {}) -\u003e PluggableAuthCredentials\n\nInitialize from options map. \n**Parameter**\n\n- **options** (Hash) --- Configuration options \n**Returns**\n\n- ([PluggableAuthCredentials](./Google-Auth-ExternalAccount-PluggableAuthCredentials)) --- a new instance of PluggableAuthCredentials \n**Raises**\n\n- ([Google::Auth::InitializationError](./Google-Auth-InitializationError)) --- If executable source, command is missing, or timeout is invalid\n\n### #retrieve_subject_token!\n\n def retrieve_subject_token!() -\u003e String\n\nRetrieves the subject token using the credential_source object. \n**Returns**\n\n- (String) --- The retrieved subject token \n**Raises**\n\n- ([Google::Auth::CredentialsError](./Google-Auth-CredentialsError)) --- If executables are not allowed, if token retrieval fails, or if the token is invalid\n\nConstants\n---------\n\n### ENABLE_PLUGGABLE_ENV\n\n**value:** \"GOOGLE_EXTERNAL_ACCOUNT_ALLOW_EXECUTABLES\".freeze \nconstant for pluggable auth enablement in environment variable.\n\n### EXECUTABLE_SUPPORTED_MAX_VERSION\n\n**value:**1\n\n### EXECUTABLE_TIMEOUT_MILLIS_DEFAULT\n\n**value:**30 \\* 1000\n\n### EXECUTABLE_TIMEOUT_MILLIS_LOWER_BOUND\n\n**value:**5 \\* 1000\n\n### EXECUTABLE_TIMEOUT_MILLIS_UPPER_BOUND\n\n**value:**120 \\* 1000\n\n### ID_TOKEN_TYPE\n\n**value:**\\[\"urn:ietf:params:oauth:token-type:jwt\", \"urn:ietf:params:oauth:token-type:id_token\"\\].freeze"]]