Sinkronizacija AAI@EduHr i Microsoft Active Directoryja

 

Predradnje

Da bi se mogao postaviti sustav koji drži u sinkronizaciji osnovne podatke u LDAP-u i Microsoft Active Directoryju potrebno je obaviti predradnje:

SSL

Konfigurirati MS AD tako da radi preko SSL-a (port 636), odn. imati certifikat za server. AD ne dozvoljava promjenu passworda ako komunikacije nije zaštićena SSL-om. Detaljnije...

Početna sinkronizacija

Potrebno je sinkronizirati već postojeće podatke u LDAP-u i MS AD-u:

  1. Provjeriti imaju li korisnici u LDAP-u uid jednak korisničkom računu u MS AD (odn. [LDAP] uid = [MSAD] sAMAccountName), za sve koji već imaju račun u MS AD
  2. Provjeriti imaju li svi korisnici iz LDAP-a račun u MS AD, ako nemaju potrebno ih je uvesti:
    1. Dump LDAP korisnika u LDIF datoteku
      ldapsearch -LLL -H ldap://server:389/ -b "dc=domena,dc=hr" -x -D "cn=admin,dc=domena,dc=hr" -s sub -W "objectClass=hreDuPerson" uid givenName sn cn mail o ou hrEduPersonUniqueId hrEduPersonPrimaryAffiliation > backup.ldif
    2. Datoteku backup.ldif prebaciti na MS AD
    3. U isti direktorij odkomprimirajte program za uvoz korisnika iz LDIF datoteke
    4. Pokrenite program za uvoz korisnika iz LDIF datoteke: USERIMPORT backup.ldif.
      Program će preskočiti korisnike čiji uid-i se već nalaze u MS AD. Korisnici se ubacuju u OU naziva Import-AAI i kao description imaju vrijednost atributa hrEduPersonPrimaryAffiliation.

AOSI klijent 1.6

Instalirati AOSI web klijent (inačica 1.6 ili bolja)
#apt-get install aosi-aai-www .

AOSI 2.1

Instalirati AOSI web servis s podrškom za plug-inove (inačica 2.1 ili bolja)
#apt-get install aosi-aai .

(Prilikom instalacije AOSI web klijenta 1.6+ će se automatski instalirati AOSI web servis 2.5+.)

Plug-in

Instalirati MSAD plug-in za AOSI web servis koji održava LDAP i MS AD u sikronom stanju
#apt-get install libmsad-aosi-aai.
AOSI i MS AD

Konfiguriranje

Na MS AD serveru je potrebno kreirati dva korisnika (zapamtite njihove lozinke!):

