Prerequisites and dependencies

Web Server

To use LemonLDAP::NG, you have the choice of the Web Server :

  • Nginx

  • Apache 2

  • Any FastCGI or uWSGI compatible Web Server ( Portal and manager only)

For Apache2, you can use all workers mpm-worker, mpm-prefork and mpm-event. Mpm-worker works faster and LemonLDAP::NG use the thread system for best performance but since Apache-2.4, mod_perl seems unstable in this configuration. If you have to use mpm-prefork (for example if you use PHP), LemonLDAP::NG will work anyway.

image0

Perl

Note

Here the list of Perl modules used in LemonLDAP::NG. Core modules must be installed on the system. Other modules are required only if you plan to use related features.

Core

  • Apache::Session

  • Cache::Cache

  • Clone

  • Config::IniFiles

  • Convert::PEM

  • Cookie::Baker::XS

  • Crypt::OpenSSL::Bignum

  • Crypt::OpenSSL::RSA

  • Crypt::OpenSSL::X509

  • Crypt::Rijndael

  • Crypt::URandom

  • DBI

  • Digest::HMAC_SHA1

  • Digest::MD5

  • Digest::SHA

  • Email::Sender

  • GD::SecurityImage

  • HTML::Template

  • HTTP::Headers

  • HTTP::Request

  • IO::String

  • JSON

  • LWP::UserAgent

  • LWP::Protocol::https

  • MIME::Base64

  • MIME::Entity

  • Mouse

  • Net::LDAP

  • Plack

  • Regexp::Assemble

  • Regexp::Common

  • SOAP::Lite (optional)

  • String::Random

  • Text::Unidecode (Since LemonLDAP::NG 2.0.5)

  • Unicode::String

  • URI

  • URI::Escape

Deprecated features

  • Old notifications format:

    • XML::LibXML

    • XML::LibXSLT

  • OpenID 2.0:

    • Net::OpenID::Server

    • Net::OpenID::Consumer

SAML2

Second factor

  • Crypt::U2F::Server::Simple (U2F keys)

  • Convert::Base32 (TOTP)

Specific authentication backends

  • Facebook:

    • Net::Facebook::Oauth2

  • Kerberos:

    • GSSAPI

  • PAM:

    • Authen::PAM

  • Radius:

    • Authen::Radius

  • Twitter:

    • Net::OAuth

  • WebID:

    • Web::ID

SMTP & Reset password/certificate by mail

  • Email::Sender

  • String::Random

  • Net::SMTP

  • Net::SSLeay

  • DateTime::Format::RFC3339

Unit tests

  • Authen::U2F::Tester

  • Crypt::U2F::Server

  • Test::MockObject

  • Test::Output

  • Test::POD

  • Time::Fake

  • YAML

Other

  • Jquery (javascript framework) is included in tarball and RPMs, but is a dependency on Debian official releases

  • Cache::Memcached : used by SecureToken handler

Install dependencies on your system

Danger

You don’t need to install them if you use LL::NG packages. With apt or yum, dependencies will be automatically installed.

APT

Perl dependencies:

apt install libapache-session-perl libcache-cache-perl libclone-perl libconfig-inifiles-perl libconvert-pem-perl libcrypt-openssl-bignum-perl libcrypt-openssl-rsa-perl libcrypt-openssl-x509-perl libcrypt-rijndael-perl libdbi-perl libdigest-hmac-perl libemail-sender-perl libgd-securityimage-perl libhtml-template-perl libio-string-perl libjson-perl libmime-tools-perl libmouse-perl libnet-ldap-perl libplack-perl libregexp-assemble-perl libregexp-common-perl libsoap-lite-perl libstring-random-perl libunicode-string-perl liburi-perl libwww-perl libxml-simple-perl libxml-libxslt-perl libcrypt-urandom-perl libtext-unidecode-perl libcookie-baker-xs-perl

For Apache:

apt install apache2 libapache2-mod-fcgid libapache2-mod-perl2

For Nginx:

apt install nginx nginx-extras

YUM

Tip

You need EPEL repository. See below how to enable this repository: http://fedoraproject.org/wiki/EPEL/FAQ#howtouse

Perl dependencies:

yum install perl-Apache-Session perl-Cache-Cache perl-Clone perl-Config-IniFiles perl-Convert-PEM perl-Crypt-OpenSSL-RSA perl-Crypt-OpenSSL-X509 perl-Crypt-Rijndael perl-Digest-HMAC perl-Digest-SHA perl-GD-SecurityImage perl-HTML-Template perl-IO-String perl-JSON perl-LDAP perl-Mouse perl-Plack perl-Regexp-Assemble perl-Regexp-Common perl-SOAP-Lite perl-String-Random perl-Unicode-String perl-version perl-XML-Simple perl-Crypt-URandom perl-Email-Sender

For Apache:

yum install httpd mod_fcgid mod_perl

For Nginx:

yum install nginx

Attention

As you need a recent version of Nginx, the best is to install Nginx official packages.