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.fi...@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.fi...@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

Reply via email to