Skip to main content

Python Client for Google Cloud Auth

Project description

This is a shared codebase for gcloud-aio-auth and gcloud-rest-auth

This library implements an IamClient class, which can be used to interact with GCP public keys and URL sign blobs.

It additionally implements a Token class, which is used for authorizing against Google Cloud. The other gcloud-aio-* package components accept a Token instance as an argument; you can define a single token for all of these components or define one for each. Each component corresponds to a given Google Cloud service and each service requires “scopes”.

Latest PyPI Version (gcloud-aio-auth) Python Version Support (gcloud-aio-auth) Python Version Support (gcloud-rest-auth)

Installation

$ pip install --upgrade gcloud-{aio,rest}-auth

Usage

from gcloud.aio.auth import IamClient

client = IamClient()
pubkeys = await client.list_public_keys()


from gcloud.rest.auth import Token

token = Token()
print(token.get())

Additionally, the Token constructor accepts the following optional arguments:

  • service_file: path to a service account, authorized user file, or any other application credentials. Alternatively, you can pass a file-like object, like an io.StringIO instance, in case your credentials are not stored in a file but in memory. If omitted, will attempt to find one on your path or fallback to generating a token from GCE metadata.

  • session: an aiohttp.ClientSession instance to be used for all requests. If omitted, a default session will be created. If you use the default session, you may be interested in using Token() as a context manager (async with Token(..) as token:) or explicitly calling the Token.close() method to ensure the session is cleaned up appropriately.

  • scopes: an optional list of GCP scopes for which to generate our token. Only valid (and required!) for service account authentication.

CLI

This project can also be used to help you manually authenticate to test GCP routes, eg. we can list our project’s uptime checks with a tool such as curl:

# using default application credentials
curl \
  -H "Authorization: Bearer $(python3 -c 'from gcloud.rest.auth import Token; print(Token().get())')" \
  "https://monitoring.googleapis.com/v3/projects/PROJECT_ID/uptimeCheckConfigs"

# using a service account (make sure to provide a scope!)
export GOOGLE_APPLICATION_CREDENTIALS=/path/to/service.json
curl \
  -H "Authorization: Bearer $(python3 -c 'from gcloud.rest.auth import Token; print(Token(scopes=["'"https://www.googleapis.com/auth/cloud-platform"'"]).get())')" \
  "https://monitoring.googleapis.com/v3/projects/PROJECT_ID/uptimeCheckConfigs"

# using legacy account credentials
export GOOGLE_APPLICATION_CREDENTIALS=~/.config/gcloud/legacy_credentials/EMAIL@DOMAIN.TLD/adc.json
curl \
  -H "Authorization: Bearer $(python3 -c 'from gcloud.rest.auth import Token; print(Token().get())')" \
  "https://monitoring.googleapis.com/v3/projects/PROJECT_ID/uptimeCheckConfigs"

Contributing

Please see our contributing guide.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gcloud-aio-auth-3.8.1.tar.gz (15.1 kB view details)

Uploaded Source

Built Distribution

gcloud_aio_auth-3.8.1-py2.py3-none-any.whl (17.2 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file gcloud-aio-auth-3.8.1.tar.gz.

File metadata

  • Download URL: gcloud-aio-auth-3.8.1.tar.gz
  • Upload date:
  • Size: 15.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.14.0 pkginfo/1.8.2 requests/2.27.1 setuptools/57.5.0 requests-toolbelt/0.9.1 tqdm/4.63.0 CPython/3.9.9

File hashes

Hashes for gcloud-aio-auth-3.8.1.tar.gz
Algorithm Hash digest
SHA256 1c32a9a0cc5bca11460336b58cfc32048a5096a221ae46f788f1cad0718d653d
MD5 1cc2d9d14e9ef9331e1d7b192d519635
BLAKE2b-256 d870c379c2a4eb06b3a3752d0bc57d1d128c8569a38822f076357bd7c4bab619

See more details on using hashes here.

File details

Details for the file gcloud_aio_auth-3.8.1-py2.py3-none-any.whl.

File metadata

  • Download URL: gcloud_aio_auth-3.8.1-py2.py3-none-any.whl
  • Upload date:
  • Size: 17.2 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.14.0 pkginfo/1.8.2 requests/2.27.1 setuptools/57.5.0 requests-toolbelt/0.9.1 tqdm/4.63.0 CPython/3.9.9

File hashes

Hashes for gcloud_aio_auth-3.8.1-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 f5a724d83178f96fe3114e8c33ea6adcf9c1307fd8d0d3adbb6604f546182400
MD5 e7e19c2f7668a379311a5d4aebb7b990
BLAKE2b-256 74dc6e30047f46598bba6b0be0a918c839957b86b801e8f9f441c81353f5ce49

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page