Compare commits
34 Commits
fix-nginx
...
2.6.2/mast
Author | SHA1 | Date | |
---|---|---|---|
7d05697ad0 | |||
7328d4b968 | |||
267b96bd16 | |||
3326273e21 | |||
53e17b8da0 | |||
207dadd5cc | |||
994166b1fd | |||
20c513e4fd | |||
0980b3d30c | |||
9003ecbcb3 | |||
8fbafb4c70 | |||
cc1da0773b | |||
a96d56b19c | |||
e0c7ca8f5e | |||
73fb96c026 | |||
abb1d10a87 | |||
30e142fa98 | |||
c7b38c52d0 | |||
6c3adaab2b | |||
050e559f75 | |||
eef533bfe6 | |||
e84ba19b68 | |||
b7aefb7a8b | |||
5f5c5359f7 | |||
51519eae55 | |||
2afe4dceb4 | |||
0f25183778 | |||
a4a3d52746 | |||
a5ce48110d | |||
61b982607e | |||
a91abb36f3 | |||
710ea85f96 | |||
d3897f1e4a | |||
19fc15c324 |
@ -12,8 +12,8 @@ GenConfig -> Mode Expert -> Dépôts tiers -> Libellé du dépôt
|
|||||||
|
|
||||||
#### LemonLDAP::NG repository
|
#### LemonLDAP::NG repository
|
||||||
|
|
||||||
* deb https://lemonldap-ng.org/deb stable main
|
* deb https://lemonldap-ng.org/deb 1.9 main
|
||||||
* deb-src https://lemonldap-ng.org/deb stable main
|
* deb-src https://lemonldap-ng.org/deb 1.9 main
|
||||||
* Key URL : https://lemonldap-ng.org/_media/rpm-gpg-key-ow2
|
* Key URL : https://lemonldap-ng.org/_media/rpm-gpg-key-ow2
|
||||||
|
|
||||||
#### Cadoles Repository
|
#### Cadoles Repository
|
||||||
|
@ -26,3 +26,42 @@ def readPass(encoder,reader):
|
|||||||
|
|
||||||
except:
|
except:
|
||||||
return "mot de passe inconnu"
|
return "mot de passe inconnu"
|
||||||
|
|
||||||
|
def getSSOFilters():
|
||||||
|
""" Convert former eole-sso filters to LemonLDAP filters
|
||||||
|
"""
|
||||||
|
import glob
|
||||||
|
from ConfigParser import ConfigParser
|
||||||
|
|
||||||
|
try:
|
||||||
|
filters = { 'uid': "uid", "mail": "mail" }
|
||||||
|
filterDirectory = "/usr/share/sso/app_filters/"
|
||||||
|
filterExtention = ".ini"
|
||||||
|
filterSection = "utilisateur"
|
||||||
|
filterFiles = glob.glob("{0}/*{1}".format(filterDirectory, filterExtention))
|
||||||
|
toClean = [ "__name__" ]
|
||||||
|
if len(filterFiles) != 0:
|
||||||
|
for fi in filterFiles:
|
||||||
|
# Don't parse "applications.ini"
|
||||||
|
config = ConfigParser()
|
||||||
|
config.read(fi)
|
||||||
|
if filterSection in config._sections:
|
||||||
|
filters.update(config._sections[filterSection].items())
|
||||||
|
for key in toClean:
|
||||||
|
if key in filters.keys():
|
||||||
|
del(filters[key])
|
||||||
|
res = {}
|
||||||
|
index=0
|
||||||
|
size=len(filters)
|
||||||
|
return(filters.items())
|
||||||
|
"""
|
||||||
|
for k,v in filters.items():
|
||||||
|
res[k] " \"{0}\": \"{1}\"".format(k,v)
|
||||||
|
index += 1
|
||||||
|
if index != size:
|
||||||
|
res += ",\n"
|
||||||
|
return(res)
|
||||||
|
"""
|
||||||
|
except:
|
||||||
|
return "Error Generating Filters"
|
||||||
|
|
||||||
|
@ -2,11 +2,16 @@
|
|||||||
<creole>
|
<creole>
|
||||||
<files>
|
<files>
|
||||||
<!-- Je suis un commentaire -->
|
<!-- Je suis un commentaire -->
|
||||||
<file filelist='lemon' name='/etc/nginx/sites-available/manager-nginx.conf' mkdir='True' rm='True'/>
|
<file filelist='lemon' name='/etc/lemonldap-ng/manager-nginx.conf' mkdir='True' rm='True'/>
|
||||||
<file filelist='lemon' name='/etc/nginx/sites-available/handler-nginx.conf' mkdir='True' rm='True'/>
|
<file filelist='lemon' name='/etc/lemonldap-ng/handler-nginx.conf' mkdir='True' rm='True'/>
|
||||||
<file filelist='lemon' name='/etc/nginx/sites-available/portal-nginx.conf' mkdir='True' rm='True'/>
|
<file filelist='lemon' name='/etc/lemonldap-ng/portal-nginx.conf' mkdir='True' rm='True'/>
|
||||||
<file filelist='lemon' name='/etc/nginx/sites-available/test-nginx.conf' mkdir='True' rm='True'/>
|
<file filelist='lemon' name='/etc/lemonldap-ng/test-nginx.conf' mkdir='True' rm='True'/>
|
||||||
<file filelist='lemon' name='/var/lib/lemonldap-ng/conf/lmConf-1.js' mkdir='True' rm='True'/>
|
<file filelist='lemon' name='/etc/lemonldap-ng/lemonldap-ng.ini' mkdir='True' rm='True'/>
|
||||||
|
<file filelist='lemon' name='/var/lib/lemonldap-ng/conf/lmConf-1.json' mkdir='True' rm='True'/>
|
||||||
|
<file filelist='lemon' name='/etc/default/lemonldap-ng-fastcgi-server' mkdir='True' rm='True'/>
|
||||||
|
<file filelist='lemonCAS' name='/usr/share/php/configCAS/cas.inc.php' source='cas.inc.php.tmpl' mkdir='True'/>
|
||||||
|
<file filelist='lemonCAS' name='/usr/share/php/CAS/eoleCASConfig.php' source='eoleCASConfig.php.tmpl' mkdir='True'/>
|
||||||
|
<file filelist='lemonCAS' name='/etc/pam_cas.conf' source="pam_cas_auth.conf"/>
|
||||||
<service>lemonldap-ng-fastcgi-server</service>
|
<service>lemonldap-ng-fastcgi-server</service>
|
||||||
<service_access service='nginx'>
|
<service_access service='nginx'>
|
||||||
<port service_accesslist="saLemon">80</port>
|
<port service_accesslist="saLemon">80</port>
|
||||||
@ -30,6 +35,10 @@
|
|||||||
<variable name='ldapBindUserDN' type='string' description="Utilisateur de connection à l'annuaire" mandatory="True"/>
|
<variable name='ldapBindUserDN' type='string' description="Utilisateur de connection à l'annuaire" mandatory="True"/>
|
||||||
<variable name='ldapBindUserPassword' type='string' description="Mot de passe de l'utilisateur de connection à l'annuaire" mandatory="True"/>
|
<variable name='ldapBindUserPassword' type='string' description="Mot de passe de l'utilisateur de connection à l'annuaire" mandatory="True"/>
|
||||||
<variable name="samlOrganizationName" type='string' description="Nom de l'organisation SAML" mode='expert'/>
|
<variable name="samlOrganizationName" type='string' description="Nom de l'organisation SAML" mode='expert'/>
|
||||||
|
<variable name="lemonproc" type='number' description="Nombre de processus dédié à Lemon (équivalent au nombre de processeur)" mandatory="True">
|
||||||
|
<value>4</value>
|
||||||
|
</variable>
|
||||||
|
|
||||||
<variable name="lemonAdmin" type='string' description="LemonLDAP Administrator username" mode='expert'>
|
<variable name="lemonAdmin" type='string' description="LemonLDAP Administrator username" mode='expert'>
|
||||||
<value>admin</value>
|
<value>admin</value>
|
||||||
</variable>
|
</variable>
|
||||||
@ -38,11 +47,38 @@
|
|||||||
</variable>
|
</variable>
|
||||||
<variable name="casAttribute" description="Nom de l'attribut CAS" type="string" mode="expert" multi="True"/>
|
<variable name="casAttribute" description="Nom de l'attribut CAS" type="string" mode="expert" multi="True"/>
|
||||||
<variable name="casLDAPAttribute" description="Attribut LDAP équivalent" type="string" mode="expert"/>
|
<variable name="casLDAPAttribute" description="Attribut LDAP équivalent" type="string" mode="expert"/>
|
||||||
|
<variable name="casFolder" description="Endpoint du service cas" type="string" mode="expert">
|
||||||
|
<value>cas</value>
|
||||||
|
</variable>
|
||||||
|
<variable name='cas_send_logout' type='oui/non' description="Activer le logout centralisé du serveur SSO" hidden='True'>
|
||||||
|
<value>oui</value>
|
||||||
|
</variable>
|
||||||
|
<variable name='ssoCALocation' type='string' description="Chemin de l'autorité de certification (ou rien)" mode="expert"/>
|
||||||
|
<variable name='ssoDebug' type='string' description="Activer le Debug pour la lib php-CAS" mode="expert">
|
||||||
|
<value>non</value>
|
||||||
|
</variable>
|
||||||
|
<variable name='llSkin' type='string' description="Skin utilisé par LemonLDAP::NG">
|
||||||
|
<value>bootstrap</value>
|
||||||
|
</variable>
|
||||||
|
<variable name='llCheckLogins' type='oui/non' description="Permettre aux utilisateurs d'afficher l'historique de connection">
|
||||||
|
<value>non</value>
|
||||||
|
</variable>
|
||||||
|
<variable name='llResetPassword' type='oui/non' description="Permettre aux utilisateurs de réinitialiser leurs mots de passe">
|
||||||
|
<value>oui</value>
|
||||||
|
</variable>
|
||||||
|
<variable name='llResetUrl' type='string' description="Adresse de l'application pour réinitialiser leurs mots de passe" />
|
||||||
|
<variable name='llRegisterAccount' type='oui/non' description="Permettre aux utilisateurs de créer un compte">
|
||||||
|
<value>oui</value>
|
||||||
|
</variable>
|
||||||
|
<variable name='llRegisterDB' type='string' description="Base de comptes pour l'enregistrement"/>
|
||||||
|
<variable name='llRegisterURL' type='string' description="Adresse de l'application de création de compte"/>
|
||||||
|
<variable name='llCSPTargets' type='domain' description="Domaines vers lesquels le forumaire peut renvoyer" multi='True'/>
|
||||||
</family>
|
</family>
|
||||||
<separators>
|
<separators>
|
||||||
<separator name="managerWebName">Configuration DNS</separator>
|
<separator name="managerWebName">Configuration DNS</separator>
|
||||||
<separator name="ldapScheme">Configuration LDAP</separator>
|
<separator name="ldapScheme">Configuration LDAP</separator>
|
||||||
<separator name="casAttribute">Configuration CAS</separator>
|
<separator name="casAttribute">Configuration CAS</separator>
|
||||||
|
<separator name="llSkin">Personnalisation de la mire SSO</separator>
|
||||||
</separators>
|
</separators>
|
||||||
</variables>
|
</variables>
|
||||||
<constraints>
|
<constraints>
|
||||||
@ -64,6 +100,9 @@
|
|||||||
</fill>
|
</fill>
|
||||||
<check name="valid_enum" target="ldapScheme">
|
<check name="valid_enum" target="ldapScheme">
|
||||||
<param>['ldaps','ldap']</param>
|
<param>['ldaps','ldap']</param>
|
||||||
|
</check>
|
||||||
|
<check name="valid_enum" target="llRegisterDB">
|
||||||
|
<param>['LDAP','Demo','Custom']</param>
|
||||||
</check>
|
</check>
|
||||||
<group master="casAttribute">
|
<group master="casAttribute">
|
||||||
<slave>casLDAPAttribute</slave>
|
<slave>casLDAPAttribute</slave>
|
||||||
@ -71,9 +110,26 @@
|
|||||||
<condition name='disabled_if_in' source='activerLemon'>
|
<condition name='disabled_if_in' source='activerLemon'>
|
||||||
<param>non</param>
|
<param>non</param>
|
||||||
<target type='filelist'>lemon</target>
|
<target type='filelist'>lemon</target>
|
||||||
|
<target type='filelist'>lemonCAS</target>
|
||||||
<target type='family'>LemonLDAP</target>
|
<target type='family'>LemonLDAP</target>
|
||||||
<target type='service_accesslist'>saLemon</target>
|
<target type='service_accesslist'>saLemon</target>
|
||||||
</condition>
|
</condition>
|
||||||
|
<condition name='disabled_if_in' source='llRegisterAccount'>
|
||||||
|
<param>non</param>
|
||||||
|
<target type='variable'>llRegisterDB</target>
|
||||||
|
</condition>
|
||||||
|
<condition name='disabled_if_not_in' source='llRegisterDB'>
|
||||||
|
<param>Custom</param>
|
||||||
|
<target type='variable'>llRegisterURL</target>
|
||||||
|
</condition>
|
||||||
|
<condition name='disabled_if_in' source='llResetPassword'>
|
||||||
|
<param>non</param>
|
||||||
|
<target type='variable'>llResetUrl</target>
|
||||||
|
</condition>
|
||||||
|
<check name='valid_enum' target='llSkin'>
|
||||||
|
<param>['bootstrap','dark','impact','pastel']</param>
|
||||||
|
<param name="checkval">False</param>
|
||||||
|
</check>
|
||||||
</constraints>
|
</constraints>
|
||||||
<help>
|
<help>
|
||||||
<variable name='activerLemon'>Activer l'hébergement d'une place de marché HTTP pour OpenNebula</variable>
|
<variable name='activerLemon'>Activer l'hébergement d'une place de marché HTTP pour OpenNebula</variable>
|
||||||
@ -81,5 +137,7 @@
|
|||||||
<variable name='authWebName'>Nom DNS de service d'authentification de LemonLDAP::NG ex:auth.cadoles.com</variable>
|
<variable name='authWebName'>Nom DNS de service d'authentification de LemonLDAP::NG ex:auth.cadoles.com</variable>
|
||||||
<variable name='ldapUserBaseDN'>DN de l'utilisateur de connection en lecture à l'annuaire (ex: cn=reader,o=gouv,c=fr)</variable>
|
<variable name='ldapUserBaseDN'>DN de l'utilisateur de connection en lecture à l'annuaire (ex: cn=reader,o=gouv,c=fr)</variable>
|
||||||
<variable name='nginxBucketSize'>server_names_hash_bucket_size Taille du hash des noms de serveur pour NGINX</variable>
|
<variable name='nginxBucketSize'>server_names_hash_bucket_size Taille du hash des noms de serveur pour NGINX</variable>
|
||||||
|
<variable name='llCheckLogins'>Affiche une case à cocher sur la mire SSO qui permet a l'utilisateur de voir l'historique de connection de son compte avant d'être redirigé vers le service demandé</variable>
|
||||||
|
<variable name='llCSPTargets'>Liste des domaines à ajouter à la directive form-action.</variable>
|
||||||
</help>
|
</help>
|
||||||
</creole>
|
</creole>
|
||||||
|
9
postservice/99-lemonldap-ng
Normal file
9
postservice/99-lemonldap-ng
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Updating Configuration cache
|
||||||
|
|
||||||
|
cmd="/usr/share/lemonldap-ng/bin/lemonldap-ng-cli update-cache"
|
||||||
|
opt="update-cache"
|
||||||
|
|
||||||
|
res=$(${cmd} ${opt} 2>&1)
|
||||||
|
exit ${?}
|
27
tmpl/cas.inc.php.tmpl
Normal file
27
tmpl/cas.inc.php.tmpl
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
<?php
|
||||||
|
define("__CAS_SERVER", "%%authWebName");
|
||||||
|
define("__CAS_VERSION", "2.0");
|
||||||
|
define("__CAS_FOLDER", "%%casFolder");
|
||||||
|
define("__CAS_PORT", 443);
|
||||||
|
define("__CAS_PROTO", "https");
|
||||||
|
%if %%cas_send_logout == 'oui'
|
||||||
|
define("__CAS_LOGOUT", true);
|
||||||
|
%else
|
||||||
|
define("__CAS_LOGOUT", false);
|
||||||
|
%end if
|
||||||
|
%if %%getVar('activer_web_valider_ca', 'non') == 'oui'
|
||||||
|
define("__CAS_VALIDER_CA", true);
|
||||||
|
%else
|
||||||
|
define("__CAS_VALIDER_CA", false);
|
||||||
|
%end if
|
||||||
|
%if %%is_empty(%%getVar('ssoCALocation', ''))
|
||||||
|
define("__CAS_CA_LOCATION", "/etc/ssl/certs/ca.crt");
|
||||||
|
%else
|
||||||
|
define("__CAS_CA_LOCATION", "%%ssoCALocation");
|
||||||
|
%end if
|
||||||
|
%if %%getVar("ssoDebug", 'non') == "oui"
|
||||||
|
define("__CAS_DEBUG", true);
|
||||||
|
%else
|
||||||
|
define("__CAS_DEBUG", false);
|
||||||
|
%end if
|
||||||
|
?>
|
7
tmpl/eoleCASConfig.php.tmpl
Normal file
7
tmpl/eoleCASConfig.php.tmpl
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
<?php
|
||||||
|
%if %%mode_conteneur_actif != "non"
|
||||||
|
define("__CAS_IP", "%%adresse_ip_br0");
|
||||||
|
%else
|
||||||
|
define("__CAS_IP", "false");
|
||||||
|
%end if
|
||||||
|
?>
|
@ -12,10 +12,6 @@
|
|||||||
# IMPORTANT:
|
# IMPORTANT:
|
||||||
# To protect applications, see test-nginx.conf template in example files
|
# To protect applications, see test-nginx.conf template in example files
|
||||||
|
|
||||||
%if %%getVar("revprox_hash_bucket_size", "non") == "non"
|
|
||||||
server_names_hash_bucket_size %%nginxBucketSize;
|
|
||||||
%end if
|
|
||||||
|
|
||||||
# Log format
|
# Log format
|
||||||
include /etc/lemonldap-ng/nginx-lmlog.conf;
|
include /etc/lemonldap-ng/nginx-lmlog.conf;
|
||||||
#access_log /var/log/nginx/access.log lm_combined;
|
#access_log /var/log/nginx/access.log lm_combined;
|
||||||
@ -39,22 +35,26 @@ server {
|
|||||||
ssl_client_certificate /etc/ssl/certs/ca.crt;
|
ssl_client_certificate /etc/ssl/certs/ca.crt;
|
||||||
access_log /var/log/nginx/manager-lemon-ldap.access-ssl.log;
|
access_log /var/log/nginx/manager-lemon-ldap.access-ssl.log;
|
||||||
server_name %%reloadWebName;
|
server_name %%reloadWebName;
|
||||||
|
root /var/www/html;
|
||||||
|
|
||||||
error_page 403 404 502 503 504 /nginx.html;
|
error_page 403 404 502 503 504 /nginx.html;
|
||||||
location = /nginx.html{
|
location = /nginx.html{
|
||||||
root /usr/share/nginx/www;
|
root /usr/share/nginx/html;
|
||||||
}
|
}
|
||||||
root /var/www/html;
|
|
||||||
|
|
||||||
location = /reload {
|
location = /reload {
|
||||||
allow 127.0.0.1;
|
allow 127.0.0.1;
|
||||||
%for ipaddr in %%ip_ssh_eth0
|
|
||||||
allow %%toCidr(%%ipaddr, %%ipaddr.netmask_ssh_eth0);
|
|
||||||
%end for
|
|
||||||
deny all;
|
deny all;
|
||||||
|
|
||||||
|
# FastCGI configuration
|
||||||
include /etc/nginx/fastcgi_params;
|
include /etc/nginx/fastcgi_params;
|
||||||
fastcgi_pass unix:/var/run/llng-fastcgi-server/llng-fastcgi.sock;
|
fastcgi_pass unix:/var/run/llng-fastcgi-server/llng-fastcgi.sock;
|
||||||
fastcgi_param LLTYPE reload;
|
fastcgi_param LLTYPE reload;
|
||||||
|
|
||||||
|
# OR TO USE uWSGI
|
||||||
|
#include /etc/nginx/uwsgi_params;
|
||||||
|
#uwsgi_pass 127.0.0.1:5000;
|
||||||
|
#uwsgi_param LLTYPE reload;
|
||||||
}
|
}
|
||||||
|
|
||||||
# Client requests
|
# Client requests
|
||||||
@ -62,15 +62,7 @@ server {
|
|||||||
deny all;
|
deny all;
|
||||||
|
|
||||||
# Uncomment this if you use https only
|
# Uncomment this if you use https only
|
||||||
#add_header Strict-Transport-Security "15768000";
|
#add_header Strict-Transport-Security "max-age=15768000";
|
||||||
}
|
}
|
||||||
|
|
||||||
# Uncomment this if status is enabled
|
|
||||||
#location = /status {
|
|
||||||
# allow 127.0.0.1;
|
|
||||||
# deny all;
|
|
||||||
# include /etc/nginx/fastcgi_params;
|
|
||||||
# fastcgi_pass unix:/var/run/llng-fastcgi-server/llng-fastcgi.sock;
|
|
||||||
# fastcgi_param LLTYPE status;
|
|
||||||
#}
|
|
||||||
}
|
}
|
15
tmpl/lemonldap-ng-fastcgi-server
Normal file
15
tmpl/lemonldap-ng-fastcgi-server
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
# Number of process (default: 7)
|
||||||
|
NPROC = %%lemonproc
|
||||||
|
|
||||||
|
# Unix socket to listen to
|
||||||
|
SOCKET=/run/llng-fastcgi-server/llng-fastcgi.sock
|
||||||
|
|
||||||
|
# Pid file
|
||||||
|
PID=/run/llng-fastcgi-server/llng-fastcgi-server.pid
|
||||||
|
|
||||||
|
# User and GROUP
|
||||||
|
USER=www-data
|
||||||
|
GROUP=www-data
|
||||||
|
|
||||||
|
# Custom functions file
|
||||||
|
#CUSTOM_FUNCTIONS_FILE=/var/lib/lemonldap-ng/myfile.pm
|
@ -110,12 +110,22 @@ localStorageOptions={ \
|
|||||||
; restart your server. This increase performances
|
; restart your server. This increase performances
|
||||||
;useLocalConf = 1
|
;useLocalConf = 1
|
||||||
|
|
||||||
|
; staticPrefix: relative (or URL) location of static HTML components
|
||||||
|
staticPrefix = /static
|
||||||
|
; location of HTML templates directory
|
||||||
|
templateDir = /usr/share/lemonldap-ng/portal/templates
|
||||||
|
; languages: available languages for portal interface
|
||||||
|
languages = fr, en
|
||||||
; PORTAL CUSTOMIZATION
|
; PORTAL CUSTOMIZATION
|
||||||
; Name of the skin
|
; Name of the skin
|
||||||
;portalSkin = pastel
|
portalSkin = %%llSkin
|
||||||
; Modules displayed
|
; Modules displayed
|
||||||
;portalDisplayLogout = 1
|
;portalDisplayLogout = 1
|
||||||
;portalDisplayResetPassword = 1
|
%if %%llResetPassword == "oui"
|
||||||
|
portalDisplayResetPassword = 1
|
||||||
|
%else
|
||||||
|
portalDisplayResetPassword = 0
|
||||||
|
%end if
|
||||||
;portalDisplayChangePassword = 1
|
;portalDisplayChangePassword = 1
|
||||||
;portalDisplayAppslist = 1
|
;portalDisplayAppslist = 1
|
||||||
;portalDisplayLoginHistory = 1
|
;portalDisplayLoginHistory = 1
|
||||||
@ -272,7 +282,7 @@ logLevel = warn
|
|||||||
staticPrefix = /static
|
staticPrefix = /static
|
||||||
;
|
;
|
||||||
; location of HTML templates directory
|
; location of HTML templates directory
|
||||||
templateDir = /usr/share/lemonldap-ng/manager/templates
|
templateDir = /usr/share/lemonldap-ng/manager/htdocs/templates
|
||||||
|
|
||||||
; languages: available languages for manager interface
|
; languages: available languages for manager interface
|
||||||
languages = fr, en
|
languages = fr, en
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
%set %%ssoFilters = %%getSSOFilters
|
||||||
{
|
{
|
||||||
"ldapGroupAttributeNameUser": "dn",
|
"ldapGroupAttributeNameUser": "dn",
|
||||||
"cfgAuthorIP": "172.16.0.1",
|
"cfgAuthorIP": "172.16.0.1",
|
||||||
@ -25,7 +26,7 @@
|
|||||||
"timeoutActivity": 0,
|
"timeoutActivity": 0,
|
||||||
"oidcRPMetaDataExportedVars": {},
|
"oidcRPMetaDataExportedVars": {},
|
||||||
"issuerDBSAMLActivation": 0,
|
"issuerDBSAMLActivation": 0,
|
||||||
"issuerDBCASPath": "^/cas/",
|
"issuerDBCASPath": "^/%%casFolder/",
|
||||||
"randomPasswordRegexp": "[A-Z]{3}[a-z]{5}.\\d{2}",
|
"randomPasswordRegexp": "[A-Z]{3}[a-z]{5}.\\d{2}",
|
||||||
"samlIDPSSODescriptorSingleSignOnServiceSOAP": "urn:oasis:names:tc:SAML:2.0:bindings:SOAP;#PORTAL#/saml/singleSignOnSOAP;",
|
"samlIDPSSODescriptorSingleSignOnServiceSOAP": "urn:oasis:names:tc:SAML:2.0:bindings:SOAP;#PORTAL#/saml/singleSignOnSOAP;",
|
||||||
"samlSPSSODescriptorSingleLogoutServiceHTTPPost": "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST;#PORTAL#/saml/proxySingleLogout;#PORTAL#/saml/proxySingleLogoutReturn",
|
"samlSPSSODescriptorSingleLogoutServiceHTTPPost": "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST;#PORTAL#/saml/proxySingleLogout;#PORTAL#/saml/proxySingleLogoutReturn",
|
||||||
@ -39,7 +40,9 @@
|
|||||||
"%%managerWebName": {}
|
"%%managerWebName": {}
|
||||||
},
|
},
|
||||||
"vhostOptions": {
|
"vhostOptions": {
|
||||||
"%%managerWebName": {},
|
"%%managerWebName": {
|
||||||
|
"vhostHttps" : "1"
|
||||||
|
},
|
||||||
"test1.%%nom_domaine_local": {},
|
"test1.%%nom_domaine_local": {},
|
||||||
"test2.%%nom_domaine_local": {}
|
"test2.%%nom_domaine_local": {}
|
||||||
},
|
},
|
||||||
@ -63,7 +66,20 @@
|
|||||||
"cfgLog": "",
|
"cfgLog": "",
|
||||||
"samlIDPSSODescriptorSingleLogoutServiceHTTPRedirect": "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect;#PORTAL#/saml/singleLogout;#PORTAL#/saml/singleLogoutReturn",
|
"samlIDPSSODescriptorSingleLogoutServiceHTTPRedirect": "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect;#PORTAL#/saml/singleLogout;#PORTAL#/saml/singleLogoutReturn",
|
||||||
"exportedVars": {
|
"exportedVars": {
|
||||||
"UA": "HTTP_USER_AGENT"
|
"UA": "HTTP_USER_AGENT",
|
||||||
|
%for att in %%casAttribute
|
||||||
|
"%%att": "%%att",
|
||||||
|
%end for
|
||||||
|
%set %%idx = 0
|
||||||
|
%set %%size = %%len(%%ssoFilters) - 1
|
||||||
|
%for key,value in %%ssoFilters
|
||||||
|
%if %%idx == %%size
|
||||||
|
"%%key": "%%value"
|
||||||
|
%else
|
||||||
|
"%%key": "%%value",
|
||||||
|
%end if
|
||||||
|
%set %%idx += 1
|
||||||
|
%end for
|
||||||
},
|
},
|
||||||
"notificationStorage": "File",
|
"notificationStorage": "File",
|
||||||
"applicationList": {
|
"applicationList": {
|
||||||
@ -159,11 +175,19 @@
|
|||||||
"ldapUsePasswordResetAttribute": 1,
|
"ldapUsePasswordResetAttribute": 1,
|
||||||
"ldapPpolicyControl": 0,
|
"ldapPpolicyControl": 0,
|
||||||
"casAttributes": {
|
"casAttributes": {
|
||||||
"uid":"uid",
|
|
||||||
%for att in %%casAttribute
|
%for att in %%casAttribute
|
||||||
"%%att": "%%att.casLDAPAttribute",
|
"%%att": "%%att.casLDAPAttribute",
|
||||||
%end for
|
%end for
|
||||||
"mail":"mail"
|
%set %%idx = 0
|
||||||
|
%set %%size = %%len(%%ssoFilters) - 1
|
||||||
|
%for key,value in %%ssoFilters
|
||||||
|
%if %%idx == %%size
|
||||||
|
"%%key": "%%key"
|
||||||
|
%else
|
||||||
|
"%%key": "%%key",
|
||||||
|
%end if
|
||||||
|
%set %%idx += 1
|
||||||
|
%end for
|
||||||
},
|
},
|
||||||
"issuerDBSAMLPath": "^/saml/",
|
"issuerDBSAMLPath": "^/saml/",
|
||||||
"samlAttributeAuthorityDescriptorAttributeServiceSOAP": "urn:oasis:names:tc:SAML:2.0:bindings:SOAP;#PORTAL#/saml/AA/SOAP;",
|
"samlAttributeAuthorityDescriptorAttributeServiceSOAP": "urn:oasis:names:tc:SAML:2.0:bindings:SOAP;#PORTAL#/saml/AA/SOAP;",
|
||||||
@ -196,7 +220,11 @@
|
|||||||
"mailSubject": "[LemonLDAP::NG] Your new password",
|
"mailSubject": "[LemonLDAP::NG] Your new password",
|
||||||
"nginxCustomHandlers": {},
|
"nginxCustomHandlers": {},
|
||||||
"samlSPSSODescriptorAuthnRequestsSigned": 1,
|
"samlSPSSODescriptorAuthnRequestsSigned": 1,
|
||||||
|
%if %%llResetPassword == "oui"
|
||||||
"portalDisplayResetPassword": 1,
|
"portalDisplayResetPassword": 1,
|
||||||
|
%else
|
||||||
|
"portalDisplayResetPassword": 0,
|
||||||
|
%end if
|
||||||
"openIdSreg_timezone": "_timezone",
|
"openIdSreg_timezone": "_timezone",
|
||||||
"infoFormMethod": "get",
|
"infoFormMethod": "get",
|
||||||
"openIdAuthnLevel": 1,
|
"openIdAuthnLevel": 1,
|
||||||
@ -213,7 +241,12 @@
|
|||||||
"slaveAuthnLevel": 2,
|
"slaveAuthnLevel": 2,
|
||||||
"samlIDPSSODescriptorSingleLogoutServiceHTTPPost": "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST;#PORTAL#/saml/singleLogout;#PORTAL#/saml/singleLogoutReturn",
|
"samlIDPSSODescriptorSingleLogoutServiceHTTPPost": "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST;#PORTAL#/saml/singleLogout;#PORTAL#/saml/singleLogoutReturn",
|
||||||
"Soap": 1,
|
"Soap": 1,
|
||||||
"registerDB": "Demo",
|
%set %%RegisterDB=%%getVar('llRegisterDB', 'Demo')
|
||||||
|
%if %%RegisterDB == "Custom"
|
||||||
|
"registerDB": "Null",
|
||||||
|
%else
|
||||||
|
"registerDB": "%%RegisterDB",
|
||||||
|
%end if
|
||||||
"locationRules": {
|
"locationRules": {
|
||||||
"%%managerWebName": {
|
"%%managerWebName": {
|
||||||
"default": "$uid eq \"%%lemonAdmin\""
|
"default": "$uid eq \"%%lemonAdmin\""
|
||||||
@ -343,7 +376,11 @@
|
|||||||
"activeTimer": 1,
|
"activeTimer": 1,
|
||||||
"cda": 0,
|
"cda": 0,
|
||||||
"samlServicePublicKeySig": "",
|
"samlServicePublicKeySig": "",
|
||||||
|
%if %%llCheckLogins == "oui"
|
||||||
"portalCheckLogins": 1,
|
"portalCheckLogins": 1,
|
||||||
|
%else
|
||||||
|
"portalCheckLogins": 0,
|
||||||
|
%end if
|
||||||
"CAS_authnLevel": 1,
|
"CAS_authnLevel": 1,
|
||||||
"macros": {
|
"macros": {
|
||||||
"_whatToTrace": "$_auth eq 'SAML' ? \"$_user\\@$_idpConfKey\" : \"$_user\""
|
"_whatToTrace": "$_auth eq 'SAML' ? \"$_user\\@$_idpConfKey\" : \"$_user\""
|
||||||
@ -355,7 +392,11 @@
|
|||||||
"oidcOPMetaDataJWKS": null,
|
"oidcOPMetaDataJWKS": null,
|
||||||
"webIDAuthnLevel": 1,
|
"webIDAuthnLevel": 1,
|
||||||
"issuerDBOpenIDActivation": "1",
|
"issuerDBOpenIDActivation": "1",
|
||||||
|
%if %%is_empty(%%llResetUrl)
|
||||||
"mailUrl": "https://%%authWebName/mail.pl",
|
"mailUrl": "https://%%authWebName/mail.pl",
|
||||||
|
%else
|
||||||
|
"mailUrl": "%%llResetUrl",
|
||||||
|
%end if
|
||||||
"maintenance": 0,
|
"maintenance": 0,
|
||||||
"jsRedirect": 0,
|
"jsRedirect": 0,
|
||||||
"cfgAuthor": "Cadoles",
|
"cfgAuthor": "Cadoles",
|
||||||
@ -389,7 +430,11 @@
|
|||||||
"oidcOPMetaDataOptions": null,
|
"oidcOPMetaDataOptions": null,
|
||||||
"samlSPSSODescriptorWantAssertionsSigned": 1,
|
"samlSPSSODescriptorWantAssertionsSigned": 1,
|
||||||
"samlOrganizationName": "%%samlOrganizationName",
|
"samlOrganizationName": "%%samlOrganizationName",
|
||||||
|
%if %%RegisterDB == "Custom"
|
||||||
|
"registerUrl": "%%llRegisterURL",
|
||||||
|
%else
|
||||||
"registerUrl": "https://%%authWebName/register.pl",
|
"registerUrl": "https://%%authWebName/register.pl",
|
||||||
|
%end if
|
||||||
"casAccessControlPolicy": "none",
|
"casAccessControlPolicy": "none",
|
||||||
"multiValuesSeparator": ";",
|
"multiValuesSeparator": ";",
|
||||||
"ldapPort": %%ldapServerPort
|
"ldapPort": %%ldapServerPort
|
||||||
|
441
tmpl/lmConf-1.json
Normal file
441
tmpl/lmConf-1.json
Normal file
@ -0,0 +1,441 @@
|
|||||||
|
%set %%ssoFilters = %%getSSOFilters
|
||||||
|
{
|
||||||
|
"ldapGroupAttributeNameUser": "dn",
|
||||||
|
"cfgAuthorIP": "172.16.0.1",
|
||||||
|
"samlSPMetaDataXML": null,
|
||||||
|
"facebookAuthnLevel": 1,
|
||||||
|
"mailConfirmSubject": "[LemonLDAP::NG] Password reset confirmation",
|
||||||
|
"secureTokenAttribute": "uid",
|
||||||
|
"singleSession": 0,
|
||||||
|
"registerConfirmSubject": "[LemonLDAP::NG] Account register confirmation",
|
||||||
|
"CAS_pgtFile": "/tmp/pgt.txt",
|
||||||
|
"cookieName": "lemonldap",
|
||||||
|
"slaveExportedVars": {},
|
||||||
|
"whatToTrace": "_whatToTrace",
|
||||||
|
"oidcRPMetaDataOptions": {},
|
||||||
|
"notifyDeleted": 1,
|
||||||
|
"useRedirectOnError": 1,
|
||||||
|
"samlSPMetaDataExportedAttributes": null,
|
||||||
|
"ldapPwdEnc": "utf-8",
|
||||||
|
"openIdSPList": "0;",
|
||||||
|
"samlNameIDFormatMapEmail": "mail",
|
||||||
|
"samlSPMetaDataOptions": null,
|
||||||
|
"issuerDBOpenIDRule": 1,
|
||||||
|
"casStorageOptions": {},
|
||||||
|
"mailFrom": "noreply@%%nom_domaine_local",
|
||||||
|
"timeoutActivity": 0,
|
||||||
|
"oidcRPMetaDataExportedVars": {},
|
||||||
|
"issuerDBSAMLActivation": 0,
|
||||||
|
"issuerDBCASPath": "^/%%casFolder/",
|
||||||
|
"randomPasswordRegexp": "[A-Z]{3}[a-z]{5}.\\d{2}",
|
||||||
|
"samlIDPSSODescriptorSingleSignOnServiceSOAP": "urn:oasis:names:tc:SAML:2.0:bindings:SOAP;#PORTAL#/saml/singleSignOnSOAP;",
|
||||||
|
"samlSPSSODescriptorSingleLogoutServiceHTTPPost": "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST;#PORTAL#/saml/proxySingleLogout;#PORTAL#/saml/proxySingleLogoutReturn",
|
||||||
|
"exportedHeaders": {
|
||||||
|
"test1.%%nom_domaine_local": {
|
||||||
|
"Auth-User": "$uid"
|
||||||
|
},
|
||||||
|
"test2.%%nom_domaine_local": {
|
||||||
|
"Auth-User": "$uid"
|
||||||
|
},
|
||||||
|
"%%managerWebName": {}
|
||||||
|
},
|
||||||
|
"vhostOptions": {
|
||||||
|
"%%managerWebName": {
|
||||||
|
"vhostHttps" : "1"
|
||||||
|
},
|
||||||
|
"test1.%%nom_domaine_local": {},
|
||||||
|
"test2.%%nom_domaine_local": {}
|
||||||
|
},
|
||||||
|
"radiusAuthnLevel": 3,
|
||||||
|
"dbiAuthnLevel": 2,
|
||||||
|
"ldapPasswordResetAttribute": "pwdReset",
|
||||||
|
"ldapGroupObjectClass": "groupOfNames",
|
||||||
|
"apacheAuthnLevel": 4,
|
||||||
|
"samlNameIDFormatMapKerberos": "uid",
|
||||||
|
"groups": {},
|
||||||
|
"securedCookie": 0,
|
||||||
|
"httpOnly": 1,
|
||||||
|
"yubikeyAuthnLevel": 3,
|
||||||
|
"ADPwdMaxAge": 0,
|
||||||
|
"samlUseQueryStringSpecific": 0,
|
||||||
|
"loginHistoryEnabled": 1,
|
||||||
|
"samlSPSSODescriptorSingleLogoutServiceSOAP": "urn:oasis:names:tc:SAML:2.0:bindings:SOAP;#PORTAL#/saml/proxySingleLogoutSOAP;",
|
||||||
|
"failedLoginNumber": 5,
|
||||||
|
"samlServicePrivateKeyEncPwd": "",
|
||||||
|
"portalForceAuthnInterval": 0,
|
||||||
|
"cfgLog": "",
|
||||||
|
"samlIDPSSODescriptorSingleLogoutServiceHTTPRedirect": "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect;#PORTAL#/saml/singleLogout;#PORTAL#/saml/singleLogoutReturn",
|
||||||
|
"exportedVars": {
|
||||||
|
"UA": "HTTP_USER_AGENT",
|
||||||
|
%for att in %%casAttribute
|
||||||
|
"%%att": "%%att",
|
||||||
|
%end for
|
||||||
|
%set %%idx = 0
|
||||||
|
%set %%size = %%len(%%ssoFilters) - 1
|
||||||
|
%for key,value in %%ssoFilters
|
||||||
|
%if %%idx == %%size
|
||||||
|
"%%key": "%%value"
|
||||||
|
%else
|
||||||
|
"%%key": "%%value",
|
||||||
|
%end if
|
||||||
|
%set %%idx += 1
|
||||||
|
%end for
|
||||||
|
},
|
||||||
|
"notificationStorage": "File",
|
||||||
|
"applicationList": {
|
||||||
|
"1sample": {
|
||||||
|
"test2": {
|
||||||
|
"options": {
|
||||||
|
"name": "Application Test 2",
|
||||||
|
"logo": "thumbnail.png",
|
||||||
|
"uri": "https://test2.%%nom_domaine_local/",
|
||||||
|
"display": "auto",
|
||||||
|
"description": "The same simple application displaying authenticated user"
|
||||||
|
},
|
||||||
|
"type": "application"
|
||||||
|
},
|
||||||
|
"type": "category",
|
||||||
|
"catname": "Sample applications",
|
||||||
|
"test1": {
|
||||||
|
"type": "application",
|
||||||
|
"options": {
|
||||||
|
"description": "A simple application displaying authenticated user",
|
||||||
|
"uri": "https://test1.%%nom_domaine_local/",
|
||||||
|
"logo": "demo.png",
|
||||||
|
"display": "auto",
|
||||||
|
"name": "Application Test 1"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"2administration": {
|
||||||
|
"notifications": {
|
||||||
|
"options": {
|
||||||
|
"name": "Notifications explorer",
|
||||||
|
"display": "auto",
|
||||||
|
"description": "Explore WebSSO notifications",
|
||||||
|
"uri": "https://%%managerWebName/notifications.pl",
|
||||||
|
"logo": "database.png"
|
||||||
|
},
|
||||||
|
"type": "application"
|
||||||
|
},
|
||||||
|
"manager": {
|
||||||
|
"options": {
|
||||||
|
"uri": "https://%%managerWebName/",
|
||||||
|
"display": "auto",
|
||||||
|
"description": "Configure LemonLDAP::NG WebSSO",
|
||||||
|
"logo": "configure.png",
|
||||||
|
"name": "WebSSO Manager"
|
||||||
|
},
|
||||||
|
"type": "application"
|
||||||
|
},
|
||||||
|
"type": "category",
|
||||||
|
"sessions": {
|
||||||
|
"type": "application",
|
||||||
|
"options": {
|
||||||
|
"description": "Explore WebSSO sessions",
|
||||||
|
"uri": "https://%%managerWebName/sessions.pl",
|
||||||
|
"logo": "database.png",
|
||||||
|
"display": "auto",
|
||||||
|
"name": "Sessions explorer"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"catname": "Administration"
|
||||||
|
},
|
||||||
|
"3documentation": {
|
||||||
|
"catname": "Documentation",
|
||||||
|
"officialwebsite": {
|
||||||
|
"type": "application",
|
||||||
|
"options": {
|
||||||
|
"name": "Offical Website",
|
||||||
|
"description": "Official LemonLDAP::NG Website",
|
||||||
|
"logo": "network.png",
|
||||||
|
"display": "on",
|
||||||
|
"uri": "http://lemonldap-ng.org/"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"type": "category",
|
||||||
|
"localdoc": {
|
||||||
|
"options": {
|
||||||
|
"logo": "help.png",
|
||||||
|
"description": "Documentation supplied with LemonLDAP::NG",
|
||||||
|
"display": "on",
|
||||||
|
"uri": "http://%%managerWebName/doc/",
|
||||||
|
"name": "Local documentation"
|
||||||
|
},
|
||||||
|
"type": "application"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"userControl": "^[\\w\\.\\-@]+$",
|
||||||
|
"timeout": 72000,
|
||||||
|
"portalAntiFrame": 1,
|
||||||
|
"SMTPServer": "",
|
||||||
|
"ldapTimeout": 120,
|
||||||
|
"samlAuthnContextMapPasswordProtectedTransport": 3,
|
||||||
|
"ldapUsePasswordResetAttribute": 1,
|
||||||
|
"ldapPpolicyControl": 0,
|
||||||
|
"casAttributes": {
|
||||||
|
%for att in %%casAttribute
|
||||||
|
"%%att": "%%att.casLDAPAttribute",
|
||||||
|
%end for
|
||||||
|
%set %%idx = 0
|
||||||
|
%set %%size = %%len(%%ssoFilters) - 1
|
||||||
|
%for key,value in %%ssoFilters
|
||||||
|
%if %%idx == %%size
|
||||||
|
"%%key": "%%key"
|
||||||
|
%else
|
||||||
|
"%%key": "%%key",
|
||||||
|
%end if
|
||||||
|
%set %%idx += 1
|
||||||
|
%end for
|
||||||
|
},
|
||||||
|
"issuerDBSAMLPath": "^/saml/",
|
||||||
|
"samlAttributeAuthorityDescriptorAttributeServiceSOAP": "urn:oasis:names:tc:SAML:2.0:bindings:SOAP;#PORTAL#/saml/AA/SOAP;",
|
||||||
|
"portalDisplayAppslist": 1,
|
||||||
|
"confirmFormMethod": "post",
|
||||||
|
"domain": "%%nom_domaine_local",
|
||||||
|
"cfgNum": "1",
|
||||||
|
"authentication": "LDAP",
|
||||||
|
"samlNameIDFormatMapWindows": "uid",
|
||||||
|
"authChoiceModules": {},
|
||||||
|
"ldapGroupAttributeName": "member",
|
||||||
|
"samlServicePrivateKeySigPwd": "",
|
||||||
|
"googleAuthnLevel": 1,
|
||||||
|
"successLoginNumber": 5,
|
||||||
|
"localSessionStorageOptions": {
|
||||||
|
"cache_root": "/tmp",
|
||||||
|
"namespace": "lemonldap-ng-sessions",
|
||||||
|
"default_expires_in": 600,
|
||||||
|
"directory_umask": "007",
|
||||||
|
"cache_depth": 3
|
||||||
|
},
|
||||||
|
"samlSPSSODescriptorArtifactResolutionServiceArtifact": "1;0;urn:oasis:names:tc:SAML:2.0:bindings:SOAP;#PORTAL#/saml/artifact",
|
||||||
|
"portalRequireOldPassword": 1,
|
||||||
|
"samlIDPSSODescriptorSingleSignOnServiceHTTPArtifact": "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Artifact;#PORTAL#/saml/singleSignOnArtifact;",
|
||||||
|
"ADPwdExpireWarning": 0,
|
||||||
|
"yubikeyPublicIDSize": 12,
|
||||||
|
"ldapGroupAttributeNameGroup": "dn",
|
||||||
|
"oidcRPMetaDataOptionsExtraClaims": null,
|
||||||
|
"ldapGroupRecursive": 0,
|
||||||
|
"mailSubject": "[LemonLDAP::NG] Your new password",
|
||||||
|
"nginxCustomHandlers": {},
|
||||||
|
"samlSPSSODescriptorAuthnRequestsSigned": 1,
|
||||||
|
%if %%llResetPassword == "oui"
|
||||||
|
"portalDisplayResetPassword": 1,
|
||||||
|
%else
|
||||||
|
"portalDisplayResetPassword": 0,
|
||||||
|
%end if
|
||||||
|
"openIdSreg_timezone": "_timezone",
|
||||||
|
"infoFormMethod": "get",
|
||||||
|
"openIdAuthnLevel": 1,
|
||||||
|
"openIdSreg_nickname": "uid",
|
||||||
|
"samlServicePublicKeyEnc": "",
|
||||||
|
"userDB": "LDAP",
|
||||||
|
"grantSessionRules": {},
|
||||||
|
"remoteGlobalStorage": "Lemonldap::NG::Common::Apache::Session::SOAP",
|
||||||
|
"reloadUrls": {
|
||||||
|
"%%reloadWebName": "https://%%reloadWebName/reload"
|
||||||
|
},
|
||||||
|
"registerTimeout": 0,
|
||||||
|
"samlIDPSSODescriptorSingleSignOnServiceHTTPPost": "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST;#PORTAL#/saml/singleSignOn;",
|
||||||
|
"slaveAuthnLevel": 2,
|
||||||
|
"samlIDPSSODescriptorSingleLogoutServiceHTTPPost": "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST;#PORTAL#/saml/singleLogout;#PORTAL#/saml/singleLogoutReturn",
|
||||||
|
"Soap": 1,
|
||||||
|
%set %%RegisterDB=%%getVar('llRegisterDB', 'Demo')
|
||||||
|
%if %%RegisterDB == "Custom"
|
||||||
|
"registerDB": "Null",
|
||||||
|
%else
|
||||||
|
"registerDB": "%%RegisterDB",
|
||||||
|
%end if
|
||||||
|
"locationRules": {
|
||||||
|
"%%managerWebName": {
|
||||||
|
"default": "$uid eq \"%%lemonAdmin\""
|
||||||
|
},
|
||||||
|
"test1.%%nom_domaine_local": {
|
||||||
|
"default": "accept",
|
||||||
|
"^/logout": "logout_sso"
|
||||||
|
},
|
||||||
|
"test2.%%nom_domaine_local": {
|
||||||
|
"default": "accept",
|
||||||
|
"^/logout": "logout_sso"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"portalDisplayChangePassword": "$_auth =~ /^(LDAP|DBI|Demo)$/",
|
||||||
|
"hideOldPassword": 0,
|
||||||
|
%if %%is_file(%%ldapBindUserPassword)
|
||||||
|
"managerPassword": "%%readPass("", %%ldapBindUserPassword)",
|
||||||
|
%else
|
||||||
|
"managerPassword": "%%ldapBindUserPassword",
|
||||||
|
%end if
|
||||||
|
"authChoiceParam": "lmAuth",
|
||||||
|
"lwpSslOpts": {},
|
||||||
|
"portalSkinRules": {},
|
||||||
|
"issuerDBOpenIDPath": "^/openidserver/",
|
||||||
|
"redirectFormMethod": "get",
|
||||||
|
"portalDisplayRegister": 1,
|
||||||
|
"secureTokenMemcachedServers": "127.0.0.1:11211",
|
||||||
|
"notificationStorageOptions": {
|
||||||
|
"dirName": "/var/lib/lemonldap-ng/notifications"
|
||||||
|
},
|
||||||
|
"browserIdAuthnLevel": 1,
|
||||||
|
"portalUserAttr": "_user",
|
||||||
|
"ldapVersion": 3,
|
||||||
|
"sessionDataToRemember": {},
|
||||||
|
"samlNameIDFormatMapX509": "mail",
|
||||||
|
"managerDn": "%%ldapBindUserDN",
|
||||||
|
"mailSessionKey": "mail",
|
||||||
|
"openIdSreg_email": "mail",
|
||||||
|
"localSessionStorage": "Cache::FileCache",
|
||||||
|
"persistentStorage": "Apache::Session::File",
|
||||||
|
"mailOnPasswordChange": 0,
|
||||||
|
"captchaStorage": "Apache::Session::File",
|
||||||
|
"remoteGlobalStorageOptions": {
|
||||||
|
"proxy": "https://%%authWebName/index.pl/sessions",
|
||||||
|
"ns": "https://%%authWebName/Lemonldap/NG/Common/CGI/SOAPService"
|
||||||
|
},
|
||||||
|
"passwordDB": "LDAP",
|
||||||
|
"captcha_size": 6,
|
||||||
|
"mailCharset": "utf-8",
|
||||||
|
"facebookExportedVars": {},
|
||||||
|
"nullAuthnLevel": 2,
|
||||||
|
"singleIP": 0,
|
||||||
|
"dbiExportedVars": {},
|
||||||
|
"portalSkin": "bootstrap",
|
||||||
|
"storePassword": 0,
|
||||||
|
"hiddenAttributes": "_password",
|
||||||
|
"samlServicePrivateKeySig": "",
|
||||||
|
"globalStorage": "Apache::Session::File",
|
||||||
|
"notificationWildcard": "allusers",
|
||||||
|
"portalForceAuthn": 0,
|
||||||
|
"samlMetadataForceUTF8": 1,
|
||||||
|
"secureTokenUrls": ".*",
|
||||||
|
"secureTokenAllowOnError": 1,
|
||||||
|
"samlAuthnContextMapTLSClient": 5,
|
||||||
|
"ldapAllowResetExpiredPassword": 0,
|
||||||
|
"oidcOPMetaDataExportedVars": {},
|
||||||
|
"notifyOther": 0,
|
||||||
|
"secureTokenExpiration": 60,
|
||||||
|
"captcha_mail_enabled": 0,
|
||||||
|
"samlStorageOptions": {},
|
||||||
|
"samlOrganizationDisplayName": "Example",
|
||||||
|
"trustedProxies": "",
|
||||||
|
"secureTokenHeader": "Auth-Token",
|
||||||
|
"issuerDBCASActivation": 1,
|
||||||
|
"samlIDPSSODescriptorSingleSignOnServiceHTTPRedirect": "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect;#PORTAL#/saml/singleSignOn;",
|
||||||
|
"samlSPSSODescriptorSingleLogoutServiceHTTPRedirect": "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect;#PORTAL#/saml/proxySingleLogout;#PORTAL#/saml/proxySingleLogoutReturn",
|
||||||
|
"samlIDPMetaDataXML": {},
|
||||||
|
"oidcStorageOptions": {},
|
||||||
|
"cfgDate": 1519998069,
|
||||||
|
"samlAuthnContextMapPassword": 2,
|
||||||
|
"portalDisplayLoginHistory": 1,
|
||||||
|
"ldapPasswordResetAttributeValue": "TRUE",
|
||||||
|
"ldapServer": "%%ldapScheme://%%ldapServer",
|
||||||
|
"samlIDPSSODescriptorSingleLogoutServiceSOAP": "urn:oasis:names:tc:SAML:2.0:bindings:SOAP;#PORTAL#/saml/singleLogoutSOAP;",
|
||||||
|
"samlIDPMetaDataExportedAttributes": null,
|
||||||
|
"samlServicePrivateKeyEnc": "",
|
||||||
|
"useRedirectOnForbidden": 0,
|
||||||
|
"captcha_login_enabled": 0,
|
||||||
|
"https": 0,
|
||||||
|
"checkXSS": 1,
|
||||||
|
"ldapSetPassword": 0,
|
||||||
|
"portalPingInterval": 60000,
|
||||||
|
"captchaStorageOptions": {
|
||||||
|
"Directory": "/var/lib/lemonldap-ng/captcha/"
|
||||||
|
},
|
||||||
|
"useSafeJail": 1,
|
||||||
|
"registerDoneSubject": "[LemonLDAP::NG] Your new account",
|
||||||
|
"issuerDBCASRule": 1,
|
||||||
|
"samlAuthnContextMapKerberos": 4,
|
||||||
|
"ldapGroupAttributeNameSearch": "cn",
|
||||||
|
"logoutServices": {},
|
||||||
|
"samlIDPSSODescriptorWantAuthnRequestsSigned": 1,
|
||||||
|
"portalDisplayLogout": 1,
|
||||||
|
"issuerDBGetParameters": {},
|
||||||
|
"googleExportedVars": {},
|
||||||
|
"openIdSreg_fullname": "cn",
|
||||||
|
"samlSPSSODescriptorAssertionConsumerServiceHTTPArtifact": "1;0;urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Artifact;#PORTAL#/saml/proxySingleSignOnArtifact",
|
||||||
|
"demoExportedVars": {
|
||||||
|
"mail": "mail",
|
||||||
|
"uid": "uid",
|
||||||
|
"cn": "cn"
|
||||||
|
},
|
||||||
|
"oidcOPMetaDataJSON": null,
|
||||||
|
"samlIdPResolveCookie": "lemonldapidp",
|
||||||
|
"samlRelayStateTimeout": 600,
|
||||||
|
"samlOrganizationURL": "https://auth.%%nom_domaine_local",
|
||||||
|
"globalStorageOptions": {
|
||||||
|
"Directory": "/var/lib/lemonldap-ng/sessions",
|
||||||
|
"LockDirectory": "/var/lib/lemonldap-ng/sessions/lock"
|
||||||
|
},
|
||||||
|
"ldapExportedVars": {
|
||||||
|
"mail": "mail",
|
||||||
|
"cn": "cn",
|
||||||
|
"uid": "uid"
|
||||||
|
},
|
||||||
|
"webIDExportedVars": {},
|
||||||
|
"activeTimer": 1,
|
||||||
|
"cda": 0,
|
||||||
|
"samlServicePublicKeySig": "",
|
||||||
|
%if %%llCheckLogins == "oui"
|
||||||
|
"portalCheckLogins": 1,
|
||||||
|
%else
|
||||||
|
"portalCheckLogins": 0,
|
||||||
|
%end if
|
||||||
|
"CAS_authnLevel": 1,
|
||||||
|
"macros": {
|
||||||
|
"_whatToTrace": "$_auth eq 'SAML' ? \"$_user\\@$_idpConfKey\" : \"$_user\""
|
||||||
|
},
|
||||||
|
"samlIDPMetaDataOptions": null,
|
||||||
|
"twitterAuthnLevel": 1,
|
||||||
|
"openIdExportedVars": {},
|
||||||
|
"captcha_register_enabled": 1,
|
||||||
|
"oidcOPMetaDataJWKS": null,
|
||||||
|
"webIDAuthnLevel": 1,
|
||||||
|
"issuerDBOpenIDActivation": "1",
|
||||||
|
%if %%is_empty(%%llResetUrl)
|
||||||
|
"mailUrl": "https://%%authWebName/mail.pl",
|
||||||
|
%else
|
||||||
|
"mailUrl": "%%llResetUrl",
|
||||||
|
%end if
|
||||||
|
"maintenance": 0,
|
||||||
|
"jsRedirect": 0,
|
||||||
|
"cfgAuthor": "Cadoles",
|
||||||
|
"persistentStorageOptions": {
|
||||||
|
"LockDirectory": "/var/lib/lemonldap-ng/psessions/lock",
|
||||||
|
"Directory": "/var/lib/lemonldap-ng/psessions"
|
||||||
|
},
|
||||||
|
"SSLAuthnLevel": 5,
|
||||||
|
"oidcServiceMetaDataAuthnContext": {},
|
||||||
|
"samlIDPSSODescriptorArtifactResolutionServiceArtifact": "1;0;urn:oasis:names:tc:SAML:2.0:bindings:SOAP;#PORTAL#/saml/artifact",
|
||||||
|
"notification": 1,
|
||||||
|
"ldapChangePasswordAsUser": 0,
|
||||||
|
"CAS_proxiedServices": {},
|
||||||
|
"key": "e\"bTCt3*eU9^\\V%b",
|
||||||
|
"portal": "https://%%authWebName/",
|
||||||
|
"singleSessionUserByIP": 0,
|
||||||
|
"portalOpenLinkInNewWindow": 0,
|
||||||
|
"post": {
|
||||||
|
"test2.%%nom_domaine_local": {},
|
||||||
|
"test1.%%nom_domaine_local": {},
|
||||||
|
"%%managerWebName": {}
|
||||||
|
},
|
||||||
|
"samlSPSSODescriptorAssertionConsumerServiceHTTPPost": "0;1;urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST;#PORTAL#/saml/proxySingleSignOnPost",
|
||||||
|
"issuerDBSAMLRule": 1,
|
||||||
|
"samlCommonDomainCookieActivation": 0,
|
||||||
|
"syslog": "",
|
||||||
|
"ldapBase": "%%ldapUserBaseDN",
|
||||||
|
"ldapAuthnLevel": 2,
|
||||||
|
"mailTimeout": 0,
|
||||||
|
"samlEntityID": "#PORTAL#/saml/metadata",
|
||||||
|
"oidcOPMetaDataOptions": null,
|
||||||
|
"samlSPSSODescriptorWantAssertionsSigned": 1,
|
||||||
|
"samlOrganizationName": "%%samlOrganizationName",
|
||||||
|
%if %%RegisterDB == "Custom"
|
||||||
|
"registerUrl": "%%llRegisterURL",
|
||||||
|
%else
|
||||||
|
"registerUrl": "https://%%authWebName/register.pl",
|
||||||
|
%end if
|
||||||
|
"casAccessControlPolicy": "none",
|
||||||
|
"multiValuesSeparator": ";",
|
||||||
|
"ldapPort": %%ldapServerPort
|
||||||
|
}
|
@ -7,7 +7,7 @@ server {
|
|||||||
server {
|
server {
|
||||||
listen 443;
|
listen 443;
|
||||||
ssl on;
|
ssl on;
|
||||||
%if %%cert_type == "letsencrypt"
|
%if %%cert_type == "letsencrypt"
|
||||||
ssl_certificate %%le_config_dir/live/%%managerWebName/cert.pem;
|
ssl_certificate %%le_config_dir/live/%%managerWebName/cert.pem;
|
||||||
ssl_certificate_key %%le_config_dir/live/%%managerWebName/privkey.pem;
|
ssl_certificate_key %%le_config_dir/live/%%managerWebName/privkey.pem;
|
||||||
%else
|
%else
|
||||||
@ -20,29 +20,41 @@ server {
|
|||||||
|
|
||||||
error_page 403 404 502 503 504 /nginx.html;
|
error_page 403 404 502 503 504 /nginx.html;
|
||||||
location = /nginx.html{
|
location = /nginx.html{
|
||||||
root /usr/share/nginx/www;
|
root /usr/share/nginx/html;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($uri !~ ^/(manager\.psgi|static|doc|fr-doc|lib|javascript|favicon)) {
|
root /usr/share/lemonldap-ng/manager/htdocs/;
|
||||||
|
|
||||||
|
if ($uri !~ ^/(.*\.psgi|static|doc|lib|javascript|favicon)) {
|
||||||
rewrite ^/(.*)$ /manager.psgi/$1 break;
|
rewrite ^/(.*)$ /manager.psgi/$1 break;
|
||||||
}
|
}
|
||||||
|
|
||||||
location /manager.psgi {
|
location ~ ^(?<sc>/.*\.psgi)(?:$|/) {
|
||||||
|
|
||||||
|
# FastCGI configuration
|
||||||
include /etc/nginx/fastcgi_params;
|
include /etc/nginx/fastcgi_params;
|
||||||
fastcgi_pass unix:/var/run/llng-fastcgi-server/llng-fastcgi.sock;
|
fastcgi_pass unix:/var/run/llng-fastcgi-server/llng-fastcgi.sock;
|
||||||
fastcgi_param LLTYPE manager;
|
fastcgi_param LLTYPE psgi;
|
||||||
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
|
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
|
||||||
fastcgi_split_path_info ^(.*\.psgi)(/.*)$;
|
fastcgi_split_path_info ^(.*\.psgi)(/.*)$;
|
||||||
fastcgi_param PATH_INFO $fastcgi_path_info;
|
fastcgi_param PATH_INFO $fastcgi_path_info;
|
||||||
|
|
||||||
|
# OR TO USE uWSGI
|
||||||
|
#include /etc/nginx/uwsgi_params;
|
||||||
|
#uwsgi_pass 127.0.0.1:5000;
|
||||||
|
#uwsgi_param LLTYPE psgi;
|
||||||
|
#uwsgi_param SCRIPT_FILENAME $document_root$sc;
|
||||||
|
#uwsgi_param SCRIPT_NAME $sc;
|
||||||
|
|
||||||
# Uncomment this if you use https only
|
# Uncomment this if you use https only
|
||||||
#add_header Strict-Transport-Security "15768000";
|
#add_header Strict-Transport-Security "max-age=15768000";
|
||||||
}
|
}
|
||||||
|
|
||||||
location / {
|
location / {
|
||||||
index manager.psgi;
|
index manager.psgi;
|
||||||
|
try_files $uri $uri/ =404;
|
||||||
allow 127.0.0.0/8;
|
allow 127.0.0.0/8;
|
||||||
deny all;
|
deny all;
|
||||||
try_files $uri $uri/ =404;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
location /doc/ {
|
location /doc/ {
|
||||||
@ -52,12 +64,8 @@ server {
|
|||||||
location /lib/ {
|
location /lib/ {
|
||||||
alias /usr/share/doc/lemonldap-ng-doc/pages/documentation/current/lib/;
|
alias /usr/share/doc/lemonldap-ng-doc/pages/documentation/current/lib/;
|
||||||
}
|
}
|
||||||
location /fr-doc/ {
|
|
||||||
alias /usr/share/doc/lemonldap-ng-fr-doc/;
|
|
||||||
index index.html start.html;
|
|
||||||
}
|
|
||||||
location /static/ {
|
location /static/ {
|
||||||
alias /usr/share/lemonldap-ng/manager/static/;
|
alias /usr/share/lemonldap-ng/manager/htdocs/static/;
|
||||||
}
|
}
|
||||||
|
|
||||||
# DEBIAN
|
# DEBIAN
|
||||||
@ -65,4 +73,5 @@ server {
|
|||||||
#location /javascript/ {
|
#location /javascript/ {
|
||||||
# alias /usr/share/javascript/;
|
# alias /usr/share/javascript/;
|
||||||
#}
|
#}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
35
tmpl/pam_cas_auth.conf
Normal file
35
tmpl/pam_cas_auth.conf
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
# sample pam_cas config
|
||||||
|
|
||||||
|
# host from CAS server. mandatory
|
||||||
|
host %%authWebName
|
||||||
|
|
||||||
|
# port from CAS server. Default to 80 or 443, depends from ssl instruction
|
||||||
|
port 443
|
||||||
|
|
||||||
|
# uri to validate ticket. Default to /proxyValidate
|
||||||
|
uriValidate /proxyValidate
|
||||||
|
|
||||||
|
# https or no. values on or off. Default to on.
|
||||||
|
ssl on
|
||||||
|
|
||||||
|
# debug (on) or no (off). debug in syslog, level LOG_DEBUG. Default to off
|
||||||
|
debug off
|
||||||
|
|
||||||
|
# proxy or proxies who deliver Proxy Ticket.
|
||||||
|
# If no proxy, pam_cas doesn't control it
|
||||||
|
# It may be several proxy instructions
|
||||||
|
#proxy https://%%authWebName/proxycas/casimap.php
|
||||||
|
#proxy https://imp.its.yale.edu/cas/casProxy.php
|
||||||
|
#proxy https://uportal1.its.yale.edu/CasProxyServlet
|
||||||
|
#proxy https://uportal2.its.yale.edu/CasProxyServlet
|
||||||
|
|
||||||
|
# trusted_ca. mandatory if ssl on.
|
||||||
|
# It a file in pem format. It can contents several certificates
|
||||||
|
# If the CAS server certificate is auto-signed, the file must content the certificate
|
||||||
|
# If the certificate is trusted by an Certificate Autority, The file must content
|
||||||
|
# certificate from high level CA
|
||||||
|
%if not %%is_empty(%%getVar('ssoCALocation', ''))
|
||||||
|
trusted_ca %%ssoCALocation
|
||||||
|
%else
|
||||||
|
trusted_ca /etc/ssl/certs/ca.crt
|
||||||
|
%end if
|
@ -1,3 +1,13 @@
|
|||||||
|
## map directive must be in http context
|
||||||
|
# Uncomment this if you use Auth SSL:
|
||||||
|
#map $ssl_client_s_dn $ssl_client_s_dn_cn {
|
||||||
|
# default "";
|
||||||
|
# ~/CN=(?<CN>[^/]+) $CN;
|
||||||
|
#}
|
||||||
|
%set %%webDomain = %%authWebName.split('.',1)[1]
|
||||||
|
%set %%CSPTargets = %%custom_join(['http://*.{0} https://*.{0}'.format(d) for d in set([%%webDomain] + %%getVar('llCSPTargets'))], ' ')
|
||||||
|
|
||||||
|
|
||||||
server {
|
server {
|
||||||
listen 80;
|
listen 80;
|
||||||
server_name %%authWebName;
|
server_name %%authWebName;
|
||||||
@ -14,80 +24,62 @@ server {
|
|||||||
ssl_certificate %%server_cert;
|
ssl_certificate %%server_cert;
|
||||||
ssl_certificate_key %%server_key;
|
ssl_certificate_key %%server_key;
|
||||||
%end if
|
%end if
|
||||||
ssl_client_certificate /etc/ssl/certs/ca.crt;
|
ssl_client_certificate /etc/ssl/certs/ca..crt;
|
||||||
|
ssl_session_cache shared:SSL:10m;
|
||||||
access_log /var/log/nginx/auth-lemon-ldap.access-ssl.log;
|
access_log /var/log/nginx/auth-lemon-ldap.access-ssl.log;
|
||||||
server_name %%authWebName;
|
server_name %%authWebName;
|
||||||
root /var/lib/lemonldap-ng/portal/;
|
root /usr/share/lemonldap-ng/portal/htdocs/;
|
||||||
|
|
||||||
location ~ \.pl(?:$|/) {
|
if ($uri !~ ^/((static|javascript|favicon).*|.*\.psgi)) {
|
||||||
|
rewrite ^/(.*)$ /index.psgi/$1 break;
|
||||||
|
}
|
||||||
|
|
||||||
|
location ~ ^(?<sc>/.*\.psgi)(?:$|/) {
|
||||||
|
# Note that Content-Security-Policy header is generated by portal itself
|
||||||
|
|
||||||
|
# FastCGI configuration
|
||||||
include /etc/nginx/fastcgi_params;
|
include /etc/nginx/fastcgi_params;
|
||||||
fastcgi_pass unix:/var/run/llng-fastcgi-server/llng-fastcgi.sock;
|
fastcgi_pass unix:/var/run/llng-fastcgi-server/llng-fastcgi.sock;
|
||||||
fastcgi_param LLTYPE cgi;
|
fastcgi_param LLTYPE psgi;
|
||||||
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
|
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
|
||||||
set $sn $request_uri;
|
fastcgi_split_path_info ^(.*\.psgi)(/.*)$;
|
||||||
if ($sn ~ "^(.*)\?") {
|
|
||||||
set $sn $1;
|
|
||||||
}
|
|
||||||
if ($sn ~ "^/index.pl") {
|
|
||||||
set $sn "/index.pl";
|
|
||||||
}
|
|
||||||
fastcgi_param SCRIPT_NAME $sn;
|
|
||||||
fastcgi_split_path_info ^(.*\.pl)(/.*)$;
|
|
||||||
fastcgi_param PATH_INFO $fastcgi_path_info;
|
fastcgi_param PATH_INFO $fastcgi_path_info;
|
||||||
# Uncomment this if you use Auth SSL:
|
fastcgi_hide_header Content-Security-Policy;
|
||||||
#map $ssl_client_s_dn $ssl_client_s_dn_cn {
|
add_header Content-Security-Policy "default-src 'self'; form-action 'self' %%CSPTargets; object-src 'none'";
|
||||||
# default "";
|
|
||||||
# ~/CN=(?<CN>[^/]+) $CN;
|
|
||||||
#}
|
|
||||||
#fastcgi_param SSL_CLIENT_S_DN_CN $ssl_client_s_dn_cn
|
|
||||||
}
|
}
|
||||||
|
|
||||||
index index.pl;
|
index index.psgi;
|
||||||
location / {
|
location / {
|
||||||
try_files $uri $uri/ =404;
|
try_files $uri $uri/ =404;
|
||||||
|
|
||||||
# Uncomment this if you use https only
|
# Uncomment this if you use https only
|
||||||
#add_header Strict-Transport-Security "15768000";
|
#add_header Strict-Transport-Security "max-age=15768000";
|
||||||
}
|
}
|
||||||
|
|
||||||
# SOAP functions for sessions management (disabled by default)
|
location /static/ {
|
||||||
location /index.pl/adminSessions {
|
alias /usr/share/lemonldap-ng/portal/htdocs/static/;
|
||||||
|
}
|
||||||
|
|
||||||
|
# REST/SOAP functions for sessions management (disabled by default)
|
||||||
|
location /index.psgi/adminSessions {
|
||||||
deny all;
|
deny all;
|
||||||
}
|
}
|
||||||
|
|
||||||
# SOAP functions for sessions access (disabled by default)
|
# REST/SOAP functions for sessions access (disabled by default)
|
||||||
location /index.pl/sessions {
|
location /index.psgi/sessions {
|
||||||
deny all;
|
deny all;
|
||||||
}
|
}
|
||||||
|
|
||||||
# SOAP functions for configuration access (disabled by default)
|
# REST/SOAP functions for configuration access (disabled by default)
|
||||||
location /index.pl/config {
|
location /index.psgi/config {
|
||||||
deny all;
|
deny all;
|
||||||
}
|
}
|
||||||
|
|
||||||
# SOAP functions for notification insertion (disabled by default)
|
# REST/SOAP functions for notification insertion (disabled by default)
|
||||||
location /index.pl/notification {
|
location /index.psgi/notification {
|
||||||
deny all;
|
deny all;
|
||||||
}
|
}
|
||||||
# SAML2 Issuer
|
|
||||||
rewrite ^/saml/metadata /metadata.pl last;
|
|
||||||
rewrite ^/saml/.* /index.pl last;
|
|
||||||
|
|
||||||
# CAS Issuer
|
|
||||||
rewrite ^/cas/.* /index.pl;
|
|
||||||
|
|
||||||
# OpenID Issuer
|
|
||||||
rewrite ^/openidserver/.* /index.pl last;
|
|
||||||
|
|
||||||
# OpenID Connect Issuer
|
|
||||||
rewrite ^/oauth2/.* /index.pl last;
|
|
||||||
rewrite ^/.well-known/openid-configuration$ /openid-configuration.pl last;
|
|
||||||
|
|
||||||
# Get Issuer
|
|
||||||
rewrite ^/get/.* /index.pl;
|
|
||||||
|
|
||||||
# Public pages
|
|
||||||
rewrite ^/public.* /public.pl;
|
|
||||||
|
|
||||||
# DEBIAN
|
# DEBIAN
|
||||||
# If install was made with USEDEBIANLIBS (official releases), uncomment this
|
# If install was made with USEDEBIANLIBS (official releases), uncomment this
|
||||||
|
@ -15,24 +15,24 @@ server {
|
|||||||
server_name test1.%%nom_domaine_local test2.%%nom_domaine_local;
|
server_name test1.%%nom_domaine_local test2.%%nom_domaine_local;
|
||||||
root /var/lib/lemonldap-ng/test/;
|
root /var/lib/lemonldap-ng/test/;
|
||||||
|
|
||||||
|
|
||||||
# Internal authentication request
|
# Internal authentication request
|
||||||
location = /lmauth {
|
location = /lmauth {
|
||||||
internal;
|
internal;
|
||||||
|
|
||||||
|
# FastCGI configuration
|
||||||
include /etc/nginx/fastcgi_params;
|
include /etc/nginx/fastcgi_params;
|
||||||
fastcgi_pass unix:/var/run/llng-fastcgi-server/llng-fastcgi.sock;
|
fastcgi_pass unix:/var/run/llng-fastcgi-server/llng-fastcgi.sock;
|
||||||
# To use AuthBasic handler, uncomment this and remove "error_page 401"
|
|
||||||
# fastcgi_param LLTYPE authbasic;
|
|
||||||
|
|
||||||
# Drop post datas
|
# Drop post datas
|
||||||
fastcgi_pass_request_body off;
|
fastcgi_pass_request_body off;
|
||||||
fastcgi_param CONTENT_LENGTH "";
|
fastcgi_param CONTENT_LENGTH "";
|
||||||
|
|
||||||
# Keep original hostname
|
# Keep original hostname
|
||||||
fastcgi_param HOST $http_host;
|
fastcgi_param HOST $http_host;
|
||||||
|
# Keep original request (LLNG server will receive /lmauth)
|
||||||
# Keep original request (LLNG server will received /llauth)
|
|
||||||
fastcgi_param X_ORIGINAL_URI $request_uri;
|
fastcgi_param X_ORIGINAL_URI $request_uri;
|
||||||
|
# Improve performances
|
||||||
|
#fastcgi_buffer_size 32k;
|
||||||
|
#fastcgi_buffers 32 32k;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# Client requests
|
# Client requests
|
||||||
@ -50,8 +50,9 @@ server {
|
|||||||
##################################
|
##################################
|
||||||
auth_request /lmauth;
|
auth_request /lmauth;
|
||||||
auth_request_set $lmremote_user $upstream_http_lm_remote_user;
|
auth_request_set $lmremote_user $upstream_http_lm_remote_user;
|
||||||
|
auth_request_set $lmremote_custom $upstream_http_lm_remote_custom;
|
||||||
auth_request_set $lmlocation $upstream_http_location;
|
auth_request_set $lmlocation $upstream_http_location;
|
||||||
# Uncomment this if CDA is used
|
# If CDA is used, uncomment this
|
||||||
#auth_request_set $cookie_value $upstream_http_set_cookie;
|
#auth_request_set $cookie_value $upstream_http_set_cookie;
|
||||||
#add_header Set-Cookie $cookie_value;
|
#add_header Set-Cookie $cookie_value;
|
||||||
# Remove this for AuthBasic handler
|
# Remove this for AuthBasic handler
|
||||||
@ -68,30 +69,37 @@ server {
|
|||||||
# Set manually your headers
|
# Set manually your headers
|
||||||
#auth_request_set $authuser $upstream_http_auth_user;
|
#auth_request_set $authuser $upstream_http_auth_user;
|
||||||
#proxy_set_header Auth-User $authuser;
|
#proxy_set_header Auth-User $authuser;
|
||||||
# OR in the correspondinc block
|
# OR in the corresponding block
|
||||||
#fastcgi_param HTTP_AUTH_USER $authuser;
|
#fastcgi_param HTTP_AUTH_USER $authuser;
|
||||||
|
|
||||||
# Then (if LUA not supported), change cookie header to hide LLNG cookie
|
# Then (if LUA is not supported), change cookie header to hide LLNG cookie
|
||||||
#auth_request_set $lmcookie $upstream_http_cookie;
|
#auth_request_set $lmcookie $upstream_http_cookie;
|
||||||
#proxy_set_header Cookie: $lmcookie;
|
#proxy_set_header Cookie: $lmcookie;
|
||||||
# OR in the corresponding block
|
# OR in the corresponding block
|
||||||
#fastcgi_param HTTP_COOKIE $lmcookie;
|
#fastcgi_param HTTP_COOKIE $lmcookie;
|
||||||
|
|
||||||
# Uncomment this if you use https only
|
# Uncomment this if you use https only
|
||||||
#add_header Strict-Transport-Security "15768000";
|
#add_header Strict-Transport-Security "max-age=15768000";
|
||||||
|
|
||||||
# Set REMOTE_USER (for FastCGI apps only)
|
# Set REMOTE_USER (for FastCGI apps only)
|
||||||
#fastcgi_param REMOTE_USER $lmremote_user;
|
#fastcgi_param REMOTE_USER $lmremote_user;
|
||||||
}
|
}
|
||||||
|
|
||||||
# Handle test CGI
|
# Handle test CGI
|
||||||
location ~ \.pl$ {
|
location ~ ^(?<sc>/.*\.pl)(?:$|/) {
|
||||||
include /etc/nginx/fastcgi_params;
|
include /etc/nginx/fastcgi_params;
|
||||||
fastcgi_pass unix:/var/run/llng-fastcgi-server/llng-fastcgi.sock;
|
fastcgi_pass unix:/var/run/llng-fastcgi-server/llng-fastcgi.sock;
|
||||||
fastcgi_param LLTYPE cgi;
|
fastcgi_param LLTYPE cgi;
|
||||||
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
|
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
|
||||||
fastcgi_split_path_info ^(.*\.pl)(/.+)$;
|
fastcgi_split_path_info ^(.*\.pl)(/.+)$;
|
||||||
fastcgi_param REMOTE_USER $lmremote_user;
|
fastcgi_param REMOTE_USER $lmremote_user;
|
||||||
|
|
||||||
|
# Or with uWSGI
|
||||||
|
#include /etc/nginx/uwsgi_params;
|
||||||
|
#uwsgi_pass 127.0.0.1:5000;
|
||||||
|
#uwsgi_param LLTYPE cgi;
|
||||||
|
#uwsgi_param SCRIPT_FILENAME $document_root$sc;
|
||||||
|
#uwsgi_param SCRIPT_NAME $sc;
|
||||||
}
|
}
|
||||||
|
|
||||||
#location = /status {
|
#location = /status {
|
||||||
@ -100,5 +108,10 @@ server {
|
|||||||
# include /etc/nginx/fastcgi_params;
|
# include /etc/nginx/fastcgi_params;
|
||||||
# fastcgi_pass unix:/var/run/llng-fastcgi-server/llng-fastcgi.sock;
|
# fastcgi_pass unix:/var/run/llng-fastcgi-server/llng-fastcgi.sock;
|
||||||
# fastcgi_param LLTYPE status;
|
# fastcgi_param LLTYPE status;
|
||||||
|
|
||||||
|
### Or with uWSGI
|
||||||
|
## include /etc/nginx/uwsgi_params;
|
||||||
|
## uwsgi_pass 127.0.0.1:5000;
|
||||||
|
## uwsgi_param LLTYPE status;
|
||||||
#}
|
#}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user