rackslab / Slurm-web

Open source web dashboard for Slurm HPC clusters
https://slurm-web.com
GNU General Public License v3.0
340 stars 97 forks source link

Support slurmrestd jwt auth #329

Open c-vinet opened 3 months ago

c-vinet commented 3 months ago

Hello, slurm-web does not currently support slurmrestd's jwt authentication (see slurm docs). This pull request is a naive attempt to support it using the X-SLURM-USER-* request headers. I tested it on our infrastructure which uses jwt authentication and it seems to work. Let me know what do you think of it.

rezib commented 3 months ago

Hello @c-vinet, thank you for this contribution! Note this is a good first step for #313.

I guess you setup in configuration a JWT you previously obtained with scontrol for slurm user with an unlimited/infinite lifespan, right?

c-vinet commented 3 months ago

Hi @rezib, yes i used scontrol token to create the JWT for the root user ( it should work with any slurm admin user ). I didn't think about it much but indeed this authentication mechanism will be needed for slurmrestd over TCP/IP.

github-actions[bot] commented 3 months ago


Thank you for your submission, we really appreciate it. Like many open-source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution. You can sign the CLA by just posting a Pull Request Comment same as the below format.


I have read the CLA Document and I hereby sign the CLA


Cedric Vinet seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.
You can retrigger this bot by commenting recheck in this Pull Request. Posted by the CLA Assistant Lite bot.

satishdotpatel commented 3 months ago

I am also looking for this feature. I would like to deploy slurm-web outside slurm clusters and would love to talk over TCP using APIs. Did anyone tested this patch?

rezib commented 3 months ago

@satishdotpatel It looks like what you need is actually #313.