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

Unified Auth #38

Open
ric-evans opened this issue Mar 2, 2022 · 2 comments
Open

Unified Auth #38

ric-evans opened this issue Mar 2, 2022 · 2 comments
Assignees
Labels
enhancement New feature or request

Comments

@ric-evans
Copy link
Contributor

ric-evans commented Mar 2, 2022

It would be nice to have some way of generating auth strings (tokens) for clients, which is agnostic of the specific backend. However, this (more than likely) may not be possible as the backend may dictate the token standard. See "Open Questions" below.

First, implement out-of-the-box auth for the rest of the implementations: https://github.com/WIPACrepo/MQClient-GCP, https://github.com/WIPACrepo/MQClient-NATS, and https://github.com/WIPACrepo/MQClient-RabbitMQ

Open Questions

  • Is there an already-unified token standard? Probably not.
  • Is it fine for the spawner process to be cognizant of its child's chosen backend?
  • Is there a way to factorize the creation of a token depending on the backend, pre-spawn? Then pass it to the child process.
  • A temptation here is to use token-indirection, via an authorized system that a client calls into (input: backend type) to receive a token specified for its backend to communicate with the queue (output: token string)--is this overkill?

Note to Self

  • Search slack for "there's been some work on integrating auth for the various mq implementations"
@ric-evans ric-evans added the enhancement New feature or request label Mar 2, 2022
@ric-evans ric-evans self-assigned this Mar 2, 2022
@dsschult
Copy link
Contributor

dsschult commented Mar 2, 2022

One thing to consider is that the library itself may not be the best place for this. Instead, in a larger system the raw queue might be hidden behind a service. You could then secure the service with oauth2, and it would be responsible for exchanging proper auth tokens between the raw queue and any clients. (thinking EWMS here, where there will be multiple queues and one needs to be chosen by a higher level service)

So my main goal is just being able to pass auth down to the queue, even if it is queue-specific.

@ric-evans
Copy link
Contributor Author

The rabbitmq auth will be implemented by #74

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants