...

Package impersonate

import "golang.org/x/oauth2/google/internal/impersonate"
Overview
Index

Overview ▾

type ImpersonateTokenSource

ImpersonateTokenSource uses a source credential, stored in Ts, to request an access token to the provided URL. Scopes can be defined when the access token is requested.

type ImpersonateTokenSource struct {
    // Ctx is the execution context of the impersonation process
    // used to perform http call to the URL. Required
    Ctx context.Context
    // Ts is the source credential used to generate a token on the
    // impersonated service account. Required.
    Ts oauth2.TokenSource

    // URL is the endpoint to call to generate a token
    // on behalf the service account. Required.
    URL string
    // Scopes that the impersonated credential should have. Required.
    Scopes []string
    // Delegates are the service account email addresses in a delegation chain.
    // Each service account must be granted roles/iam.serviceAccountTokenCreator
    // on the next service account in the chain. Optional.
    Delegates []string
    // TokenLifetimeSeconds is the number of seconds the impersonation token will
    // be valid for.
    TokenLifetimeSeconds int
}

func (ImpersonateTokenSource) Token

func (its ImpersonateTokenSource) Token() (*oauth2.Token, error)

Token performs the exchange to get a temporary service account token to allow access to GCP.