Autentikacijska i autorizacijska infrastruktura sustava znanosti i visokog obrazovanja u Republici Hrvatskoj
  • Hrvatski
  • English

Koji postojeći moduli su dostupni za AOSI?

 

Sadržaj:


 

MSAD (libmsad-aosi-aai)

Omogućava sinkronizaciju podataka u LDAP imeniku i Microsoft Active Directory-ju:

  • dodavanje korisnika;
     
  • brisanje korisnika;
     
  • postavljanje i promjenu lozinke;

Detaljnije o plug-inu...


o365connect (libo365connect-aosi-aai)

Služi sinkronizaciji Azure AD sa LDAP imenikom u svrhu omogućavanja korištenja Office 365 usluge. Radi asinkrono: jedna njegova komponenta piše sve promjene u imeniku u .ldif datoteku, a druga ih periodički šalje u Azure AD koristeći pri tom Azure AD GRAPH API.

Detaljnije o plug-inu...


LDIFSync (libldifsync-aosi-aai)

Plug-in nužan za pokretanje sekundarnih AAI@EduHr servisa na matičnoj ustanovi. Nije potrebno dodatno konfiguriranje nakon instalacije.


WebService (libwebservice-aosi-aai)

Omogućava slanje akcija određenim web servisima. Konfiguracijski parametri navedeni su u nastavku:

function - Definicija varijable, odn. naziva funkcije koja se okida za određenu akciju. Može biti jedna funkcija za sve akcije ili različite finkcije za svaku akciju.
          (Primjer: function = aai_action )

<service [naziv]> - Dio u kojemu se konfiguriraju parametri za pojedini web servis naziva [naziv]. Naziv servisa bi trebao biti jedinstven i informativan.
          (Primjer: <service MSADSync>...</service>)

panic_on_errors - Treba li plug-in prekinuti osnovnu operaciju za LDAP imenik: 1 - DA; 0 - NE.
          (Primjer: panic_on_errors = 0)

