Compare commits
31 Commits
pkg/eole/e
...
develop
Author | SHA1 | Date | |
---|---|---|---|
cc9a5e20ce | |||
5512f64aab | |||
569e0caab8 | |||
bb18f68a54 | |||
20e382934c | |||
cf5d9485ca | |||
cf82616454 | |||
e423388795 | |||
e810740ba9 | |||
140cc084a3 | |||
3753625b20 | |||
df5dabbcf4 | |||
47e822f9b9 | |||
87818bd6f0 | |||
fe8722e776 | |||
200c9c41e9 | |||
63bf3c9f98 | |||
03a00fb7ce | |||
52e5c433eb | |||
d1ad6aeb25 | |||
815fca0e82 | |||
8ec486eafc | |||
4af11f3d28 | |||
8af3ee655f | |||
5d4e572967 | |||
15da7394f3 | |||
536da57382 | |||
d08c965ee8 | |||
f2e6a3afe0 | |||
2700a5d440 | |||
ad9059bfae |
4
.gitignore
vendored
Normal file
4
.gitignore
vendored
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
# Backup and swap files
|
||||||
|
*~
|
||||||
|
*#
|
||||||
|
*.swp
|
6
Makefile
6
Makefile
@ -3,9 +3,9 @@
|
|||||||
################################
|
################################
|
||||||
|
|
||||||
SOURCE=eole-lemonldap
|
SOURCE=eole-lemonldap
|
||||||
VERSION=2.8.0
|
VERSION=0.1
|
||||||
EOLE_VERSION=2.8
|
EOLE_VERSION=2.7
|
||||||
EOLE_RELEASE=2.8.0
|
EOLE_RELEASE=2.7.2
|
||||||
PKGAPPS=non
|
PKGAPPS=non
|
||||||
#FLASK_MODULE=<APPLICATION>
|
#FLASK_MODULE=<APPLICATION>
|
||||||
|
|
||||||
|
21
README.md
21
README.md
@ -4,6 +4,27 @@ LemonLDAP::NG EOLE integration
|
|||||||
|
|
||||||
## Howto
|
## Howto
|
||||||
|
|
||||||
|
### Repository configuration
|
||||||
|
|
||||||
|
* Add the lemonldap-ng deb respository we need the last version of LemonLDAP.
|
||||||
|
|
||||||
|
GenConfig -> Mode Expert -> Dépôts tiers -> Libellé du dépôt
|
||||||
|
|
||||||
|
#### LemonLDAP::NG repository (if you use EOLE 2.7.2 this is not needed anymore)
|
||||||
|
|
||||||
|
* deb https://lemonldap-ng.org/deb stable main
|
||||||
|
* deb-src https://lemonldap-ng.org/deb stable main
|
||||||
|
* Key URL : https://lemonldap-ng.org/_media/rpm-gpg-key-ow2
|
||||||
|
|
||||||
|
#### Cadoles Repository
|
||||||
|
* deb [ arch=all ] https://vulcain.cadoles.com 2.7.2-dev main
|
||||||
|
* Key URL : https://vulcain.cadoles.com/cadoles.gpg
|
||||||
|
|
||||||
|
### Install packages
|
||||||
|
|
||||||
|
apt update
|
||||||
|
apt install eole-lemonldap
|
||||||
|
|
||||||
### Configure LemonLDAP in GenConfig
|
### Configure LemonLDAP in GenConfig
|
||||||
|
|
||||||
* Enable lemonldap in "Services" tab
|
* Enable lemonldap in "Services" tab
|
||||||
|
@ -9,6 +9,7 @@
|
|||||||
<file filelist='lemonldap-nginx' name='/etc/lemonldap-ng/manager-nginx.conf' mkdir='True' rm='True'/>
|
<file filelist='lemonldap-nginx' name='/etc/lemonldap-ng/manager-nginx.conf' mkdir='True' rm='True'/>
|
||||||
<file filelist='lemonldap-nginx' name='/etc/lemonldap-ng/handler-nginx.conf' mkdir='True' rm='True'/>
|
<file filelist='lemonldap-nginx' name='/etc/lemonldap-ng/handler-nginx.conf' mkdir='True' rm='True'/>
|
||||||
<file filelist='lemonldap-nginx' name='/etc/lemonldap-ng/portal-nginx.conf' mkdir='True' rm='True'/>
|
<file filelist='lemonldap-nginx' name='/etc/lemonldap-ng/portal-nginx.conf' mkdir='True' rm='True'/>
|
||||||
|
<file filelist='lemonldap-nginx' name='/etc/lemonldap-ng/nginx-lmlog.conf' mkdir='True' rm='True'/>
|
||||||
|
|
||||||
<file filelist='lemonldap-apache' name='/etc/lemonldap-ng/manager-apache2.X.conf' mkdir='True' rm='True'/>
|
<file filelist='lemonldap-apache' name='/etc/lemonldap-ng/manager-apache2.X.conf' mkdir='True' rm='True'/>
|
||||||
<file filelist='lemonldap-apache' name='/etc/lemonldap-ng/handler-apache2.X.conf' mkdir='True' rm='True'/>
|
<file filelist='lemonldap-apache' name='/etc/lemonldap-ng/handler-apache2.X.conf' mkdir='True' rm='True'/>
|
||||||
@ -92,9 +93,18 @@
|
|||||||
<variable name='llCheckLogins' type='oui/non' description="Permettre aux utilisateurs d'afficher l'historique de connection">
|
<variable name='llCheckLogins' type='oui/non' description="Permettre aux utilisateurs d'afficher l'historique de connection">
|
||||||
<value>non</value>
|
<value>non</value>
|
||||||
</variable>
|
</variable>
|
||||||
<variable name='llResetPassword' type='oui/non' description="Permettre aux utilisateurs de réinitialiser leurs mots de passe">
|
<variable name='llResetPassword' type='oui/non' description="Permettre aux utilisateurs de réinitialiser leurs mots de passe par mail">
|
||||||
<value>oui</value>
|
<value>oui</value>
|
||||||
</variable>
|
</variable>
|
||||||
|
<variable name='llChangePassword' type='oui/non' description="Permettre aux utilisateurs de changer leurs mots de passe depuis LemonLDAP">
|
||||||
|
<value>oui</value>
|
||||||
|
</variable>
|
||||||
|
<variable name='llADPasswordMaxAge' type='number' description="Durée de vie des mots de passe (en secondes)" mode='expert'>
|
||||||
|
<value>5184000</value>
|
||||||
|
</variable>
|
||||||
|
<variable name='llADPasswordExpireWarn' type='number' description="Délai avant affichage d'un message d'alerte sur l'expiration du mot de passe (en secondes)">
|
||||||
|
<value>3456000</value>
|
||||||
|
</variable>
|
||||||
<variable name='llResetExpiredPassword' type='oui/non' description="Autoriser le renouvellement des mots de passe expirés">
|
<variable name='llResetExpiredPassword' type='oui/non' description="Autoriser le renouvellement des mots de passe expirés">
|
||||||
<value>oui</value>
|
<value>oui</value>
|
||||||
</variable>
|
</variable>
|
||||||
@ -148,12 +158,18 @@
|
|||||||
</check>
|
</check>
|
||||||
|
|
||||||
<check name="valid_enum" target="llRegisterDB">
|
<check name="valid_enum" target="llRegisterDB">
|
||||||
<param>['LDAP','Demo','Custom']</param>
|
<param>['LDAP','AD','Demo','Custom']</param>
|
||||||
</check>
|
</check>
|
||||||
<group master="casAttribute">
|
<group master="casAttribute">
|
||||||
<slave>casLDAPAttribute</slave>
|
<slave>casLDAPAttribute</slave>
|
||||||
</group>
|
</group>
|
||||||
|
|
||||||
|
<condition name='disabled_if_not_in' source='lemon_user_db'>
|
||||||
|
<param>AD</param>
|
||||||
|
<target type='variable'>llADPasswordMaxAge</target>
|
||||||
|
<target type='variable'>llADPasswordExpireWarn</target>
|
||||||
|
</condition>
|
||||||
|
|
||||||
<condition name='disabled_if_in' source='activerLemon'>
|
<condition name='disabled_if_in' source='activerLemon'>
|
||||||
<param>non</param>
|
<param>non</param>
|
||||||
<target type='filelist'>lemonldap</target>
|
<target type='filelist'>lemonldap</target>
|
||||||
|
@ -24,9 +24,6 @@
|
|||||||
<target type='variable'>activer_sso</target>
|
<target type='variable'>activer_sso</target>
|
||||||
</condition>
|
</condition>
|
||||||
|
|
||||||
<auto name='calc_val' target='ldapScheme'>
|
|
||||||
<param>ldaps</param>
|
|
||||||
</auto>
|
|
||||||
|
|
||||||
<fill name='calc_val_first_value' target='eolesso_adresse'>
|
<fill name='calc_val_first_value' target='eolesso_adresse'>
|
||||||
<param type='eole' optional='True' hidden='False'>authWebName</param>
|
<param type='eole' optional='True' hidden='False'>authWebName</param>
|
||||||
@ -34,33 +31,42 @@
|
|||||||
<param type='eole'>nom_domaine_machine</param>
|
<param type='eole'>nom_domaine_machine</param>
|
||||||
</fill>
|
</fill>
|
||||||
|
|
||||||
<auto name='calc_val' target='ldap_port'>
|
|
||||||
<param>636</param>
|
|
||||||
</auto>
|
|
||||||
|
|
||||||
<condition name='frozen_if_in' source='activerLemon'>
|
<condition name='frozen_if_in' source='activerLemon'>
|
||||||
<param>oui</param>
|
<param>oui</param>
|
||||||
<target type='variable'>eolesso_adresse</target>
|
<target type='variable'>eolesso_adresse</target>
|
||||||
</condition>
|
</condition>
|
||||||
|
|
||||||
|
<auto name='calc_multi_condition' target='ldapScheme'>
|
||||||
|
<param>oui</param>
|
||||||
|
<param type='eole' name='condition_1'>ldap_tls</param>
|
||||||
|
<param name='match'>ldaps</param>
|
||||||
|
<param name='default_mismatch'>ldap</param>
|
||||||
|
</auto>
|
||||||
|
|
||||||
<auto name='calc_val' target='ldapServer'>
|
<auto name='calc_val' target='ldapServer'>
|
||||||
<param type='eole'>ad_address</param>
|
<param type='eole'>adresse_ip_ldap</param>
|
||||||
</auto>
|
</auto>
|
||||||
|
|
||||||
<auto name='calc_val' target='ldapServerPort'>
|
<auto name='calc_val' target='ldapServerPort'>
|
||||||
<param type='number'>636</param>
|
<param type='eole'>ldap_port</param>
|
||||||
</auto>
|
</auto>
|
||||||
|
|
||||||
<auto name='calc_val' target='lemon_user_db'>
|
<auto name='calc_val' target='lemon_user_db'>
|
||||||
<param>AD</param>
|
<param>LDAP</param>
|
||||||
</auto>
|
</auto>
|
||||||
|
|
||||||
|
<auto name='calc_val' target='llRegisterDB'>
|
||||||
|
<param>LDAP</param>
|
||||||
|
</auto>
|
||||||
|
<auto name='calc_val' target='ldapUserBaseDN'>
|
||||||
|
<param type='eole'>ldap_base_dn</param>
|
||||||
|
</auto>
|
||||||
<auto name='calc_val' target='ldapBindUserDN'>
|
<auto name='calc_val' target='ldapBindUserDN'>
|
||||||
<param type='eole'>sasl_ldap_reader</param>
|
<param type='eole'>ldap_reader</param>
|
||||||
</auto>
|
</auto>
|
||||||
|
|
||||||
<auto name='calc_val' target='ldapBindUserPassword'>
|
<auto name='calc_val' target='ldapBindUserPassword'>
|
||||||
<param>/etc/eole/private/sasl-reader.password</param>
|
<param type='eole'>ldap_reader_passfile</param>
|
||||||
</auto>
|
</auto>
|
||||||
|
|
||||||
<auto name='calc_val' target='casFolder'>
|
<auto name='calc_val' target='casFolder'>
|
||||||
|
@ -1,6 +1,12 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
[ "$(CreoleGet activerLemon non)" = 'oui' ] || exit 0
|
|
||||||
|
[[ $(CreoleGet activerLemon non) == "non" ]] && exit 0
|
||||||
|
|
||||||
|
# Updating Configuration cache
|
||||||
|
|
||||||
|
cmd="/usr/share/lemonldap-ng/bin/lemonldap-ng-cli update-cache"
|
||||||
|
opt="update-cache"
|
||||||
|
|
||||||
# Updating Configuration cache
|
# Updating Configuration cache
|
||||||
/usr/share/lemonldap-ng/bin/lemonldap-ng-cli update-cache 2>&1
|
/usr/share/lemonldap-ng/bin/lemonldap-ng-cli update-cache 2>&1
|
||||||
|
@ -23,8 +23,7 @@ server {
|
|||||||
}
|
}
|
||||||
|
|
||||||
server {
|
server {
|
||||||
listen 443;
|
listen 443 ssl;
|
||||||
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;
|
||||||
@ -62,7 +61,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 "max-age=15768000";
|
add_header Strict-Transport-Security "max-age=15768000";
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -36,7 +36,7 @@
|
|||||||
;
|
;
|
||||||
; 1 - Defined logging level
|
; 1 - Defined logging level
|
||||||
; Set here one of error, warn, notice, info or debug
|
; Set here one of error, warn, notice, info or debug
|
||||||
logLevel = debug
|
logLevel = %%lm_loglevel
|
||||||
; Note that this has no effect for Apache2 logging: Apache LogLevel is used
|
; Note that this has no effect for Apache2 logging: Apache LogLevel is used
|
||||||
; instead
|
; instead
|
||||||
;
|
;
|
||||||
@ -65,9 +65,9 @@ logLevel = debug
|
|||||||
; 2.1 - Using Syslog
|
; 2.1 - Using Syslog
|
||||||
;
|
;
|
||||||
; For Syslog logging, you can also overwrite facilities. Default values:
|
; For Syslog logging, you can also overwrite facilities. Default values:
|
||||||
;logger = Lemonldap::NG::Common::Logger::Syslog
|
logger = Lemonldap::NG::Common::Logger::Syslog
|
||||||
;syslogFacility = daemon
|
syslogFacility = daemon
|
||||||
;userSyslogFacility = auth
|
userSyslogFacility = auth
|
||||||
;
|
;
|
||||||
; 2.2 - Using Log4perl
|
; 2.2 - Using Log4perl
|
||||||
;
|
;
|
||||||
@ -197,11 +197,11 @@ portalSkin = %%llSkin
|
|||||||
; Modules displayed
|
; Modules displayed
|
||||||
;portalDisplayLogout = 1
|
;portalDisplayLogout = 1
|
||||||
portalDisplayResetPassword = %%boolean[%%llResetPassword]
|
portalDisplayResetPassword = %%boolean[%%llResetPassword]
|
||||||
;portalDisplayChangePassword = 1
|
portalDisplayChangePassword = %%boolean[%%llChangePassword]
|
||||||
;portalDisplayAppslist = 1
|
;portalDisplayAppslist = 1
|
||||||
;portalDisplayLoginHistory = 1
|
;portalDisplayLoginHistory = 1
|
||||||
; Require the old password when changing password
|
; Require the old password when changing password
|
||||||
;portalRequireOldPassword = 1
|
portalRequireOldPassword = %%boolean[%%llChangePassword]
|
||||||
; Attribute displayed as connected user
|
; Attribute displayed as connected user
|
||||||
;portalUserAttr = mail
|
;portalUserAttr = mail
|
||||||
; Old menu HTML code
|
; Old menu HTML code
|
||||||
|
@ -13,8 +13,10 @@
|
|||||||
%silent %%exported_vars.sort()
|
%silent %%exported_vars.sort()
|
||||||
%silent %%cas_attributes.sort()
|
%silent %%cas_attributes.sort()
|
||||||
{
|
{
|
||||||
"ADPwdExpireWarning": 0,
|
%if %%lemon_user_db == "AD"
|
||||||
"ADPwdMaxAge": 0,
|
"ADPwdExpireWarning": %%llADPasswordExpireWarn,
|
||||||
|
"ADPwdMaxAge": %%llADPasswordMaxAge,
|
||||||
|
%end if
|
||||||
"CAS_authnLevel": 1,
|
"CAS_authnLevel": 1,
|
||||||
"CAS_pgtFile": "/tmp/pgt.txt",
|
"CAS_pgtFile": "/tmp/pgt.txt",
|
||||||
"CAS_proxiedServices": {},
|
"CAS_proxiedServices": {},
|
||||||
@ -160,19 +162,16 @@
|
|||||||
"ldapPpolicyControl": 1,
|
"ldapPpolicyControl": 1,
|
||||||
%end if
|
%end if
|
||||||
"ldapAllowResetExpiredPassword": 1,
|
"ldapAllowResetExpiredPassword": 1,
|
||||||
|
"ldapChangePasswordAsUser": 1,
|
||||||
%else
|
%else
|
||||||
"ldapPpolicyControl": 0,
|
"ldapPpolicyControl": 0,
|
||||||
"ldapAllowResetExpiredPassword": 0,
|
"ldapAllowResetExpiredPassword": 0,
|
||||||
|
"ldapChangePasswordAsUser": 1,
|
||||||
%end if
|
%end if
|
||||||
%end if
|
%end if
|
||||||
"ldapChangePasswordAsUser": 1,
|
|
||||||
"ldapAuthnLevel": 2,
|
"ldapAuthnLevel": 2,
|
||||||
%if %%eole_module == "scribe"
|
|
||||||
"ldapBase": "cn=Users,dc=%echo ",dc=".join(%%ad_domain.split('.')) + '",'
|
|
||||||
%else
|
|
||||||
"ldapBase": "%%ldapUserBaseDN",
|
|
||||||
%end if
|
|
||||||
"ldapSearchDeref": "find",
|
"ldapSearchDeref": "find",
|
||||||
|
"ldapBase": "%%ldapUserBaseDN",
|
||||||
"ldapExportedVars": {
|
"ldapExportedVars": {
|
||||||
"cn": "cn",
|
"cn": "cn",
|
||||||
"mail": "mail",
|
"mail": "mail",
|
||||||
@ -228,17 +227,13 @@
|
|||||||
"mailTimeout": 0,
|
"mailTimeout": 0,
|
||||||
%if %%llResetPassword == "oui"
|
%if %%llResetPassword == "oui"
|
||||||
%if %%is_empty(%%llResetUrl)
|
%if %%is_empty(%%llResetUrl)
|
||||||
"mailUrl": "https://%%authWebName/mail.pl",
|
"mailUrl": "https://%%authWebName/resetpwd",
|
||||||
%else
|
%else
|
||||||
"mailUrl": "%%llResetUrl",
|
"mailUrl": "%%llResetUrl",
|
||||||
%end if
|
%end if
|
||||||
%end if
|
%end if
|
||||||
"maintenance": 0,
|
"maintenance": 0,
|
||||||
%if %%eole_module == "scribe"
|
|
||||||
"managerDn": "cn=%%ldapBindUserDN,cn=Users,dc=%echo ",dc=".join(%%ad_domain.split('.')) + '",'
|
|
||||||
%else
|
|
||||||
"managerDn": "%%ldapBindUserDN",
|
"managerDn": "%%ldapBindUserDN",
|
||||||
%end if
|
|
||||||
%if %%is_file(%%ldapBindUserPassword)
|
%if %%is_file(%%ldapBindUserPassword)
|
||||||
"managerPassword": "%%readPass("", %%ldapBindUserPassword)",
|
"managerPassword": "%%readPass("", %%ldapBindUserPassword)",
|
||||||
%else
|
%else
|
||||||
@ -281,7 +276,7 @@
|
|||||||
"portalAntiFrame": 1,
|
"portalAntiFrame": 1,
|
||||||
"portalCheckLogins": %%boolean[%%llCheckLogins],
|
"portalCheckLogins": %%boolean[%%llCheckLogins],
|
||||||
"portalDisplayAppslist": 1,
|
"portalDisplayAppslist": 1,
|
||||||
"portalDisplayChangePassword": "$_auth =~ /^(LDAP|DBI|Demo)$/",
|
"portalDisplayChangePassword": "$_auth =~ /^(AD|LDAP|DBI|Demo)$/",
|
||||||
"portalDisplayLoginHistory": 1,
|
"portalDisplayLoginHistory": 1,
|
||||||
"portalDisplayLogout": 1,
|
"portalDisplayLogout": 1,
|
||||||
"portalDisplayRegister": 1,
|
"portalDisplayRegister": 1,
|
||||||
|
@ -5,8 +5,7 @@ server {
|
|||||||
}
|
}
|
||||||
|
|
||||||
server {
|
server {
|
||||||
listen 443;
|
listen 443 ssl;
|
||||||
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;
|
||||||
@ -70,8 +69,8 @@ server {
|
|||||||
|
|
||||||
# DEBIAN
|
# DEBIAN
|
||||||
# If install was made with USEDEBIANLIBS (official releases), uncomment this
|
# If install was made with USEDEBIANLIBS (official releases), uncomment this
|
||||||
#location /javascript/ {
|
location /javascript/ {
|
||||||
# alias /usr/share/javascript/;
|
alias /usr/share/javascript/;
|
||||||
#}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1,3 +1,3 @@
|
|||||||
log_format lm_combined '$remote_addr - $lmremote_user [$time_local] '
|
log_format lm_app '$remote_addr - $upstream_http_lm_remote_user [$time_local] '
|
||||||
'"$request" $status $body_bytes_sent '
|
'"$request" $status $body_bytes_sent '
|
||||||
'"$http_referer" "$http_user_agent"';
|
'"$http_referer" "$http_user_agent" $upstream_http_lm_remote_custom';
|
||||||
|
@ -15,8 +15,7 @@ server {
|
|||||||
}
|
}
|
||||||
|
|
||||||
server {
|
server {
|
||||||
listen 443;
|
listen 443 ssl;
|
||||||
ssl on;
|
|
||||||
%if %%cert_type == "letsencrypt"
|
%if %%cert_type == "letsencrypt"
|
||||||
ssl_certificate %%le_config_dir/live/%%authWebName/cert.pem;
|
ssl_certificate %%le_config_dir/live/%%authWebName/cert.pem;
|
||||||
ssl_certificate_key %%le_config_dir/live/%%authWebName/privkey.pem;
|
ssl_certificate_key %%le_config_dir/live/%%authWebName/privkey.pem;
|
||||||
@ -83,7 +82,7 @@ server {
|
|||||||
|
|
||||||
# DEBIAN
|
# DEBIAN
|
||||||
# If install was made with USEDEBIANLIBS (official releases), uncomment this
|
# If install was made with USEDEBIANLIBS (official releases), uncomment this
|
||||||
#location /javascript/ {
|
location /javascript/ {
|
||||||
# alias /usr/share/javascript/;
|
alias /usr/share/javascript/;
|
||||||
#}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user