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

remove WhoAmI callers from client #19580

Open
tgross opened this issue Jan 2, 2024 · 1 comment
Open

remove WhoAmI callers from client #19580

tgross opened this issue Jan 2, 2024 · 1 comment

Comments

@tgross
Copy link
Member

tgross commented Jan 2, 2024

In Nomad 1.5.0 (542b23e) we started using the ACL.WhoAmI RPC method from the client to allow clients to check Workload Identity tokens and not just ACL tokens. In Nomad 1.7.0, we broke this by accidentally changing the wire format of the WhoAmI RPC response. See #19555. We've fixed that in #19578, but there's a better long-term solution:

  • Remove the ACL.WhoAmI callers from the client
  • Have the client check WI tokens using the server public keys
  • Un-deprecated ACL.ResolveToken. For non-WI tokens, have the client check with the server via ACL.ResolveToken

We'll want to keep the existing ACL.WhoAmI method for backwards compatibility, but it might also be a good idea to provide a HTTP endpoint for it to make it a useful debugging tool.

@tgross
Copy link
Member Author

tgross commented Jan 3, 2024

@schmichael pointed out in a sidebar discussion that we probably want to do this sooner rather than later, as the current implementation would make it easy to incorrectly change the code at https://github.com/hashicorp/nomad/blob/v1.7.2/nomad/structs/structs.go#L547 to check the claim expiration, which would be nil on the client.

@tgross tgross modified the milestones: 1.7.x, 1.8.0 Feb 12, 2024
@tgross tgross removed this from the 1.8.0 milestone May 16, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants