summaryrefslogtreecommitdiffstats
path: root/contrib/python/google-auth/py3/google/oauth2/id_token.py
diff options
context:
space:
mode:
authorrobot-piglet <[email protected]>2025-04-29 13:13:02 +0300
committerrobot-piglet <[email protected]>2025-04-29 13:30:37 +0300
commit43c48235ff779855489561438e0ba08bd8dfb4fc (patch)
tree38288f51b582424c1fc554aab78a5e27f303d72a /contrib/python/google-auth/py3/google/oauth2/id_token.py
parent46634855c4eebcbf9416afe1bd0448058aa40373 (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.py12
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.",