Configuration de l'extension loginsso

Bonjour,
Alors je voulais configurer le loginSSO qui avait plutôt l’air simple selon la doc. Il suffisait juste de remplir quelques informations dans le wakka.config.php (notamment le clientId, clientSecret, urlAuthorize, urlAccessToken et urlResourceOwnerDetails).
Ce que j’ai fait. J’ai rempli toutes les informations que j’avais sur mon application OIDC, sauvegardé le fichier et même redémarré mon serveur apache2. Mais je tombe toujours sur cette erreur :


Quelqu’un saurait où est le problème?

Bonjour,
Je pourrais vous aider vendredi, ou peut-être avant mon collègue Sylvain qui a fait tout le travail, s’il est disponible. Le message d’erreur est intriguant (c’est en Prod chez nous).
Nous allons documenter la partie configuration du fournisseur d’identité bientôt. Quel SSO utilisez-vous ?

1 « J'aime »

Peut être aussi vérifier la structure dans votre fichier de conf wakka.config.php (on dirait qu’il ne trouve pas les auth_options), au minimum :

'sso_config' => [
    'login_username_initials' => false,
    'providers' => [
        [
            'auth_type' => 'oauth2',
            'auth_options' => [
                'clientId' => 'myclientid',
                'clientSecret' => 'mysecretclientkey',
                'urlAuthorize' => 'https:#myserver/auth/realms/master/protocol/openid-connect/auth',
                'urlAccessToken ' => 'https:#myserver/auth/realms/master/protocol/openid-connect/token',
                'urlResourceOwnerDetails' => 'https:#myserver/auth/realms/master/protocol/openid-connect/userinfo',
            ],
            // sso server fieldname used for the user id, this field links an SSO user to a yeswiki user
            'id_sso_field' => 'id',
            // sso server fieldname used for the user email
            'email_sso_field' => 'email',
         ]
    ]
]
1 « J'aime »

on dirait qu’il manque redirectUri ?

et ya cette partie de la doc aussi :

You must configure the OIDC server to accept the redirection from your YesWiki instance. Add the following URL to the list of allowed redirections: https://[wiki]/?api/auth_sso/callback=

1 « J'aime »

J’utilise Wallix Trustelem pour le SSO.

Je viens de vérifier et ça me semble correcte. J’ai copié-collé ce qui était dans le fichier README.md

'sso_config' => [
    /*
     * The form id for the bazar entry corresponding to the connected user
     * if defined, a link propose to show him his user information (profile)
     * don't declare it, if you don't need to have bazar entries related to users
    */
    'bazar_user_entry_id' => 1000,
    // if true, the display the initials of the user name instead of the full name on login modal
    'login_username_initials' => false,
    // each entry here is an array corresponding to a SSO provider
    'providers' => [
        [
            // the authentification auth type, two protocols are supported: 'oauth2' and 'cas'
            'auth_type' => 'oauth2',
            'auth_options' => [
                'clientId' => 'trustelem#####',
                'clientSecret' => '######',
                'urlAuthorize' => 'https:/#####',
                'urlAccessToken ' => 'https://#####',
                'urlResourceOwnerDetails' => 'https://#####',
            ],
            // sso server fieldname used for the user id, this field links an SSO user to a yeswiki user
            'id_sso_field' => 'id',
            // sso server fieldname used for the user email
            'email_sso_field' => 'email',

Le redirectUri se configure sur l’application OIDC non? Parce que je n’ai pas vu de champs dessus dans le fichier de conf SSO

oui je pense que c’est coté application OIDC, @sylvain_l pourra confirmer, à priori, j’ai l’impression que c’est bon niveau configuration?

1 « J'aime »

En regardant le code yeswiki-extension-loginsso/actions/LoginAction.php at master · YesWiki/yeswiki-extension-loginsso · GitHub

Je trouve étrange que ton erreur se situe sur le « Provider No 1 », alors que j’imagine que si t’as qu’un seul sso de configuré cela devrait etre « Provider No 0 ».

T’as pas un reste de tableau mal renseigné a la suite dans le fichier de configuration vers 'providers' => [...]

1 « J'aime »

Oui le redirectUri est une option à configurer dans le serveur SSO

Concernant le numéro du provider, celui-ci commence par 1 dans les messages d’erreurs donc il ne parvient pas du tout à trouver la configuration.

En fait ca vient d’une typo dans la documentation. Il y a un espace en trop dans la clé 'urlAccessToken '. Il faut indiquer 'urlAccessToken' sans espace à la fin. J’ai corrigé la doc, autant pour moi

2 « J'aime »

Effectivement ! Le problème était là. Merci pour l’aide. Une dernière chose, dans la page des API du wiki, je ne trouve pas auth_sso mais juste auth. Du coup, j’ai l’impression que mon application OIDC ne trouve pas le chemin de redirection.

@molam Effectivement la doc est pas auto générée donc ca apparait pas ajd. Mais ca devrait marcher.

Est-ce que tu pourrais m’indiquer l’erreur que tu as ?

1 « J'aime »

En soi, ce n’est pas un message d’erreur du côté Wiki mais plutôt que je reçois sur l’application OIDC. Quand j’appuie sur le bouton de connexion j’arrive bien sur la page de connexion et j’arrive à m’authentifier. Mais une fois cela fait, l’application ne me redirige pas vers le wiki et je ne suis toujours pas connecté sur ce dernier.
Capture d'écran 2024-05-02 105024
C’est le message que j’ai côté OIDC.
Je me suis alors dit que le problème venait du redirect URI.

Pour des raisons de sécurité les serveurs OIDC filtrent par liste blanche les adresses des applications autorisées à utiliser le serveur d’authentification. Le paramètre redirectUrl sert justement à configurer cette liste blanche.
J’ai l’impression que c’est cette vérification qui échoue (sans pouvoir en être sur toutefois).

Est-ce que tu pourrais m’indiquer l’adresse que tu as utilisé pour le redirectUrl ainsi que le nom et la version exacte du serveur OIDC ?
Est-ce que tu aurais éventuellement des logs du serveur OIDC qui aideraient au débug ?

1 « J'aime »

Pour l’adresse du redirect Url j’ai utilisé ça : https://[wiki]/?api/auth_sso/callback=
Et pour l’application OIDC tu peux te référer à cette doc :
OpenID Connect | Doc Trustelem (wallix.com)
Pour les logs je n’ai malheureusement que des connexions/déconnexions et modifications de fichiers/applications, bref, pas ce qui nous intéresse dans ce cas.

@molam La doc est peut-être pas très claire, mais tu as bien remplacée [wiki] par l’adresse du wiki ?

1 « J'aime »

Oui t’inquiètes, c’est pour des raisons de confidentialité que je ne donne pas l’adresse :sweat_smile:

Après je ne sais pas s’il est normal que la page https://[wiki]/?api/auth_sso soit introuvable (quand on la cherche sur un navigateur par exemple)

@molam Quel est le résultat si tu va directement sur cette page via navigateur ?

Attention, il y a une mention callback= à la fin.

ex : https://[wiki]/?api/auth_sso/callback=

1 « J'aime »

Voilà ce que j’obtiens :
Capture d'écran 2024-05-02 120558