diff options
author | robot-piglet <[email protected]> | 2025-04-29 13:13:02 +0300 |
---|---|---|
committer | robot-piglet <[email protected]> | 2025-04-29 13:30:37 +0300 |
commit | 43c48235ff779855489561438e0ba08bd8dfb4fc (patch) | |
tree | 38288f51b582424c1fc554aab78a5e27f303d72a /contrib/python/google-auth/py3/google/oauth2/id_token.py | |
parent | 46634855c4eebcbf9416afe1bd0448058aa40373 (diff) |
Intermediate changes
commit_hash:8152cafb3d167774615b4df5bf4470b6269e88a7
Diffstat (limited to 'contrib/python/google-auth/py3/google/oauth2/id_token.py')
-rw-r--r-- | contrib/python/google-auth/py3/google/oauth2/id_token.py | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/contrib/python/google-auth/py3/google/oauth2/id_token.py b/contrib/python/google-auth/py3/google/oauth2/id_token.py index b68ab6b303a..a6c51ce6381 100644 --- a/contrib/python/google-auth/py3/google/oauth2/id_token.py +++ b/contrib/python/google-auth/py3/google/oauth2/id_token.py @@ -284,6 +284,18 @@ def fetch_id_token_credentials(audience, request=None): return service_account.IDTokenCredentials.from_service_account_info( info, target_audience=audience ) + elif info.get("type") == "impersonated_service_account": + from google.auth import impersonated_credentials + + target_credentials = impersonated_credentials.Credentials.from_impersonated_service_account_info( + info + ) + + return impersonated_credentials.IDTokenCredentials( + target_credentials=target_credentials, + target_audience=audience, + include_email=True, + ) except ValueError as caught_exc: new_exc = exceptions.DefaultCredentialsError( "GOOGLE_APPLICATION_CREDENTIALS is not valid service account credentials.", |