-
Notifications
You must be signed in to change notification settings - Fork 345
feat: allow scopes for self signed jwt #776
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
Conversation
| elif audience: | ||
| self._jwt_credentials = jwt.Credentials.from_signing_credentials( | ||
| self, audience | ||
| ) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think the way google-api-core is written it will always pass through an audience. https://github.com/googleapis/python-api-core/blob/155da5e18cc2fdcfa57de6f956b7d078e79cd4b7/google/api_core/grpc_helpers.py#L249-L251 and the elif self._default_scopes case will never be reached.
Is it necessary to distinguish between the "default" audience and a user defined audience? It looks like Cody asked a question about this in the doc as well.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think it is fine that self._default_scopes is never reached. We can just leave it here for logic completeness.
We don't need to distinguish a default audience and a user defined audience. If the user doesn't provide the scope but provides the audience, then they are responsible that the audience is correct.
This doc implements https://google.aip.dev/auth/4111. Internal doc: go/yoshi-self-signed-jwt-phase-2.
The main feature here is now we can use
scopeclaim in self signed JWT.This PR does the following 2 things:
(1) Add
always_use_jwt_accessproperty to service account credentials to allow opt-in for the feature.(2) If
always_use_jwt_accessis True, then apply the following logic. IfalwaysUseJwtAccessis False, the logic is the same as before; if True, then we can always use self signed jwt with scopes or audience.This PR has been tested with python-kms, googleapis/python-kms#122
The follow up PR in python microgenerator is: googleapis/gapic-generator-python#920