Vendredi 23 novembre 2018

SSOwat

Paramètres SSOwat

Ce sont les paramètres de configuration de SSOwat. Seul le premier est requis, mais il est recommandé de connaître les autres pour bien comprendre ce que vous pouvez faire avec SSOwat.

portal_domain
Domaine du portail d’authentification. Il doit s’agir d’un domaine, les adresses IP ne fonctionneront pas avec SSOwat (Obligatoire)

portal_path
URI du portail d’authentification (par défaut: /ssowat)

portal_port
Port Web du portail d’authentification (par défaut: 443)

portal_scheme
Si l’authentification doit utiliser une connexion sécurisée ou non (par défaut: https)

domains
Liste des domaines de la poignée (par défaut: similaire à portal_domain)

ldap_host
Nom d’hôte du serveur LDAP (par défaut: localhost)

ldap_group
Groupe LDAP à rechercher (par défaut: ou=users,dc=yunohost,dc=org)

ldap_identifier
Identificateur utilisateur LDAP (par défaut: uid)

ldap_attributes
Attributs de l’utilisateur pour récupérer de LDAP (par défaut: [“uid”, “givenname”, “sn”, “cn”, “homedirectory”, “mail”, “maildrop”])

restrict_login_group
Exécute l’appartenance à un groupe spécifié (exemple: cn=sso,ou=groups,dc=example,dc=org)

allow_mail_authentication
Que les utilisateurs puissent s’authentifier avec leur adresse mail (par défaut: vrai)

login_arg URI argument à utiliser pour l’authentification multi-domaine (par défaut: sso_login)

additional_headers
Ensemble d’en-têtes HTTP supplémentaires pour définir une fois que l’utilisateur est authentifié (par défaut: {“Remote-User”: “uid”})

session_timeout Le délai de expiracy de la session en secondes, depuis la dernière connexion (par défaut: 86400 / un jour)

session_max_timeout
Le délai de expiracy de la session en secondes (par défaut: 604800 / une semaine)

protected_urls
Liste des URL et / ou URI protégées prioritairement (par défaut, chaque URL est protégée)

protected_regex
Liste des expressions régulières à associer aux URL et URI pour les protéger

skipped_urls
Liste des URL et / ou URI qui ne seront pas affectés par SSOwat

skipped_regex
Liste des expressions régulières à associer aux URL et aux URI pour les ignorer

unprotected_urls
Liste des URL et / ou URI qui ne seront pas affectés par SSOwat à moins que l’utilisateur ne soit authentifié

unprotected_regex
Liste des expressions régulières à associer aux URL et aux URI pour les ignorer à moins que l’utilisateur ne soit authentifié

redirected_urls
Arbre d’URL et / ou d’URI pour la redirection et leur URI / URL de redirection (exemple: {“/”: “example.org/subpath”})

redirected_regex
Les expressions régulières sont compatibles avec les URL et les URI et leur URI / URL de redirection (exemple: {“example.org/megusta$”: “example.org/subpath”})

users
Le tableau à 2 niveaux contenant les noms d’utilisateur et leurs URL autorisés ainsi qu’un nom d’application (exemple: {“kload”: {“kload.fr/myapp/”: “My App”}})

default_language
Code de langue utilisé par défaut dans les vues (par défaut: fr)

Prérequis ,nginx with lua module

Installation SSOwat

# prérequis debian
sudo -s 
apt install liblua5.1-0 lua-lpeg lua-filesystem lua-socket lua-ldap lua-json
mkdir /etc/ssowat
git clone https://github.com/maiome-development/SSOwat /etc/ssowat
# Clone DesignModo's FlatUI framework and put the distfiles into resources.
git clone https://github.com/designmodo/Flat-UI.git
mv Flat-UI/dist /etc/ssowat/portal/resources/fui

Configuration SSOwat/Nginx

Init SSOwat
sudo nano /etc/nginx/conf.d/ssowat.conf

lua_shared_dict cache 10m;
init_by_lua_file   /etc/ssowat/init.lua;
server_names_hash_bucket_size 64;

Le Vhost cinay.pw
nano /etc/nginx/conf.d/cinay.conf
ajout de la directive access_by_lua_file
access_by_lua_file /etc/ssowat/access.lua;

On peut mettre la directive access_by_lua_file dans le fichier vhost.

Configuration SSOwat/cinay.pw

Création dossier
mkdir /usr/local/etc/ssowat/
Configuration domaine cinay.pw
nano /usr/local/etc/ssowat/conf.json