AOSIRO
korisnik koji ima samo mogućnost dohvaćanja podataka iz AD
AOSIWRT
korisnik koji ima mogućnost stvaranja i brisanja unosa u AD
Pravilno konfigurirati AOSI plug-in u /usr/lib/aosi/Plugins/MSAD.conf:
(NAPOMENA: Nemojte koristiti Perl specijalne znakove u stringovima!)
<base_dn dc=ustanova,dc=hr>
Upisati BASE_DN ustanove.
AD_base
Base DN od AD-a.
(Primjer: AD_base = DC=ADDomena,DC=local)
AD_hostname
Hostname ili IP adresa na kojoj se nalazi AD.
(Primjer: AD_hostname = 161.53.333.333 )
AD_port
Port na kojemu sluša AD s certifikatom - podrazumijevani je 636.
(Primjer: AD_port = 636)
AD_aosiro_dn
Distinguished Name od korisnika koji ima pravo čitanja iz AD-a.
(Primjer: AD_aosiro_dn = CN=AOSIRO,CN=Users,${AD_base} . Ovdje je prikazan način kako iskoristiti već definirane vrijednosti - AD_base)
AD_aosiro_pwd
Lozinka AOSIRO računa.
(Primjer: AD_aosiro_pwd = aosiropwd)
AD_aosiwrt_dn
Distinguished Name od korisnika koji ima pravo pisanja u AD.
(Primjer: AD_aosiro_dn = CN=AOSIWRT,CN=Users,${AD_base} . Ovdje je prikazan način kako iskoristiti već definirane vrijednosti - AD_base)
AD_aosiwrt_pwd
Lozinka AOSIWRT računa.
(Primjer: AD_aosiro_pwd = aosiwrtpwd)
AD_new_dn
Inicijalno će se svi korisnici kreirati u ovoj grupi. AD administratori mogu kasnije premjestiti korisnike u druge grupe.
(Primjer: AD_new_dn = CN=Users )
AD_new_users_disabled
Hoće li novostvoreni računi biti onemogućeni: 1 -Da; 0 - Ne.
(Primjer: AD_new_users_disabled = 0)
AD_new_users_pne
Hoće li lozinka novostvorenih računa biti bez vremensko ograničenja: 1 -Da; 0 - Ne.
(Primjer: AD_new_users_pne = 1)
AD_new_users_pwd_exp
Hoće li lozinka novostvorenih računa odmah biti nevažeća (kako bi korisnici postavili novu lozinku): 1 -Da; 0 - Ne.
(Primjer: AD_new_users_pwd_exp = 0)
use_custom_suffix
Ako se AD_base razlikuje od realma ustanove, upisuje se realm u userPrincipalName.
(Primjer: use_custom_suffix = 1)
AD_custom_suffix
Ako se AD_base razlikuje od realma ustanove, ovdje se upiše realm ustanove koji će se upisivati u userPrincipalName, kako bi korisnici mogli kao naziv računa pisati korisnik@domena.hr.
(Primjer: AD_custom_suffix = domena.hr )
custom_filter
Treba li sinkronzirati samo određenu grupu ljudi (odn. identitete koji imaju određeni atribut postavljen na određenu vrijednost) tada se postavlja ova vrijendost na oblik atribut=vrijednost.
OVAJ ATRIBUT NEMOJTE UPISIVATI U KONFIGURACIJSKU DATOTEKU AKO ŽELITE SINKRONIZIRATI SVE IDENTITETE.
(Primjer: custom_filter = hrEduPersonPrimaryAffiliation=djelatnik )
panic_on_errors
Treba li plug-in prekinuti osnovnu operaciju za LDAP imenik: 1 -DA; 0 - NE.
show_warnings_as_errors
Treba li plug-in sva upozorenja koje pošalje AD proslijediti kao pogrešku: 1 -DA; 0 - NE.
m_attributes
Popis atributa koji se smiju mijenjati u AD (izmjena ostalih atributa se ne proslijeđuje AD-u).
(Primjer:
<m_attributes>
userPassword
</m_attributes>
)
admin_users
Popis uid-a koji smiju unositi promjene u AD - najčešće su to isti uid-i kao i u /etc/aosi/valid_user datoteci. Korisnici smiju mijenjati samo neke atribute.
(Primjer:
<admin_users>
	u100
	u200
</admin_users>
)
exclude_users
Popis uid-a za koje se neće obavljati sinkronizacija.
(Primjer:
<exclude_users>
       ne_windows_racun						
</exclude_users>
)
Primjer konfiguracije:
				
# WARNING: Do not use special Perl characters in strings (e.g. names, passwords etc)
<base_dn dc=domena,dc=hr>
	AD_base                 = DC=ADDomena,DC=local
	AD_hostname             = 161.53.333.333
	AD_port                 = 636
	AD_aosiro_dn            = CN=AOSIRO,CN=Users,${AD_base}
	AD_aosiro_pwd           = aosiropwd
	AD_aosiwrt_dn           = CN=AOSIWRT,CN=Users,${AD_base}
	AD_aosiwrt_pwd          = aosiwrtpwd
	AD_new_dn               = CN=Users
	AD_new_users_disabled   = 0
	AD_new_users_pne        = 1
	AD_new_users_pwd_exp    = 0
	use_custom_suffix       = 1
	AD_custom_suffix        = domena.hr
	panic_on_errors         = 0 
	show_warnings_as_errors = 0
	<m_attributes>
		userPassword
	</m_attributes>
	<admin_users>
   		u100
   		u200
	</admin_users>
<base_dn>

Potrebno je provjeriti je li aktiviran MSAD plug-in, odn. u datoteci /etc/aosi/plugins.conf provjeriti postoji li redak u kojemu piše MSAD (ne smije ispred pisati znak #).

Postavljenje lozinke

Nakon što je sustav postavljen korisnici moraju postaviti lozinku u oba repozitorija. Za to je potrebno obavijestiti korisnike da postave lozinku kroz AOSI web sučelje.

Postavljanje Policy-ja za lozinke

U Domain Security Policy:

Account Policies/
	Password Policy
	
		Enforce Password Histry=Not Defined
		Maximum Password age=Not Defined
		Minimum Password age=Not Defined
		Minimum Password length=0
		Password must meet complexity requirements=Disabled
		Store Password using Reversible encryption=Disabled
Password Policy

Sprječavanje korisnika da mijenjaju lozinku kroz Windows-e

U Group Policy Editor-u za korisničke račune postaviti:

User Configuration/	
	Administrative Template/
		System/
			Ctrl+Alt+Del Options/
				Remove Change Password=Enabled
Remove Change Password

Sinkronizacija više Active Directory-ja

Ako ustanova ima odvojene domene za djelatnike i studente moguće ih je odvojeno sinkronizirati. Detaljnije...