Load a service account token
Arguments
- scopes
A character vector of scopes to request. Pick from those listed at https://developers.google.com/identity/protocols/oauth2/scopes.
For certain token flows, the
"https://www.googleapis.com/auth/userinfo.email"
scope is unconditionally included. This grants permission to retrieve the email address associated with a token; gargle uses this to index cached OAuth tokens. This grants no permission to view or send email and is generally considered a low-value scope.- path
JSON identifying the service account, in one of the forms supported for the
txt
argument ofjsonlite::fromJSON()
(typically, a file path or JSON string).- ...
Additional arguments passed to all credential functions.
- subject
An optional subject claim. Specify this if you wish to use the service account represented by
path
to impersonate thesubject
, who is a normal user. Before this can work, an administrator must grant the service account domain-wide authority. Identify the user to impersonate via their email, e.g.subject = "user@example.com"
. Note that gargle automatically adds the non-sensitive"https://www.googleapis.com/auth/userinfo.email"
scope, so this scope must be enabled for the service account, along with any otherscopes
being requested.
Value
An httr::TokenServiceAccount
or NULL
.
Details
Note that fetching a token for a service account requires a
reasonably accurate system clock. For more information, see the
vignette("how-gargle-gets-tokens")
.
See also
Additional reading on delegation of domain-wide authority:
Other credential functions:
credentials_app_default()
,
credentials_byo_oauth2()
,
credentials_external_account()
,
credentials_gce()
,
credentials_user_oauth2()
,
token_fetch()