location - URL do web servisa (uključivo i port na kojemu sluša).
          (Primjer: location = https://aosi-dev.srce.hr:11111/WS)

namespace - Namespace od web servisa (obično je definiran u WSDL datoteci).
          (Primjer: namespace = WS)

<functions> - Dio u kojemu se definira koja se funkcija poziva za pojedinu akciju.

beforeAddUser - Funkcija koja se poziva prije dodavanja identiteta u imenik. Vrijednost može biti naziv funkcije ili referenca na prije definiranu varijablu.
          (Primjer: beforeAddUser = aai_bef_adduser)
          (Primjer 2: beforeAddUser = ${function})

afterAddUser - Funkcija koja se poziva nakon dodavanja identiteta u imenik. Vrijednost može biti naziv funkcije ili referenca na prije definiranu varijablu.
          (Primjer: afterAddUser = aai_aft_adduser)
          (Primjer 2: afterAddUser = ${function})

beforeDeleteUser - Funkcija koja se poziva prije brisanja identiteta iz imenika. Vrijednost može biti naziv funkcije ili referenca na prije definiranu varijablu.
          (Primjer: beforeDeleteUser = aai_bef_deluser)
          (Primjer 2: beforeDeleteUser = ${function})

afterDeleteUser - Funkcija koja se poziva nakon brisanja identiteta iz imenika. Vrijednost može biti naziv funkcije ili referenca na prije definiranu varijablu.
          (Primjer: afterDeleteUser = aai_aft_deluser)
          (Primjer 2: afterDeleteUser = ${function})

beforeChangeAttribute - Funkcija koja se poziva prije promjene atributa u imeniku. Vrijednost može biti naziv funkcije ili referenca na prije definiranu varijablu.
          (Primjer: beforeChangeAttribute = aai_bef_chgatt)
          (Primjer 2: beforeChangeAttribute = ${function})

afterChangeAttribute - Funkcija koja se poziva nakon promjene atributa u imeniku. Vrijednost može biti naziv funkcije ili referenca na prije definiranu varijablu.
          (Primjer: afterChangeAttribute = aai_aft_chgatt)
          (Primjer 2: afterChangeAttribute = ${function})

Svaka od funkcija mora primati tri argumenta:

  1. action - naziv akcije, jedno od beforeAddUser, afterAddUser, beforeDeleteUser, afterDeleteUser, beforeChangeAttribute, afterChangeAttribute;
     
  2. xml - Base64 zakodirani XML oblika:
    <entry dn="uid=user_uid,dc=org_realm,dc=hr">
            <attribute ldapname="attribute_name">
                    <value>XXXXX</value>
                    <value>YYYYYY</value>
                    <value>ZZZZZZ</value>
            </attribute>
            <attribute ldapname="attribute_name2">
                    <value>XYZXYZ</value>
            </attribute>
    </entry>
    

    kojim se opisuju podaci za akciju;
     

  3. change_type - vrsta promjene za beforeChangeAttribute i afterChangeAttribute:
    • 1- Dodavanje atributa (Add);
    • 2- Promejna atributa (Modify);
    • 3 - Brisanje atributa (Delete);

Primjer konfiguracije:

function                 = Operation
<service MSADSync>
        panic_on_errors  = 0
        location         = https://aosi-dev.srce.hr:11111/WS
        namespace        = WS
        <functions>
                beforeAddUser         = ${function}
                afterAddUser          = ${function}
                beforeDeleteUser      = ${function}
                afterDeleteUser       = ${function}
                beforeChangeAttribute = ${function}
                afterChangeAttribute  = ${function}
        </functions>
</service>

 

Unique (libunique-aosi-aai)

Provjerava jedinstvenost vrijednosti određenih atributa na razini imenika. Konfiguracijski parametri navedeni su u nastavku:

panic_on_errors - Treba li plug-in prekinuti osnovnu operaciju za LDAP imenik: 1 - DA; 0 - NE. (Primjer: panic_on_errors = 0)

<attributes> - Popis atributa za koje se provjerava jedinstvenost vrijednosti.

Primjer konfiguracije:

panic_on_errors = 1

<attributes>
  mail
  hrEduPersonUniqueNumber
  hrEduPersonOIB
</attributes>														

 

MySQL (libmysql-aosi-aai)

Omogućava sinkronizaciju s određenim tablicama u MySQL bazi. Konfiguracijski parametri navedeni su u nastavku:

dbuser - Korisnička oznaka kojom se plug-in prijavljuje u bazu. (Primjer: dbuser = aosi_user)

dbpwd - Lozinka kojom se plug-in prijavljuje u bazu. (Primjer: dbpwd = Aosi_Sync_3E4R5)

dbname - Naziv baze u koju se plug-in prijavljuje. (Primjer: dbname = aosi_sync)

dbhost - IP adresa servera na kojemu se nalazi baza. (Primjer: dbhost = 125.126.127.128)

users_table - Naziv tablice u kojoj se nalaze podaci o korisnicima, koja može biti definirana kao:

CREATE TABLE `USERS` (

`ID` int(6) unsigned NOT NULL auto_increment,

`UID` varchar(30) NOT NULL,

`ACTIVE` int(2) default NULL,

`CHANGED_BY` varchar(30) default NULL,

`TS` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,

PRIMARY KEY  (`ID`),

UNIQUE KEY `IDX_USERS` (`ID`)

);	

(Primjer: users_table = USERS)

values_table - Naziv tablice u kojoj se nalaze podaci o atributima, koja može biti definirana kao:

CREATE TABLE `ATTRIBUTES` (

`ID` int(6) unsigned NOT NULL auto_increment,

`UID` varchar(30) NOT NULL,

`NAME` varchar(50) default NULL,

`VALUE` varchar(250) default NULL,

`ACTIVE` int(2) default NULL,

`TS` timestamp NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,

PRIMARY KEY  (`ID`)									

);


(Primjer: values_table = ATTRIBUTES)

active_col - Naziv stupca koji oznčava je li unos aktivan (obrisan) ili ne: 1 - aktivan; 0 - obrisan. (Primjer: active_col = ACTIVE)

changedby_col - Naziv stupca u koji se upisuje UID administratora koji obavlja akciju. (Primjer: changedby_col = CHANGED_BY)

attribute_list - Popis atributa (odvojenih zarezom) koji se upisuju u values_table tablicu. (Primjer: attribute_list = cn,sn,givenName,mail,hrEduPersonExpireDate)

Primjer konfiguracije:

dbuser = aosi_user

dbpwd = Aosi_Sync_3E4R5

dbname = aosi_sync

dbhost = 125.126.127.128

users_table = USERS         

values_table = ATTRIBUTES

active_col = ACTIVE

changedby_col = CHANGED_BY

attribute_list = cn,sn,givenName,mail,hrEduPersonExpireDate

 


File (libfile-aosi-aai)

Omogućava slanje akcija u navedenu datoteku. Osnovan namjena ovog plug-ina je da posluži kao kostur za pisanje vlastitih plug-inova. Konfiguracijski parametri navedeni su u nastavku:

path - putanja do direktorija u kojemu će se zapisivati datoteke (za svaku od akcija):

  • Plugins::File::beforeAddUser.txt
  • Plugins::File::afterAddUser.txt
  • Plugins::File::beforeDeleteUser.txt
  • Plugins::File::afterDeleteUser.txt
  • Plugins::File::beforeChangeAttribute.txt
  • Plugins::File::afterChangeAttribute.txt

Podaci se zapisuju u obliku in za ulazne podatke i out za izlazne podatke:

in=	

<entry dn="uid=user_uid,dc=org_realm,dc=hr">   
<attribute ldapname="attribute_name">       
	<value>XXXXX</value>   
	<value>YYYYYY</value>
	<value>ZZZZZZ</value>
</attribute>
<attribute ldapname="attribute_name2">       
	<value>XYZXYZ</value>   
</attribute>

</entry>


out=

<entry dn="uid=user_uid,dc=org_realm,dc=hr">
<before_plugin_status name="LDIFSync" code="0">dc=org_realm,dc=hr</before_plugin_status>
<before_plugin_status name="MSAD" code="0">Success</before_plugin_status>
<before_plugin_status name="File" code="0">Everything OK!</before_plugin_status>
<before_plugin_status name="Unique" code="0">OK</before_plugin_status>
<status code="0">User added successfully!</status>

</entry>

(Primjer: path = /tmp/aosi)

 

CERTIFY (libcertify-aosi-aai)

Služi provjeri usklađenosti podataka u LDAP imeniku matične ustanove s normama certificiranja matičnih ustanova. Ovaj je plugin u stvari nadogradnja na program za provjeru usklađenosti imenika s normama certificiranja (zajedno s pluginom dolazi nezavisan program za provjeru usklađenosti imenika s normama certificiranja - taj je program moguće i samostalno pokrenuti na poslužitelju ustanove). Plugin omogućava koordinatoru AAI@EduHr sustava da za vrijeme certificiranja sam dohvati (agregirane) podatke o usklađenosti imenika pokrenuvši program za provjeru usklađenosti, te time sistemca / administratora imenika oslobodi dužnosti pokretanja programa za analizu sadržaja imenika te slanja njegova izvještaja u vrijeme trajanja certificiranja matičnih ustanova.

Program za analizu sadržaja imenika (sastavni je dio plugina i instalira se zajedno s njim) može se pokrenuti naredbom:
 

# /usr/lib/aosi/Plugins/certify.pl [--detail|-d] [--base64|-b] [--sendmail|-s] [--outfile <filename>|-o <filename>] [--realm <realm>|-r <realm>]

Opis parametara:
 

--detail : prikazuje detaljan popis nepravilnosti / neusklađenosti u imeniku
--base64 : ispisuje se samo Base64 dio
--sendmail : pokrenete li program s ovom opcijom, po izvršenju programa moći ćete odabrati poslati izvještaj mailom AAI@EduHr teamu.
--outfile : rezultat se sprema u datoteku <filename> umjesto ispisa na zaslon
--realm : provjerava se LDAP za navedeni realm (umjesto $config::base_dn u /etc/aosi/config.pm)