Informații instalare IdP propriu
Această secțiune este un ghid în care sunt explicați pașii ce trebuie urmați de o instituție în vederea conectării acesteia la serviciile de autentificare ale AnelisPlus. Au fost considerate doar soluțiile gratuite ce sunt disponibile sub licențe libere (OpenSource) și doar sistemul de operare Linux.
1 Software și servicii necesare
Pentru a oferi utilizatorilor proprii acces integrat la serviciile de autentificare ale AnelisPlus prin intermediul federației RoEduNet, o instituție trebuie să aibă:
- O bază de date cu utilizatori (MySQL, PostgreSQL sau OpenLDAP).
- Un server web (ex: Apache) cu suport de PHP, care să permită rularea SimpleSAMLPHP
De asemenea, în vederea securizării comunicației între servicii, instituția trebuie să fie înrolată în serviciul de certificate electronice al RoEduNet.
2 Configurarea serviciilor
Pentru integrarea în sistemul de autentificare al AnelisPlus sunt necesari următorii pași:
- Descărcarea și instalarea SimpleSAMLPHP
- Configurarea serverului web astfel încât SimpleSAMLPHP să poată funcționa în condiții normale (instalarea modulelor necesare din PHP, instalarea certificatelor SSL, etc)
- Configurarea efectivă a SimpleSAMLPHP
- Înregistrarea IdP-ului la AnelisPlus (și RoEduNet)
- Configurarea IdP pentru acces la serviciile AnelisPlus
2.1 Descărcarea și instalarea SimpleSAMLPHP
SimpleSAMLPHP este disponibil pe https://simplesamlphp.org/ împreuna cu toată documentația oficială. Pentru a veni în întâmpinarea instituțiilor ce folosesc serviciile AnelisPlus, punem la dispoziție ultima versiune (1.13.2) a SimpleSAMLPHP, ce are deja incluse o serie de configurări comune pentru toate instituțiile și poate fi descărcată de la adresa
https://www.anelisplus.ro/files/simplesamlphp-1.13.2.tar.gz
Prezentul document pleacă de la premisa că este folosită varianta preconfigurată. În cazul în care veți folosi varianta oficială, autorii acestui document nu pot garanta sub nici o formă că instrucțiunile și informațiile prezentate în continuare vor funcționa.
2.2 Configurarea serverului web
Configurarea serviciului web este specifică tipului de server utilizat (Apache, NGINX etc.) și nu va fi tratată în acest document. Printre componentele necesare se numără si certificatele SSL, mai multe informații despre serviciul de certificate electronice al RoEduNet pot fi obținute de la a tcs@roedu.net.
2.3 Configurarea SimpleSAMLPHP
Configurarea SimpleSAMLPHP are în vedere setarea acestuia ca IdP și necesită următorii pași:
- setări generale ale aplicației (config/config.php)
- definirea sursei autoritative pentru autentificarea utilizatorilor (config/authsources.php)
- asocierea sursei definite cu serviciile de IdP (metadata/saml20-idp-hosted.php și metadata/shib13-idp-hosted.php).
2.3.1 config/config.php
Fișierul config/config.php conține setări generice ale SimpleSAMLPHP precum și codul/lista de atribute ce sunt exportate către SP. Pentru a asigura funcționalitatea minimă este necesară configurarea următorilor parametri:
- auth.adminpassword (se poate folosi http://passwordsgenerator.net/)
- secretsalt (poate fi generat folosind următoarea linie de comandă: tr -c -d '0123456789abcdefghijklmnopqrstuvwxyz' </dev/urandom | dd bs=32 count=1 2>/dev/null;echo)
- technicalcontact_name
- technicalcontact_email
- codul PHP cuprins între liniile 490 și 539
Atenție ! Codul PHP de la secțiunea authproc.idp și prioritatea 60 trebuie să fie un cod PHP valid. Orice greșeală în codul PHP va avea impact asupra funcționalității serviciului IdP.
2.3.2 config/authsources.php
În fișierul authsources.php din directorul config trebuie definită sursa autoritativă de autentificare a utilizatorilor. Fișierul conține mai multe exemple (comentate) pentru diferite variante de surse de autentificare, ce pot fi utilizate și adaptate.
Din păcate, în momentul scrierii acestui document nu există un modul care să permită folosirea facilă a utilizatorilor definiți la nivel de sistem de operare (/etc/passwd, /etc/shadow și /etc/group).
2.3.3 metadata/saml20-idp-hosted.php și metadata/shib13-idp-hosted.php
În fiecare din cele două fișiere trebuie specificați parametrii ce vor fi folosiți de către SimpleSAMLPHP pentru a oferi servicii de tip IdP folosind SAML20 și Shibbolleth 1.3. Acești parametri sunt:
- privatekey (calea absolută către cheia privată a cerificatului ce va fi folosit pentru criptarea comunicațiilor)
- certificate (calea absolută către cerificatul ce va fi folosit pentru criptarea comunicațiilor)
- auth – numele sursei (tipului) de autenficare configurată la pasul anterior
Un exemplu de astfel de fișier poate fi cel de mai jos. În acest caz este vorba de spre o instituție a cărei domeniu Internet este ”incdnume.ro” iar autentificarea se face folosind LDAP.
2.4 Înregistrarea IdP-ului
Pentru ca serviciul de autentificare (IdP) să poată fi folosit de către serviciile AnelisPlus prin intermediul federației RoEduNet, este necesar să transmiteți calea exactă către metadatele exportate de către IdP-ul dvs (ex: https://idp.uaic.ro/simplesaml/saml2/idp/metadata.php) către următoarele adrese de email:
2.5 Configurarea IdP pentru acces la AnelisPlus
(ar intra tot la configurarea SimpleSAMLPHP)
Pentru a permite accesul la serviciile oferite de AnelisPlus (Service Provider) prin intermediul federației RoEduNet, este necesară configurarea în IdP-ul instituției a datelor despre AnelisPlus. Astfel, este necesară adăugarea următoarelor informații în fișierul saml20-sp-remote.php și/sau shib13-sp-remote.php.