LemonLDAP::NG
LemonLDAP::NG on Single Sign On (SSO) sovellus ja se on avointa lähdekoodia. Tätä käytetään hallinnoimaan kirjautumisia verkkosivuilla esimerkiksi keskitetysti. Voit yhdistää tähän eri salasana tietokantoja, esimerkiksi LDAP.
Tutustu täältä: https://lemonldap-ng.org/
Sisällysluettelo
Asennus
Asenna dependerit
sudo apt install libmouse-perl libnet-ldap-perl libcache-cache-perl libdbi-perl perl-modules libwww-perl libcache-cache-perl libxml-simple-perl libsoap-lite-perl libhtml-template-perl libregexp-assemble-perl libregexp-common-perl libjs-jquery libxml-libxml-perl libcrypt-rijndael-perl libio-string-perl libxml-libxslt-perl libconfig-inifiles-perl libjson-perl libstring-random-perl libemail-date-format-perl libmime-lite-perl libcrypt-openssl-rsa-perl libdigest-hmac-perl libdigest-sha-perl libclone-perl libauthen-sasl-perl libnet-cidr-lite-perl libcrypt-openssl-x509-perl libauthcas-perl libtest-pod-perl libtest-mockobject-perl libauthen-captcha-perl libnet-openid-consumer-perl libnet-openid-server-perl libunicode-string-perl libconvert-pem-perl libmoose-perl libplack-perl libauthen-captcha-perl
Lisää APT-source.listiin
sudo nano /etc/apt/sources.list.d/lemonldap-ng.list
tiedostoon
# LemonLDAP::NG repository deb https://lemonldap-ng.org/deb stable main deb-src https://lemonldap-ng.org/deb stable main
Lataa GPG allekirjoitus avain ja asenna se
wget https://lemonldap-ng.org/_media/rpm-gpg-key-ow2 sudo apt-key add rpm-gpg-key-ow2
Asenna lemonldap-ng paketti
sudo apt update & sudo apt install lemonldap-ng
Jos käytät Nginx asenna lisäksi
sudo apt install lemonldap-ng-fastcgi-server
Muokkaa oletusdomain omaksi ow2.orgiksi. muuta tämä omaksi domainiksi. Ja aja sitten tämä komentorivillä. Tämä päivittää kaikki konfiguraatioihin oma domain nimesi.
sudo sed -i 's/example\.com/ow2.org/g' /etc/lemonldap-ng/* /var/lib/lemonldap-ng/conf/lmConf-1.js /var/lib/lemonldap-ng/test/index.pl
Konfiguroi hosts
echo "127.0.0.1 reload.example.com" >> /etc/hosts
Konfigurointi
Nginx
Asensithan lemonldap-ng-fastcgi-server paketin?
Paketti automaattisesti luo symlinkit sites-available hakemistoon Nginxään mutta otaaksesi käyttöön tee toinen symlinkki sites-enabled hakemistoon
sudo ln -s /etc/nginx/sites-available/handler-nginx.conf /etc/nginx/sites-enabled/ sudo ln -s /etc/nginx/sites-available/manager-nginx.conf /etc/nginx/sites-enabled/ sudo ln -s /etc/nginx/sites-available/portal-nginx.conf /etc/nginx/sites-enabled/ sudo ln -s /etc/nginx/sites-available/test-nginx.conf /etc/nginx/sites-enabled/
Ja lataa Nginx konfiguraatio uudelleen
sudo service nginx reload
Konfigurointi Backend
Oletuksena LemonLDAP tallentaa konfiguraatiot tiedostoon, JSON muodossa. Jos olet tekemässä Multi-Node instanssia, suosittelen siirtämään tietokannan esimerkiksi MySQL:ään.
- Luo tietokanta lemonldap
- Tietokantaan käyttöoikeus käyttäjälle lemonldap.
Luo tietokantaan taulu lmconfig:
CREATE TABLE lmConfig (
cfgNum INT(11) NOT NULL,
FIELD VARCHAR(255) NOT NULL DEFAULT '',
VALUE longblob,
PRIMARY KEY (cfgNum,FIELD)
);
Luo lemonldap-ng.ini tiedostosta kopio
sudo cp /etc/lemonldap-ng/lemonldap-ng.ini /tmp/lemonldap-ng.ini
Avaa tämä kopio /etc/lemonldap-ng/lemonldap-ng.ini.new ja konfiguroi sinne tietokantapalvelimesi asetukset.
[configuration] type = RDBI dbiChain = DBI:mysql:database=lemonldap-ng;host=1.2.3.4 dbiUser = lemonldap dbiPassword = password ; optional dbiTable = mytablename
Kommentoi pois "type=File" konfiguraatiosta. Tallenna ja sulje.
Aja seuraava komento siirtäessä vanhan konfiguraation uudelle backendille.
sudo /usr/share/lemonldap-ng/bin/convertConfig --current /etc/lemonldap-ng/lemonldap-ng.ini /tmp/lemonldap-ng.ini
Sitten siirrä varmuuskopioi vanha konfigurointi tiedosto
sudo mv /etc/lemonldap-ng/lemonldap-ng.ini /etc/lemonldap-ng/lemonldap-ng.ini.bak
ja korvaa uudella
sudo mv /tmp/lemonldap-ng.ini /etc/lemonldap-ng/lemonldap-ng.ini
Käynnistä Apache2 / lemonldap-ng-fastcgi-server uudelleen
sudo service apache2 restart
sudo service lemonldap-ng-fastcgi-server restart
Webhallinta (manager)
Siirry manageriin jatkaaksesi konfigurointia.
Kirjaudu oletustunnuksella dwho ja salasanalla dwho
SAML käyttöön
Otat käyttöön Managerista: General parameters -> SAML alta.
Istunnot MySQL/MariaDB:hen
Oletuksena LemonLDAP tallentaa istunnot tiedostoon. Tämä tekee vaikeammaksi toteuttaa HA-ratkaisua jossa olisi useita LemonLDAP istansseja. Kun tallennat istunnot tietokantaan kuten MySQL, voit synkronoida nämä istunnot helpommin palvelimiesi välillä.
Luo lemonldap tietokantaan taulu sessions
CREATE TABLE sessions ( id CHAR(32) NOT NULL PRIMARY KEY, a_session text ); CREATE TABLE psessions ( id CHAR(32) NOT NULL PRIMARY KEY, a_session text );
Tietokantaan luo käyttäjätili jolla kaikki oikeudet tähän tietokantaan.
Sitten Managerissa General Parameters -> Sessions -> Sessions Storage määritä sinne seuraavat asetukset MySQLää varten. DataSource ja Lock DataSource voit käyttää samoja tunnuksia ja salasanoja.
DataSource dbi:mysql:dbname=lemonldap;host=127.0.0.1 UserName lemonldap Password lemonldap_password TableName sessions LockDataSource dbi:mysql:dbname=lemonldap;host=127.0.0.1 LockUserName lemonldap LockPassword lemonldap_password
Muuta sitten Apache::Session modules arvoksi: Apache::Session::MySQL ja tallenna konfiguraatio. Jos sinulla ei ole Apache::Session::MySQL asennettuna, asenna se cpanin avulla.
sudo cpan install Session::MySQL
Teimme lisäksi Persistent sessions konfiguraation taulun, määritä vastaavanlainen tietokanta-asetukset manageriin.
Portaalin kustomointi
Portaalia voi kustomoida HTML / CSS / JS:llä suoraan /usr/share/lemonldap-ng/portal-skins hakemistossa.
cd /usr/share/lemonldap-ng/portal-skins/ cd myskin/ cp -a ../bootstrap/fonts/ . cp -a ../bootstrap/js/ . cp -a ../bootstrap/css/ . mkdir images
SSO käyttöön eri palveluissa
Tässä ohjeita miten palvelut saadaan kirjautumaan LemonLDAPin SSO:n kautta.
Mene Manageriin _-> OpenID Connect Relaying parties ja luo uusi OpenID Relaying party. Nimeä se haluamallasi tavalla.
Options tabin alta:
- Auhthentication
- Client ID - Asiakkaan tunnus, generoi tunnus jota käytät sovelluksessa.
- Client secret: Asiakkaan tunnuksen salausavain, jota käytetään sovelluksessa. Generoi oma.
- Display
- Display name: Sovelluksen nimi
- Logo: Sovelluksen kuvake
- Redirection addresses: Uudelleenohjaus osoitteet, erotetaan välilyönnillä. Eli nämä ovat redirect_uri parametrissä.
Gitlab
Avaa /etc/gitlab/gitlab.rb konfigurointi tiedosto
Konfiguroi se seuraavanlaiseksi
gitlab_rails['omniauth_enabled'] = true gitlab_rails['omniauth_allow_single_sign_on'] = ['oauth2_generic'] gitlab_rails['omniauth_block_auto_created_users'] = false gitlab_rails['omniauth_providers'] = [ { 'name' => 'oauth2_generic', 'app_id' => 'random_key', #Change this to own app id 'app_secret' => 'random_key', #Change this to own app key 'args' => { "scope" => "openid", client_options: { 'site' => 'https://auth.example.org', # including port if necessary 'authorize_url' => '/oauth2/authorize', 'token_url' => '/oauth2/token', 'user_info_url' => '/oauth2/userinfo', }, user_response_structure: { root_path: ['data', 'user'], attributes: { nickname: 'username', first_name: 'name', last_name: 'family_name', email: 'email' } }, } } ]
Sulje tiedosto ja aja seuraava komento lataaksesi konfiguraation uudelleen
sudo gitlab-ctl reconfigure
Linkkejä:
https://gitlab.com/satorix/omniauth-oauth2-generic
Linkkejä
https://elatov.github.io/2014/02/lemonldap-ng-ldap-saml-google-apps/