Connexion login SSO - syntaxe php / yaml, exemples

Bonjour,

je mets les mains dans la conf tools/login-sso et vois les options dans le fichier config.yaml

Je suppose qu’il faut traduire en tableau php les différentes options, mais alors pourquoi ce fichier yaml ?
Il est utilisé dans un déploiement ansible / docker ?

En comparant avec https://github.com/YunoHost-Apps/yeswiki_ynh/blob/master/scripts/install je vois que sur YNH il n’y a pas le SSO, y a-til des exemples de sso oauth ailleurs avant que je ne me casse les dents ?

Coopaname utilise fusionIam/LemonLDAP, il n’y a pas non plus d’exemple dans leurs applications alors qu’il y a {doku,media,x}wiki).

Je me propose de documenter chez eux la chose, ça peut aider par la suite.

bonsoir @VincentLucy ,
Pour le ldap, c’est plutôt l’extension loginldap (aussi installée dans la version yunohost de yeswiki) cf. GitHub - YesWiki/yeswiki-extension-loginldap: Permet d'utiliser LDAP pour se connecter

Et c’est dans le fichier wakka.config.php qu’il faut rajouter

'ldap_host' => 'mon-domaine-ldap.com',
'ldap_port' => '389',
'ldap_organisation' => 'mon-org', // non obligatoire
'ldap_group' => 'mon-groupe', // non obligatoire

et pour le config.yaml dans l’extension login-sso c’est juste une doc apparemment, car tout est en commentaire, mais normalement ce yaml est une convention de symfony pour donner des valeurs par défaut a la configuration de yeswiki.

1 « J'aime »

merci @mrflos

ah d’accord pour la convention Symfony, bon ben j’ai commencé à transformer en tableau php la conf mais ça pourrait être exhaustif et prêt à copier/coller dans wakka.config.php.

Je vais certainement mobiliser Worteks directement pour Coopaname, donc ça donnera l’occasion de vérifier directement avec eux la couche oauth et la documenter proprement dans LemonLDAP.

Ça pourrait être un plus d’avoir la couche SSO dans YunoHost si SSOWat (home made lua nginx GitHub - YunoHost/SSOwat: A simple SSO for NGINX, written in Lua) peut s’interfacer avec.
En espérant que l’extension longin-sso permette aussi et quand même la coexistence de comptes hors SSO.

J’ai vu qu’il y a un plugin ActivityPub dans Discourse qui m’intéresse.

Je me souviens qu’il y a un-e dev de yeswiki qui bosse dessus, mais je n’en trouve pas trace dans ce forum.
Dans github je trouve GitHub - YesWiki/yeswiki-extension-webhooks: Outgoing webhooks at each addition/modification/deletion of a YesWiki Bazar item (avec un lien cassé vers la documentation YesWiki, argh « deux liens maximum pour les nouveaux utilisateurs » – la protection :copyright:adidas :slight_smile:)

Est-ce que quelqu’un-e (ou plusieurs !) travail(lent) sur la conception d’un module en ce moment ?

Pour le module activityPub, il n’y a personne dessus, j’imaginais peut être faire une demande Nlnet pour développer cette feature, mais personnellement je ne suis pas assez compétent en activityPub pour assurer le dev.

Il y avait une passerelle bazar <–> mastodon, développée comme une preuve de concept par Sébastien Rosset, mais il est maintenant a plein temps sur ActivityPods, un mélange de solid et activityPub

Ah voilà, je n’ai jamais croisé Sébastien mais on connaît un paquet de personnes en commun.
J’espère qu’il ne bosse pas tout seul, je vais le contacter.
Pour NlNet, ce serait super.
On a identifié aussi beaucoup de CAE impliquée dans le dev, l’animation ou simplement l’utilisation de YesWiki. Au moins 12, il y a à mon avis de quoi mettre en commun pour développer des usages partagés.

1 « J'aime »

Hello,

bon pour aller vite dans un premier temps je souhaite juste utiliser le plugin login-sso, mais là je bloque car nous utilisons un LDAP donc protégé sur un autre serveur, et je ne vois pas dans le code de gestion de connexion authentifiée au LDAP :

Plus en avant dans le code je vois la stack symfony mais je ne vois encore comment les deux causent…

dans les grandes lignes @VincentLucy (mais on pourrait se causer en visio si besoin):
l’extension loginldap remplace juste la partie auth classique de yeswiki (vérification du user, mail et mot de passe depuis les infos de la table _users de yeswiki), par une authentification avec un user provenant d’un ldap dont les spécificités ont été indiquées dans la conf de yeswiki.
L’extension ne fait pas plus qu’un ldap_connect puis une recherche du mail et user et si le bottin ldap repond, créée le compte sur le wiki a partir des infos ldap.

T’es au bon endroit du code, mais peut etre que je ne comprends pas un élément de votre config ldap?

Merci, c’est juste que mon serveur LDAP est sur une autre machine et a beaucoup d’autres usages, et donc n’accepte pas les connections anonymes.
J’ai simplement besoin de passer à la librairie Symfony les options comme dans la doc :

// config/packages/security.php
use Symfony\Component\Ldap\Ldap;
use Symfony\Config\SecurityConfig;

return static function (SecurityConfig $security): void {
    $security->provider('ldap_users')
        ->ldap()
            ->service(Ldap::class)
            ->baseDn('dc=example,dc=com')
            ->searchDn('cn=read-only-admin,dc=example,dc=com')
            ->searchPassword('password')
            ->defaultRoles(['ROLE_USER'])
            ->uidKey('uid')
            ->extraFields(['email'])
    ;
};

(prise ici : Authenticating against an LDAP server (Symfony Docs))