Predradnje

Prije instalacije plugina potrebno je obaviti predradnje opisane u uputama za konfiguriranje usluge MS Office 365 za autentikaciju korisnika putem sustava AAI@EduHr.

Opis

Ovaj plugin služi sinkronizaciji podataka u LDAP imeniku s Azure AD-om, kako bi se posjednicima elektroničkog identiteta u sustavu AAI@EduHr omogućila autentikacija za uslugu Office 365 putem login servisa sustava AAI@EduHr. Plugin je pisan u Perlu, a podatke prenosi u Azure AD posredstvom Azure AD GRAPH API-a.

Način rada

Zbog raznih ograničenja i zahtjeva koji su postavljeni pred plugin, te heterogenog okruženja u kojem radi, plugin se sastoji od dvije glavne komponente:

  • komponente koja sve promjene koje se na određenom setu atributa dogode u LDAP imeniku piše u .ldif datoteku;
  • komponente koja asinkrono promjene zapisane u ldif datoteci proslijeđuje u Azure AD pozivom metoda GRAPH API-a;

Kako se promjene u Azure AD prenose asinkrono, korisnik nije kreiran u Azure AD istog trenutka kad je dodan u LDAP imenik, već tek nakon prvog sljedećeg pokretanja komponente koja promjene prenosi u Azure. Iz istog razloga administrator ne može znati jesu li sve promjene uspješno prenesene u Azure AD, pa je potrebno povremeno provjeravati log datoteku.

Promjene koje se prenose u Azure AD

  • dodavanje korisnika: kreira se novi korisnik u Azure AD. Sukladno vrijednosti atributa hrEduPersonPrimaryAffiliation (primarna povezanost s ustanovom), te postavkama korisnik se automatski pridružuje određenoj grupi, te mu se dodjeljuje odgovarajuća licenca;
  • brisanje korisnika: korisnik u Azure AD proglašava neaktivnim. Kako se kod kreiranja korisnika u Azure AD prenosi i hrEduPersonPersistentID, Azure AD vodi brigu o tome da je, iako je korisnik obrisan, nemoguće dodati korisnika s istom vrijednosti atributa hrEduPersonPersistentID;
  • promjena vrijednosti atributa: za atribute određene konfiguracijom, promjene se prenose u Azure AD;

Komponente

Instalacijski paket sastoji se od 5 datoteka:

  • /usr/lib/aosi/Plugins/o365connect.pm - komponenta s kodom plugina koja se uključuje u AOSI web servis i sve promjene u atributima određenim konfiguracijskom datotekom piše u ldif datoteku koja se nalazi na stazi /var/log/aosi/o365connect/o365connect_REALM.ldif
  • /usr/lib/aosi/Plugins/o365connectTransferToAzure.pl - komponenta koja se pokreće iz crona svakih 10 minuta i sve promjene zapisane u datoteci /var/log/aosi/o365connect/o365connect_REALM.ldif proslijedi u Azure AD koristeći GRAPH API. Izlaz ove datoteke piše se u log na stazi /var/log/aosi/o365connect/o365connectTransferToAzure.log. Nakon što obradi ldif datoteku, ako je tako određeno konfiguracijom, kompresira ldif datoteku i preimenuje je u o365connect_REALM.ldif.timestamp.gz
  • /etc/aosi/plugins/o365connect.conf - konfiguracijska datoteka. U njoj je moguće postaviti sljedeće parametre:
    ofc_clientID je CLIENT ID dobiven u postupku registracije plugina u Azure AD web sučelju. Postupak registracije opisan je u ovim uputama.
    ofc_clientSecret je KEY dobiven u postupku registracije plugina u Azure AD web sučelju. Postupak registracije opisan je u ovim uputama.
    ofc_archive_processed_ldif je parametar koji određuje hoće li ldif datoteka s promjenama, nakon što su promjene prenesene u Azure AD, biti izbrisana ili arhivirana. Default je 1 i on označava da će datoteka biti arhivirana.
  • /etc/aosi/plugins/o365connectAttributes.pm - konfiguracijska datoteka u kojoj s popisom atributa koji se prenose u Azure AD. U nastavku su opisani parametri dostupni kroz tu datoteku:
    Parametar attr_map određuje koji se atributi prenose prilikom kreiranja novog korisnika iz LDAP-a u Azure AD, te u koje se atribute u Azure AD mapiraju pojedini atributi iz hrEduPerson sheme. Defaultna vrijednost je:
