Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: add support for workforce pool credentials #868

Merged
merged 2 commits into from Sep 21, 2021
Merged

feat: add support for workforce pool credentials #868

merged 2 commits into from Sep 21, 2021

Commits on Sep 21, 2021

  1. feat: add support for workforce pool credentials

    Workforce pools (external account credentials for non-Google users) are
    organization-level resources which means that issued workforce pool tokens
    will not have any client project ID on token exchange as currently designed.
    
    "To use a Google API, the client must identify the application to the server.
    If the API requires authentication, the client must also identify the principal
    running the application."
    
    The application here is the client project. The token will identify the user
    principal but not the application. This will result in APIs rejecting requests
    authenticated with these tokens.
    
    Note that passing a `x-goog-user-project` override header on API request is
    still not sufficient. The token is still expected to have a client project.
    
    As a result, we have extended the spec to support an additional
    `workforce_pool_user_project` for these credentials (workforce pools) which will
    be passed when exchanging an external token for a Google Access token. After the
    exchange, the issued access token will use the supplied project as the client
    project. The underlying principal must still have `serviceusage.services.use`
    IAM permission to use the project for billing/quota.
    
    This field is not needed for flows with basic client authentication (e.g. client
    ID is supplied). The client ID is sufficient to determine the client project and
    any additionally supplied `workforce_pool_user_project` value will be ignored.
    
    Note that this feature is not usable yet publicly.
    
    The additional field has been added to the abstract external account credentials
    `google.auth.external_account.Credentials` and the subclass
    `google.auth.identity_pool.Credentials`.
    bojeil-google committed Sep 21, 2021
    Configuration menu
    Copy the full SHA
    cccbf2f View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    67f29e4 View commit details
    Browse the repository at this point in the history