Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

feat: defines google.auth.identity_pool.Credentials used for K8s and Azure workloads #617

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

Merged
merged 12 commits into from
Oct 1, 2020
Merged

feat: defines google.auth.identity_pool.Credentials used for K8s and Azure workloads #617

merged 12 commits into from
Oct 1, 2020

Conversation

bojeil-google
Copy link
Contributor

This will subclass the abstract class google.auth.external_account.Credentials and will retrieve subject tokens from URLs (eg Azure Instance Metadata Service) or a file location (K8s KSA tokens).

The current change only covers file-sourced credentials. URL-sourced credentials will be covered in a follow up.

The spec has been extended to support generic formats for google.auth.identity_pool.Credentials (json and text).

  credential_source: {
    // ...
    format?: {
      type: 'text' | 'json';
      subject_token_field_name?: string;
    };
  };

When text format is specified, the raw file content is used as the subject token.
When json format is specified, the file content is parsed as json and the field with key subject_token_field_name is used to retrieve the subject token.

The current implementation deviates from the original design doc in that it separates IdentityPoolCredentials into its separate module google.auth.identity_pool.Credentials instead of google.auth.external_account.IdentityPoolCredentials. This is a better match for the current pattern in the repo.

busunkim96 and others added 12 commits September 2, 2020 14:55
Co-authored-by: Tres Seaver <tseaver@palladion.com>
* chore: updated CHANGELOG.md [ci skip]

* chore: updated setup.cfg [ci skip]

* chore: updated setup.py

Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com>
Migrate signBlob from iam.googleapis.com to iamcredentials.googleapis.com.

This API is deprecated and will be shutdown in one year.

This is used google.auth.iam.Signer.
Added a system_test to sanity check the implementation.
Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com>
* This patch for </issues/501> includes the following fixes:

- The access token is always set to `None`, so the fix involves using (the access) `token` from the saved JSON credentials file.
- For refresh needs, `expiry` also needs to be saved via `to_json()`.
    - DUMP: As `expiry` is a `datetime.datetime` object, serialize to `datetime.isoformat()` in the same [`oauth2client` format](https://github.com/googleapis/oauth2client/blob/master/oauth2client/client.py#L55) for consistency.
    - LOAD: Add code to restore `expiry` back to `datetime.datetime` object when imported.
    - LOAD: If `expiry` was unsaved, automatically set it as expired so refresh takes place.
- Minor `scopes` updates
    - DUMP: Add property for `scopes` so `to_json()` can grab it
    - LOAD: `scopes` may be saved as a string instead of a JSON array (Python list), so ensure it is Sequence[str] when imported.
* feat: asyncio http request logic and asynchronous credentials logic  (#572)

Co-authored-by: Anirudh Baddepudi <43104821+anibadde@users.noreply.github.com>
Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com>
…d Azure workloads

This will subclass the abstract class `google.auth.external_account.Credentials` and will retrieve subject tokens from URLs (eg Azure Instance Metadata Service) or a file location (K8s KSA tokens).

The current change only covers file-sourced credentials. URL-sourced credentials will be covered in a follow up.
@bojeil-google bojeil-google requested a review from a team as a code owner September 29, 2020 22:55
@google-cla
Copy link

google-cla bot commented Sep 29, 2020

We found a Contributor License Agreement for you (the sender of this pull request), but were unable to find agreements for all the commit author(s) or Co-authors. If you authored these, maybe you used a different email address in the git commits than was used to sign the CLA (login here to double check)? If these were authored by someone else, then they will need to sign a CLA as well, and confirm that they're okay with these being contributed to Google.
In order to pass this check, please resolve this problem and then comment @googlebot I fixed it.. If the bot doesn't comment, it means it doesn't think anything has changed.

ℹ️ Googlers: Go here for more info.

@google-cla google-cla bot added the cla: no This human has *not* signed the Contributor License Agreement. label Sep 29, 2020
google/auth/identity_pool.py Show resolved Hide resolved
@busunkim96 busunkim96 added cla: yes This human has signed the Contributor License Agreement. and removed cla: no This human has *not* signed the Contributor License Agreement. labels Oct 1, 2020
@busunkim96 busunkim96 merged commit 1b4ad67 into googleapis:byoid Oct 1, 2020
@busunkim96
Copy link
Contributor

CLA was raising error on commits already in master with a signed CLA.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
cla: yes This human has signed the Contributor License Agreement.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants
Morty Proxy This is a proxified and sanitized view of the page, visit original site.