$attr_map={
            'cn'=>'displayname',
            'givenName'=>'GivenName',
            'sn'=>'Surname',
            'hrEduPersonUniqueID'=>'userprincipalname',
            'uid'=>'mailNickname',
            'hrEduPersonPersistentID'=>'immutableid',
            'hrEduPersonPrimaryAffiliation'=>'jobTitle'
        };

Parametar upd_attr je popis atributa za koje se promjene prenose iz LDAP-a u Azure AD. Defaultna vrijednost je:

$upd_attr=['cn','givenName','sn','hrEduPersonPrimaryAffiliation'];

Parametar group_map određuje u koju će grupu biti pridružen korisnik prilikom dodavanja u Azure AD, a na osnovi vrijednosti atributa hrEduPersonPrimaryAffiliation (primarna povezanost s ustanovom). Jedan korisnik može biti pridružen u više grupa odjednom. Npr. kad bi djelatnike htjeli prilikom dodavanja postaviti i u grupu SG_djelatnik i u grupu SG_zaposlenik, redak 'djelatnik'=>['SG_djelatnik'], biste u datoteci zamijenili redkom 'djelatnik'=>['SG_djelatnik', 'SG_zaposlenik'], Ako grupa ne postoji u Azure AD, bit će kreirana kod prvog korisnika koji treba biti pridružen toj grupi. Hrvatski dijakritici su namjerno izbačeni iz definicije, pa tako umjesto učenik piše uenik, a umjesto cjeloživotno cjeloivotno. Defaultna vrijednost je:

$group_map={
            'cjeloivotno obrazovanje'=>['SG_cjelozivotno_obrazovanje'],
            'djelatnik'=>['SG_djelatnik'],
            'gost'=>['SG_gost'],
            'korisnik usluge'=>['SG_korisnik_usluge'],
            'student'=>['SG_student'],
            'uenik'=>['SG_ucenik'],
            'vanjski suradnik'=>['SG_vanjski_suradnik'],
        };

Parametar licence_map određuje koja će licenca biti dodijeljena korisniku prilikom dodavanja u Azure AD, a na osnovi vrijednosti atributa hrEduPersonPrimaryAffiliation (primarna povezanost s ustanovom). Jednom korisniku može biti dodijeljeno više različitih licenci (ako to vrsta licence dozvoljava). Hrvatski dijakritici su namjerno izbačeni iz definicije, pa tako umjesto učenik piše uenik, a umjesto cjeloživotno cjeloivotno. Defaultna vrijednost je:

$licence_map={
            'cjeloivotno obrazovanje'=>[],
            'djelatnik'=>['STANDARDWOFFPACK_FACULTY'],
            'gost'=>[],
            'korisnik usluge'=>[],
            'student'=>['STANDARDWOFFPACK_STUDENT'],
            'uenik'=>[],
            'vanjski suradnik'=>[],
        };
  • o365connectLdapExport.pl - izvršna datoteka koja služi inicijalnoj sinkronizaciji Azure AD s LDAP imenikom. Nju je potrebno pokrenuti kod prve instalacije plugina. Ona sve korisnike iz imenika upiše u datoteku /var/log/aosi/o365connect/o365connect_REALM.ldif kako bi ih komponenta koja proslijeđuje podatke u Azure AD proslijedila u prvom sljedećem pokretanju. Da biste izvršili ovu datoteku potrebno je imati root ovlasti.
    VAŽNO: ova se datoteka pokreće samo jednom kod prve instalacije plugina!

Log

Log datoteka koja opisuje prijenos podataka u Azure AD nalazi se na stazi:

/var/log/aosi/o365connect/o365connectTransferToAzure.log

Ako je u konfiguraciskoj datoteci o365connect.conf parametar ofc_archive_processed_ldif postavljen u 1, ldif datoteka s promjenama se nakon obrade komprimira, preimenuje je u o365connect_REALM.ldif.timestamp.gz i ostaje na u direktoriju /var/log/aosi/o365connect/

Instalacija

Prije instalacije plugina potrebno je obaviti predradnje opisane u uputama za konfiguriranje usluge MS Office 365 za autentikaciju korisnika putem sustava AAI@EduHr.

Plugin se instalira naredbom:

# apt-get install libo365connect-aosi-aai

U postpuku instalacije potrebno je unijeti CLIENT ID i KEY koji služe autentikaciji plugina za pristup funkcijama GRAPH API-a.