{
   "portal_scheme": "https",
   "portal_domain": "cinay.pw",
   "portal_path": "/ssowat/",
   "ldap_group": "ou=utilisateurs,ou=people,dc=cinay,dc=pw",
   "domains": [
        "cinay.pw"
    ],
    "redirected_regex": {
        "cinay.pw[\\/]?$": "https://cinay.pw/sso/"
    }, 
   "skipped_urls": [
    ],
   "unprotected_urls": [],
   "additional_headers": {
       "Auth-User": "uid",
       "Remote-User": "uid",
       "Email": "mail",
       "Name": "cn"
   },
   "users": {
       "yannick": {
            "cinay.pw/owncloud/": "Nextcloud", 
            "cinay.pw/rainloop/": "Rainloop", 
            "cinay.pw/pfa/": "PostfixAdmin", 
            "cinay.pw/phpldap/": "PhpLdapAdmin" 
       },
       "claudine": {
            "cinay.pw/owncloud/": "Nextcloud", 
            "cinay.pw/rainloop/": "Rainloop" 
       }
   }
}

Exporter au format LDIF for uid=yannick,ou=utilisateurs,ou=people,dc=cinay,dc=pw

Serveur: Cinay LDAP Server (127.0.0.1)

Portée de la recherche: base

Filtre de recherche: (objectClass=*)

Entrées totales: 1

#

Generated by phpLDAPadmin (http://phpldapadmin.sourceforge.net) on August 27, 2017 3:10 pm

Version: 1.2.3

version: 1

Entrée 1: uid=yannick,ou=utilisateurs,ou=people,dc=cinay,dc=pw

dn: uid=yannick,ou=utilisateurs,ou=people,dc=cinay,dc=pw cn: Yannick M gidnumber: 1111 givenname: Yannick homedirectory: /home/yannick l: France loginshell: /bin/bash mail: yannick@cinay.pw objectclass: top objectclass: posixAccount objectclass: person objectclass: organizationalPerson objectclass: inetOrgPerson ou: gspm sn: Yannick uid: yannick uidnumber: 1100 userpassword: {SSHA}sFGMJONYWPi2vMjE9I6iczy8c6fowjr3

Exporter au format LDIF for cn=admin,dc=yunohost,dc=org

Serveur: Yunohost OpenLDAP Server (127.0.0.1)

Portée de la recherche: base

Filtre de recherche: (objectClass=*)

Entrées totales: 1

#

Generated by phpLDAPadmin (http://phpldapadmin.sourceforge.net) on August 27, 2017 3:12 pm

Version: 1.2.3

version: 1

Entrée 1: cn=admin,dc=yunohost,dc=org

dn: cn=admin,dc=yunohost,dc=org cn: admin description: LDAP Administrator gidnumber: 1007 homedirectory: /home/admin loginshell: /bin/bash objectclass: organizationalRole objectclass: posixAccount objectclass: simpleSecurityObject uid: admin uidnumber: 1007 userpassword: {SSHA}dkl6jAAMyiz6jf49pWzHwhA5AlbB/meG

Exporter au format LDIF for cn=admin,dc=cinay,dc=pw

Serveur: Cinay LDAP Server (127.0.0.1)

Portée de la recherche: base

Filtre de recherche: (objectClass=*)

Entrées totales: 1

#

Generated by phpLDAPadmin (http://phpldapadmin.sourceforge.net) on August 27, 2017 3:13 pm

Version: 1.2.3

version: 1

Entrée 1: cn=admin,dc=cinay,dc=pw

dn: cn=admin,dc=cinay,dc=pw cn: admin description: LDAP administrator objectclass: simpleSecurityObject objectclass: organizationalRole userpassword: {SSHA}4eznapqib3OKHl7EVDnsAVdPC8R8lcRh

Exporter au format LDIF for uid=yanspm,ou=users,dc=yunohost,dc=org

Serveur: Yunohost OpenLDAP Server (127.0.0.1)

Portée de la recherche: base

Filtre de recherche: (objectClass=*)

Entrées totales: 1

#

Generated by phpLDAPadmin (http://phpldapadmin.sourceforge.net) on August 27, 2017 3:11 pm

Version: 1.2.3

version: 1

Entrée 1: uid=yanspm,ou=users,dc=yunohost,dc=org

dn: uid=yanspm,ou=users,dc=yunohost,dc=org cn: yan spm displayname: yan spm gidnumber: 48612 givenname: yan homedirectory: /home/yanspm loginshell: /bin/false mail: yanspm@yanspm.com mail: root@yanspm.com mail: admin@yanspm.com mail: webmaster@yanspm.com mail: postmaster@yanspm.com mail: docker@yanspm.com mail: ebook@yanspm.com mail: ym@yanspm.com mail: domoticz@yanspm.com mail: git@yanspm.com mail: flight@yanspm.com mail: ff@yanspm.com mail: subscribe@yanspm.com maildrop: yanspm mailuserquota: 0 objectclass: mailAccount objectclass: inetOrgPerson objectclass: posixAccount sn: spm uid: yanspm uidnumber: 48612 userpassword: {CRYPT}$6$BxRTcg1yd$CP.0dBpWdMgE2R5uJhPK4uf3JyPbg0cRJrb7TW8Og. a8lCipE3G1BuruFvJ4q0SqhCYOl2vOKYjPVjnomAX2Y1