[slurm-users] External Authentication Integration with JWKS and RS256 Tokens
Laurence Field
laurence.field at cern.ch
Mon Mar 27 09:07:14 UTC 2023
Hi Ümit,
Thanks for the reply. Yes, it looks like this is the issue. Although
from the master branch it suggests that the claim_field can also be used
but this is not in the version we have deployed.
Cheers,
Laurence
On 24.03.23 16:51, Ümit Seren wrote:
> Looks like you are missing the username field in the JWT token:
> https://github.com/SchedMD/slurm/blob/slurm-22-05-8-1/src/plugins/auth/jwt/auth_jwt.c#L419
> You have to make sure that your JWT token contains the SLURM username
> as an attribute (https://slurm.schedmd.com/jwt.html#compatibility).
>
>
>
> On Fri, Mar 24, 2023 at 4:40 PM Laurence Field
> <laurence.field at cern.ch> wrote:
>
> Hi,
>
> After verifying the JWT and JWKS with some Python code, it
> magically seems to work. At least the error has changed to
> /auth_p_verify: jwt_get_grant failure. /This suggests I need to
> update something in the authorization policy. Will do that now but
> if anyone has done this before and can give me some hints, they
> would be most welcome.
>
> Cheers,
>
> Laurence
>
> On 24.03.23 10:41, Laurence Field wrote:
>>
>> Hi Ümit,
>>
>> Thanks for your reply. We are using Keycloak and the JWKS does
>> contain this parameter. I will continue to debug but any
>> suggestions would be greatly appreciated.
>>
>> Cheers,
>>
>> Laurence
>>
>> On 23.03.23 11:42, Ümit Seren wrote:
>>> If you use AzureAD as your identity provider beware that their
>>> JWKS json doesn't contain the alg parameter.
>>> We opened an issue:
>>> https://bugs.schedmd.com/show_bug.cgi?id=16168 and it is confirmed.
>>> As a workaround you can use this jq query to add the alg to the
>>> jwks json that you get from AzureAD:
>>> |curl -s
>>> https://login.microsoftonline.com/TENANT/discovery/v2.0/keys |
>>> jq '.keys |= map(.alg="RS256")' > $TMPFILE
>>> |
>>> Hope this helps
>>> Best
>>> Ümit
>>>
>>> On Thu, Mar 23, 2023 at 11:26 AM Laurence
>>> <laurence.field at cern.ch> wrote:
>>>
>>> Hi,
>>>
>>> I am trying to configure SLURM to use external
>>> authentication for JWT as described in the documentation.
>>>
>>> https://slurm.schedmd.com/jwt.html
>>>
>>> JWT Authentication worked when I tested the setup for
>>> standalone use but am having difficulty with tokens from our
>>> oauth provider.
>>>
>>> My first question is has anyone successfully done this? My
>>> second question is on the example code to verify the jwt
>>> key. Is the example up to date as it doesn't work for me.
>>> The final question is does anyone have any suggestions on
>>> the concrete error reported in the slurmctld log.
>>>
>>> /slurmctld: error: failed to verify jwt, rc=22//
>>> //slurmctld: error: could not find matching kid or decode
>>> failed/
>>>
>>> Thanks,
>>>
>>> Laurence
>>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.schedmd.com/pipermail/slurm-users/attachments/20230327/71b3965a/attachment-0001.htm>
More information about the slurm-users
mailing list