Pravidla použití CAS

From SCWiki

Jump to: navigation, search

Pravidla použití definují způsob, jakým jsou naplňovány požadavky politiky.

Contents

Uchovávané údaje

CAS uchovává údaje v hierarchickém datovém modelu popsaném v RFC 2251, sekce 3.2. Záznamy o osobách jsou ukládány ve jmenném kontextu s kořenovým DN dc=cuni,dc=cz ve větvi s RDN ou=People, údaje o nepersonalizovaných průkazech a jejich držitelích ve větvi s RDN ou=Guests.

RDN osobních záznamů tvoří atribut cuniPersonalID (viz dále), celé DN záznamu je tedy například:

 cuniPersonalId=49237695,ou=People,dc=cuni,dc=cz


Datové schéma

Datové schéma vychází z následujících tříd:

Třída cuniPerson je definovány pro použití v CAS, viz příloha Definice LDAP schématu.

Používané atributy a význam jejich hodnot shrnuje následující tabulka (povinné atributy jsou vytištěny tučně, násobné atributy označeny hvězdičkou):

Atribut Příklad hodnoty Popis
Třída inetOrgPerson
cn Pavel Novák Jméno a příjmení.
sn Novák Příjmení.
givenName Pavel Křestní jméno.
uid * novakp Přihlašovací jméno (login).
mail novakp@mff.cuni.cz E-mailová adresa.
telephoneNumber +420 224 491 809 Telefonní číslo.
preferredLanguage czech Jazyk studia dle IS (zatím jen czech nebo english).


Třída eduPerson
eduPersonAffiliation * staff Typ vztahu osoby k UK. Nabývá hodnot z množiny { staff, student, employee, member, applicant, affiliate, alumn }, jejichž význam je popsán dále.
eduPersonPrimaryAffiliation staff Primární typ vztahu osoby k UK - hodnota atributu eduPersonAffiliation dané osoby, která má nejvyšší prioritu.
eduPersonScopedAffiliation * staff@mff.cuni.cz Typ vztahu osoby k UK spolu s určením součásti UK. Hodnoty jsou ve tvaru eduPersonAffiliation@doména, kde doména označuje součást UK (viz seznam součástí uvedený dále).
eduPersonOrgDN o=Charles University,dc=cuni,dc=cz Vyznačuje organizační příslušnost k UK.
eduPersonOrgUnitDN  dc=mff,dc=cuni,dc=cz DN součástí UK, které pořídily nebo mají právo měnit údaje o této osobě v IS UK.
eduPersonPrimaryOrgUnitDN dc=mff,dc=cuni,dc=cz DN primární součásti UK z eduPersonOrgUnitDN. Vybírá se podle priority vztahu osoby k UK.


Třída cuniPerson
cuniPersonalId 49237695 Univerzitní číslo osoby.
cuniBirthDate 20070827000000Z Datum narození ve formátu RRRRMMDD000000Z, kde DD.MM.RRRR je datum narození (formát LDAP UTC generalizedTime).
cuniBirthCode 1dd9509cb31473c735f5a4dc6880cc14d7bfa56a SHA1 hash rodného čísla (rodného kódu) bez lomítka zapsaný v hexadecimálním kódování.
cuniGender M Hodnota M nebo F dle pohlaví osoby.
cuniIdCardNumber * THKKNBV@mff.cuni.cz Čárový kód platného identifikačního průkazu UK. Doménová část označuje součást UK, pro kterou byl průkaz vydán (u studentských průkazů UK, u zaměstnaneckých průkazů součást UK, kde má osoba pracovněprávní vztah, u personalizovaných průkazů externích uživatelů služeb součást UK, která předala osobní data pro vydání průkazu a u nepersonalizovaných průkazů součást UK, která je objednala).
cuniIdCardChipNumber * 5688CE95@mff.cuni.cz Číslo čipu platného identifikačního průkazu, doménová část má význam shodný s cuniIdCardNumber.
cuniStudyProgram * N7201:Informační­ studia a knihovnictví@ff.cuni.cz Studijní program ve tvaru KÓD_PROGRAMU:Název@doména, kde doména identifikuje součást UK, kde osoba program studuje.
cuniStudySubject * 7201T001:Informační­ studia a knihovnictví­@ff.cuni.cz Studijní obor ve tvaru KÓD_OBORU:Název@doména, kde doména identifikuje součást UK, kde osoba obor studuje.
cuniScopedAffiliation * staff@org409.uvt.cuni.cz Vztah k UK na úrovni součástí fakult (kateder). Zde je k dispozici číselník kateder.
cuniAuthService ad-jinonice Označuje službu, na kterou je delegována autentizace dané osoby. Delegovaná autentizace se provádí pomocí PAM modulu, cuniAuthService obsahuje jméno konfiguračního souboru pro PAM.
cuniAuthPrincipal novapk@JINONICE.CUNI.CZ Přihlašovací jméno uživatele, které má být použito pro delegovanou autentizaci, tj. login uživatele na cílovém serveru.

Organizační složky UK

Následující tabulka obsahuje seznam organizačních složek UK, jejich DN pro použití v atributu eduPersonOrgUnitDN a jejich domén pro použití v atributech, které obsahují doménovou část:

Součást UK DN Doména
Univerzita Karlova ou=Charles Univerisy,dc=cuni,dc=cz cuni.cz
1. lékařská fakulta dc=lf1,dc=cuni,dc=cz lf1.cuni.cz
2. lékařská fakulta dc=lf2,dc=cuni,dc=cz lf2.cuni.cz
3. lékařská fakulta dc=lf3,dc=cuni,dc=cz lf3.cuni.cz
Evangelická teologická fakulta dc=etf,dc=cuni,dc=cz etf.cuni.cz
Fakulta humanitních studií dc=fhs,dc=cuni,dc=cz fhs.cuni.cz
Fakulta sociálních věd dc=fsv,dc=cuni,dc=cz fsv.cuni.cz
Fakulta tělesné výchovy a sportu dc=ftvs,dc=cuni,dc=cz ftvs.cuni.cz
Farmaceutická fakulta v Hradci Králové dc=faf,dc=cuni,dc=cz faf.cuni.cz
Filozofická fakulta dc=ff,dc=cuni,dc=cz ff.cuni.cz
Husitská teologická fakulta dc=htf,dc=cuni,dc=cz htf.cuni.cz
Katolická teologická fakulta dc=ktf,dc=cuni,dc=cz ktf.cuni.cz
Lékařská fakulta v Hradci Králové dc=lfhk,dc=cuni,dc=cz lfhk.cuni.cz
Lékařská fakulta v Plzni dc=lfp,dc=cuni,dc=cz lfp.cuni.cz
Matematicko-fyzikální fakulta dc=mff,dc=cuni,dc=cz mff.cuni.cz
Pedagogická fakulta dc=pedf,dc=cuni,dc=cz pedf.cuni.cz
Právnická fakulta dc=prf,dc=cuni,dc=cz prf.cuni.cz
Přírodovědecká fakulta dc=natur,dc=cuni,dc=cz natur.cuni.cz
Ústav dějin UK a Archiv UK dc=uda,dc=cuni,dc=cz uda.cuni.cz
Centrum pro teoretická studia dc=cts,dc=cuni,dc=cz cts.cuni.cz
Centrum pro ekonomický výzkum a doktorské studium dc=cerge,dc=cuni,dc=cz cerge.cuni.cz
Ústav výpočetní techniky dc=uvt,dc=cuni,dc=cz uvt.cuni.cz
Evropské informační středisko dc=eis,dc=cuni,dc=cz eis.cuni.cz
Ústav jazykové a odborné přípravy dc=ujop,dc=cuni,dc=cz ujop.cuni.cz
Ústřední knihovna dc=ukn,dc=cuni,dc=cz ukn.cuni.cz
Centrum pro otázky životního prostředí dc=czp,dc=cuni,dc=cz czp.cuni.cz
Agentura Rady vysokých škol dc=arvs,dc=cuni,dc=cz arvs.cuni.cz
Koleje a menzy dc=kam,dc=cuni,dc=cz kam.cuni.cz
Arcibiskupský seminář dc=arcs,dc=cuni,dc=cz arcs.cuni.cz
Nakladatelství Karolinum dc=cupress,dc=cuni,dc=cz cupress.cuni.cz
Správa budov a zařízení dc=sbz,dc=cuni,dc=cz sbz.cuni.cz
Sportovní centrum dc=sc,dc=cuni,dc=cz sc.cuni.cz
Rektorát dc=ruk,dc=cuni,dc=cz ruk.cuni.cz

Vztahy k UK

Vztah dané osoby k UK je popsán množinou hodnot { staff, student, interrupted-student, member, affiliate, alumn, guest } atributů eduPersonAffiliation, eduPersonScopedAffiliation a eduPersonPrimaryAffiliation. Skupiny osob, kterým náleží příslušné hodnoty, jsou definovány v následující tabulce:

Hodnota Skupina osob
staff Zaměstnanci - osoby s pracovní smlouvou, dohodou o provedení práce nebo dohodou o provedení činnosti.
student Studenti všech forem studia včetně studentů programu Erasmus.
interrupted-student Studenti s přerušeným studiem.
applicant Uchazeči přijatí ke studiu, ale ještě nikoliv studenti, tj. před zápisem.
member Účastníci kurzů CŽV, externí uživatelé služeb nárokovaní fakultami, studenti CERGE.
affiliate Stážisté.
guest Držitelé nepersonalizovaných průkazů.
alumn Absolventi - studenti, kteří úspěšně dokončili studium.

Kromě těchto vztahů má každá osoba vyznačenou příslušnost k organizační složce UK v atributu eduPersonOrgUnitDN; tato příslušnost může existovat, i když není nastaven vztah k UK, a určuje, jaké organizační složky UK pořídily nebo mají právo měnit údaje o této osobě v IS UK.

Aktualizace dat

Z hlediska metody aktualizace údajů v CAS existují dvě skupiny zdrojů dat: IS UK a všechny ostatní zdroje. IS UK používá vlastní databázi údajů, která je exportována do databáze CAS, zatímco ostatní zdroje používají databázi CAS přímo.

IS UK

Aktualizace dat z IS UK probíhá následujícím způsobem:

Pravost zdroje dat je ověřena kontrolou klientského certifikátu SSL spojení, který musí patřit serveru IS UK určenému pro zasílání aktualizací.

Z IS UK do CAS jsou předávány tyto atributy:

  • cuniPersonalId
  • cuniBirthCode
  • cuniBirthDate
  • cn
  • sn
  • givenName
  • eduPersonPrimaryAffiliation
  • eduPersonAffiliation
  • eduPersonScopedAffiliation
  • eduPersonOrgDN
  • eduPersonPrimaryOrgUnitDN
  • eduPersonOrgUnitDN
  • cuniIdCardNumber
  • cuniIdCardChipNumber
  • cuniPrincipalName
  • cuniStudyProgram
  • cuniStudySubject
  • cuniPersonEntitlement
  • st
  • preferredLanguage
  • telephoneNumber

Změnové soubory obsahují pouze změny dat oproti současnému stavu, které jsou ihned provedeny v databázi CAS. Kompletní soubor pak obsahuje všechny údaje o všech záznamech, které jsou exportovány z IS UK do CAS, a používá se pro kontrolu stavu databáze CAS; případné rozdíly jsou odstraněny.

Formát změnového a kompletního souboru je popsán v příloze Rozhraní pro aktualizaci dat.

Ostatní zdroje dat

Všechny ostatní zdroje dat používají přímý přístup do databáze CAS prostřednictvím LDAP protokolu (viz Přístup k datům), změny jsou prováděny on-line.

Poskytované služby

CAS poskytuje služby prostřednictvím následujících serverů:

  • LDAP servery ldap1.cuni.cz a ldap2.cuni.cz (dostupné také pod generickým jménem ldap.cuni.cz) na TCP portech 389 a 636 (SSL):
    • přímý přístup k datům,
    • autentizace.
  • WWW servery ldap1.cuni.cz a ldap2.cuni.cz (dostupné také pod generickým jménem ldap.cuni.cz) na TCP portech 80 a 443 (SSL):

Veškerá komunikace se servery CAS musí být chráněna použitím SSL/TLS protokolu se zapnutým šifrováním a ověřením identity serveru. Servery CAS (WWW i LDAP) používají serverové certifikáty vydané certifikační autoritou SureServerEDU s globální kořenovou certifikační autoritou GlobalSign.

Všechny webové služby, se kterými CAS komunikuje, musí být jednoznačně identifikovány pomocí certifikátů vydaných CA CESNET nebo SureServerEDU a při komunikaci s nimi musí být zapnuté šifrování dat a ověření identity serveru.

Přístup k datům

CAS poskytuje přístup k uloženým datům pomocí LDAP protokolu v závislosti na přístupových oprávněních klienta, která jsou dána členstvím klienta ve skupinách. Skupiny a jejich přístupová oprávnění jsou uvedena v následující sekci. Přiřazení uživatele do skupin je dáno jeho administrativní rolí v rámci CAS, seznam rolí a přiřazení skupin je popsáno v sekci Administrativní role.

Přístupová oprávnění skupin uživatelů

Skupina Oprávnění ke čtení Oprávnění k zápisu
Systémové skupiny
Anonymní uživatelé cuniStudyProgram, cuniStudySubject, cuniModifiedTime, eduPersonScopedAffiliation, eduPersonPrimaryOrgUnitDN, cuniPersonalId, eduPersonEntitlement, uid, eduPersonPrincipalName, eduPersonNickName, cuniCertSubjectDN, eduPersonOrgDN, eduPersonPrimaryAffiliation, eduPersonOrgUnitDN, eduPersonAffiliation, sn, givenName, mail, cn
Autentizovaní uživatelé
Vlastník záznamu (self) passwordExpirationTime, cuniBirthDate, cuniAuthPrincipal, cuniAuthService, cuniIdCardNumber, cuniIdCardChipNumber mail, userPassword, cuniCertSubjectDN, userCertificate
Globální skupiny
Členové globálních skupin mají oprávnění přistupovat ke všem záznamům v CAS.
Directory administrators členové skupiny mají neomezená práva
Password administrators uid, userPassword, cuniAuthService, cuniAuthPrincipal, mail, pwdPolicySubentry, passwordRetryCount, retryCountResetTime, accountUnlockTime, passwordExpirationTime, passwordGraceUserTime
Account administrators uid, userPassword, cuniAuthService, cuniAuthPrincipal, mail, pwdPolicySubentry, passwordRetryCount, retryCountResetTime, accountUnlockTime, passwordExpirationTime, passwordGraceUserTime passwordretrycount, retrycountresettime, accountunlocktime, passwordexpirationtime, mail, passwordgraceusertime
IS data administrators eduPersonScopedAffiliation, eduPersonPrimaryOrgUnitDN, cuniPersonalId, eduPersonEntitlement, eduPersonPrincipalName, cuniPrincipalName, cuniBirthCode, cuniBirthDate, cuniIdCardChipNumber, cuniStudyProgram, cuniStudySubject, givenName, cuniIdCardNumber, eduPersonOrgDN, eduPersonPrimaryAffiliation, eduPersonOrgUnitDN, eduPersonAffiliation, sn, cn, cuniModifiedTime
Password readers uid, userPassword, cuniAuthService, cuniAuthPrincipal, mail, pwdPolicySubentry, passwordRetryCount, retryCountResetTime, accountUnlockTime, passwordExpirationTime, passwordGraceUserTime
Personal data readers cuniBirthDate, cuniBirthCode, cuniIdCardChipNumber, cuniIdCardNumber, cuniPrincipalName
Password importers cn, sn, cunipersonalid, objectclass, cuniAuthService, cuniAuthPrincipal, pwdpolicysubentry, userPassword, passwordexpirationtime
ID card data readers cuniPersonalId, cuniIdCardChipNumber, cuniIdCardNumber, cuniPrincipalName
Lokální skupiny
Tyto lokální skupiny existují pro každou součást UK, členové lokálních skupin mají oprávnění přistupovat pouze k záznamům příslušným k této součásti (řídí se hodnotou atributu eduPersonOrgUnitDN).
Password administrators uid, userPassword, cuniAuthService, cuniAuthPrincipal, mail, pwdPolicySubentry, passwordRetryCount, retryCountResetTime, accountUnlockTime, passwordExpirationTime, passwordGraceUserTime
Personal data readers cuniBirthDate, cuniBirthCode, cuniIdCardChipNumber, cuniIdCardNumber, cuniPrincipalName
Guest administrators (oprávnění se vztahuje pouze na držitele nepersonalizovaných průkazů) givenname, eduPersonScopedAffiliation, cuniBirthDate, mail, passwordExpirationTime, cuniAuthService, uid, cuniBirthCode, eduPersonPrimaryAffiliation,, cuniAuthPrincipal, eduPersonAffiliation, sn, passwordRetryCount, retrycountresettime, accountunlocktime, pwdpolicysubentry, cn, userPassword
Account administrators uid, userPassword, cuniAuthService, cuniAuthPrincipal, mail, pwdPolicySubentry, passwordRetryCount, retryCountResetTime, accountUnlockTime, passwordExpirationTime, passwordGraceUserTime passwordretrycount, retrycountresettime, accountunlocktime, passwordexpirationtime, mail, passwordgraceusertime

Administrativní role

Administrativní role Členství ve skupinách
Uživatel
  • Anonymní uživatelé
  • Autentizovaní uživatelé
závisí na stavu autentizace
Pracovník uživatelské podpory
  • Account administrators
  • Personal data readers
Pracovník registračního pracoviště (kromě výdejních center)
  • Password administrators
  • Personal data readers
Správce nepersonalizovaných průkazů
  • Guest administrators
  • Personal data readers
Správce CAS
  • Directory administrators

</div>

Uživatelský portál

Uživatelský portál nabízí následující služby:

  • zjištění stavu účtu v CAS:
    • autentizační metody,
    • doby expirace hesla,
    • přihlašovacího jména,
  • nastavení hesla po zadání osobních údajů,
  • změnu ověřeného hesla,
  • nastavení emailové adresy,
  • nastavení hesla v lokálních doménách, kde má uživatel účet a které to dovolují.

Administrátorský portál

Administrátorský portál nabízí následující služby:

  • vyhledání záznamu osoby podle následujících kritérií (pokud je zadáno více kritérií, záznam musí splňovat všechna):
    • univerzitního čísla osoby,
    • jména a příjmení,
    • data narození,
    • přihlašovacího jména,
    • e-mailové adresy,
    • čísla identifikačního průkazu (čárového kódu),
    • rodného čísla (rodného kódu),
  • nastavení přihlašovacího jména,
  • nastavení e-mailové adresy,
  • odblokování účtu a prodloužení doby platnosti hesla,
  • vygenerování a nastavení počátečního ověřeného hesla.

Pro záznamy o nepersonalizovaných průkazech jsou dále k dispozici tyto služby:

  • zadání osobních údajů držitele průkazu,
  • smazání osobních údajů držitele průkazu.

Všechny uvedené služby vyžadují autentizaci ověřeným heslem, dostupnost služeb závisí na přístupových oprávněních přihlášeného uživatele.

Autentizace

Servery CAS podporují následující autentizační protokoly:

  1. Autentizace pomocí LDAPv3 protokolu s heslem dle RFC 2829, sekce 6.20 (operace "simple bind"). Komunikační protokol musí být šifrován pomocí SSL nebo TLS.
  2. Autentizace pomocí LDAPv3 protokolu s certifikátem dle RFC 2829, sekce 7.1 (mechanismus SASL/EXTERNAL). Komunikační protokol musí být šifrován pomocí SSL nebo TLS.

Postup klienta při autentizaci pomocí operace simple bind je následující:

  1. Naváže SSL spojení s LDAP serverem a ověří jeho certifikát.
  2. Vyhledá DN záznamu uživatele podle přihlašovacího jména v atributu uid.
  3. Provede operaci simple bind na nalezené DN s heslem zadaným uživatelem.
  4. (volitelně) Přečte atribut cuniAuthService, aby zjistil použitou autentizační metodu účtu uživatele.

Postup klienta při autentizaci pomocí osobního certifikátu uživatele je následující:

  1. Naváže SSL spojení s LDAP serverem, ověří jeho certifikát a předloží (jako součást SSL protokolu) osobní certifikát uživatele.
  2. Provede operaci bind pomocí mechanismu SASL/EXTERNAL.

Notifikace o změnách dat

CAS podporuje zasílání změnových souborů při změnách dat ve své databázi. Změnové soubory obsahují pro každý aktualizovaný osobní záznam:

  • současný stav daného záznamu,
  • provedené změny.

Změnové soubory jsou zasílány prostřednictvím SOAP operace definované v příloze Notifikace o změnách údajů o osobách těm lokálním doménám, kde uživatel má založený účet a doménám uvedeným v atributu eduPersonOrgUnitDN.

Přidělování přihlašovacích jmen

CAS umožňuje automatické přidělování přihlašovacích jmen studentům a zaměstnancům podle následujícího algoritmu:

  1. Po přijetí uchazeče ke studiu nebo zaměstnance do pracovního poměru CAS vygeneruje přihlašovací jméno o délce maximálně 8 znaků ve tvaru
P[PPPPPP]J[AAA]  

kde P[PPPPP] je příjmení v ASCII, neprodlužované, J je jméno a A je rozlišovací identifikátor (pokud není rozlišování potřeba, vypustí se). Jako rozlišovací identifikátor se použijí další znaky ze jména až do dosažení maximální délky, pokud ani pak není přihlašovací jméno jedinečné, budou poslední znaky postupně nahrazovány číslicemi. Nově vzniklý uživatel Jiří Novák tedy bude mít přihlašovací jméno novakj (případně novakji, novakjir, novakji1 ... novakji9, novakj10 ... atd.)

  1. Číslo osoby a přihlašovací jméno se spolu s (kryptograficky zajištěným) rezervačním lístkem zašle pomocí webové služby systému organizační složky UK, na které záznam osoby vznikl (podle hodnoty atributu eduPersonOrgUnitDN. Systém složky UK:
    • akceptuje vygenerované přihlašovací jméno (bud explicitním voláním webového služby CAS nebo nečinností v daném časovém limitu); NEBO
    • vygeneruje vlastní verzi přihlašovacího jména a požádá o ověření jeho unikátnosti; CAS ověří jedinečnost přihlašovacího jména a pokud uspěje, nastaví toto přihlašovací jméno; NEBO
    • oznámí, že daný uživatel už přihlašovací jméno má; CAS se toto jméno pokusí nastavit centrálně (případně se pokusí zajistit jedinečnost připojením doménového jména součásti).

O automatické přidělení přihlašovacího jména může také požádat organizační složka UK explicitně voláním webové služby CAS.

Cílem uvedeného algoritmu je:

  • umožnit automatické přidělování přihlašovacích jmen,
  • maximálně zachovat autonomii rozhodování lokálních domén o tvaru přihlašovacího jména,
  • sjednotit tvar přihlašovacích jmen studentů a zaměstnanců a umožnit tak migraci uživatelů.

Rozhraní webových služeb implementující popsaný algoritmus jsou definována v příloze Přidělení přihlašovacího jména.

Účty v lokálních doménách

CAS eviduje u záznamů osob příslušné účty v lokálních doménách. Při zřízení účtu lokální doména předá CAS univerzitní číslo osoby, pro kterou byl účet zřízen, přihlašovací jméno účtu v lokální doméně a požadovaný stav účtu vůči CAS (tj. zda a jakým způsobem má být u účtu v lokální doméně nastavováno heslo). Při zrušení účtu lokální doména předá CAS univerzitní číslo osoby, které byl účet zrušen.

Pro účty v lokální doméně, které jsou podřízené CAS (buď přímo, kdy se automaticky se změnou hesla v CAS totéž heslo nastaví i v lokální doméně, nebo nepřímo, kdy heslo v lokální doméně nastavuje uživatel prostřednictvím portálu), CAS umožňuje tyto metody nastavení hesla:

  • přímé nastavení hesla v lokální doméně prostřednictvím LDAP protokolu - pro servery CAS musí být v lokální doméně vytvořen účet s příslušným oprávněním,
  • předání zašifrovaného hesla webové službě lokální domény.

Rozhraní webových služeb pro administraci účtů v lokálních doménách jsou definována v příloze Administrace lokálních účtů.

Autentizace uživatelů

Tato sekce popisuje podporované metody autentizace uživatelských účtů v CAS. O výběru konkrétní autentizační metody účtu rozhodují správci CAS podle zásad daných Politikou CAS.

Delegovaná autentizace

CAS umožňuje delegovat autentizaci na servery lokálních domén prostřednictvím následujících autentizačních protokolů:

  • Autentizace pomocí LDAPv3 protokolu s heslem dle RFC 2829, sekce 6.20 (operace "simple bind"). Komunikační protokol musí být šifrován pomocí SSL nebo TLS.
  • Kerberos 5.

Pro nastavení autentizace pomocí LDAPv3 musí lokální doména zpřístupnit atribut, ve kterém je uloženo přihlašovací jméno.

Pro nastavení autentizace pomocí protokolu Kerberos 5 je třeba v lokální doméně zřídit pro servery CAS účet, pro který mohou být vydávány Kerberos lístky, a jehož klíč bude uložen na serveru CAS.

Ověřená hesla

Ověřená hesla podléhají jedné z politik popsaných v následujících sekcích. Počáteční politika se používá výhradně pro počáteční ověřená hesla, která jsou generována registračními pracovišti; základní a rozšířená politika se používají pro hesla volená uživateli (volba konkrétní politiky závisí na požadavcích lokálních domén, kde má uživatel zřízen účet).

Počáteční politika

Počáteční politika má následující požadavky na vlastnosti hesla:

  • doba platnosti 10 dní.

Základní politika

Základní politika hesel má následující požadavky na vlastnosti hesla:

  • doba platnosti je 365 dní,
  • minimální délka 6 znaků,
  • heslo musí obsahovat alespoň jedno velké písmeno,
  • heslo musí obsahovat znaky alespoň tří z následujících kategorií: malá písmena, velká písmena, speciální znaky (nepísmenné znaky s ASCII kódem menším než 128), ostatní znaky (znaky s ASCII kódem větším než 128),
  • heslo nesmí obsahovat sekvenci delší než tři znaky, která se objevuje ve jméně nebo v e-mailové adrese.

Rozšířená politika

Rozšířená politika klade na heslo stejné požadavky jako základní politika, navíc vyžaduje:

  • dobu platnosti 120 dnů,
  • nově nastavené heslo nesmí být stejné jako heslo předchozí.

Osobní certifikát

CAS podporuje autentizaci uživatelů osobními certifikáty vydanými CA CESNET. Tato autentizační metoda vyžaduje, aby uživatel uložil ke svému účtu údaje o svém certifikátu. Toto je možné učinit po přihlášení ověřeným heslem na uživatelském portálu.

Lokální domény

Doména CUNI.CZ pro eduroam

Eduroam realm CUNI.CZ slouží pro autentizaci uživatelů UK v síti eduroam.

Účet v doméně mohou získat osoby, které mají k UK vztah typu student, staff nebo member.

Účty v doméně jsou vzhledem k CAS nepřímo podřízené (heslo pro eduroam je možné nastavit po autentizaci pomocí CAS), povolená autentizační metoda v CAS je ověřené heslo nebo osobní certifikát.

Odpovědné osoby za tuto doménu jsou:

  • Ladislav Fikais, ÚVT UK

Doména JINONICE

Doména JINONICE slouží pro autentizaci uživatelů UK v lokální síti areálu Jinonice.

Účet v doméně získavají zaměstnanci FF, FHS a 1.LF automaticky, ostatní zaměstnanci na vlastní žádost. Pro studenty FF, FSV, FHS, PedF a 1.LF se uživatelské účty zakládají automaticky na základě dat o studiu a průkazech v informačním systému UK, studenti ostatních fakult mohou o účet požádat správce domény.

Účty v doméně jsou vzhledem k CAS nepřímo podřízené, povolená autentizační metoda účtu v CAS pro nastavení hesla v doméně je ověřené heslo nebo osobní certifikát.

Odpovědné osoby za tuto doménu jsou:

  • Aleš Houdek, ÚVT UK
  • Ladislav Fikais, ÚVT UK

Doména faf.cuni.cz

Doména faf.cuni.cz slouží studentům a zaměstnancům FaF UK.

Účet v doméně získávají studenti a zaměstnanci FaF UK automaticky.

Účty v doméně jsou vzhledem k CAS přímo podřízené a vyžadují v CAS ověřené heslo s alespoň základní politikou hesel.

Odpovědné osoby za tuto doménu jsou:

  • Ladislav Rudišar, FaF UK

Doména lf3.cuni.cz

Doména lf3.cuni.cz slouží studentům a zaměstnancům 3.LF UK.

Účty v doméně získávají studenti a zaměstnanci 3.LF UK automaticky.

Účty v doméně mohou být ve vztahu k CAS:

  • delegované
  • centralizované s ověřeným heslem a alespoň základní politikou hesel.

Přechod je možný pouze od delegovaného účtu k centralizovanému.

Odpovědné osoby za tuto doménu jsou:

  • Tomáš Kostrhun, 3.LF UK

Doména lfp.cuni.cz

Doména lfp.cuni.cz slouží studentům a zaměstnancům LFP UK.

Účty v doméně získávají studenti a zaměstnanci LFP automaticky.

Autentizace účtů studentů LFP v CAS je delegována na doménu, účty zaměstnanců jsou autonomní.

Odpovědné osoby za tuto doménu jsou:

  • Vlastimil Vavřina, LFP UK

Pravidla pro uživatele

Tato sekce shrnuje pravidla pro uživatele - fyzické osoby, které mají zřízen účet v CAS. Uživatelem CAS se může stát každá osoba, která má nárok na vydání identifikačního průkazu UK a která je evidována v IS UK, konkrétně:

  • zaměstnanci UK,
  • studenti UK (všech forem studia),
  • přijatí uchazeči o studium,
  • externí uživatelé služeb.

Zřízení účtu

Zřízením účtu se rozumí vyplnění autentizačních informací u záznamu osoby v CAS. Účet v CAS lze zřídit jedním z následujících způsobů:

  • nastavením počátečního ověřeného hesla na registračním pracovišti,
  • nastavením hesla přes webový formulář,
  • zřízením účtu v lokální doméně, na který je delegována autentizace z CAS.

Získání ověřeného hesla

Pro získání ověřeného hesla je třeba osobně navštívit registrační pracoviště CAS (jejich seznam je uveden v kapitole Seznam registračních pracovišť) a předložit doklad totožnosti s fotografií dle požadavků pracovníků registračního pracoviště. Na registračním pracovišti uživatel obdrží počáteční ověřené heslo, které je platné po dobu 10 dnů od data vydání; tímto heslem je nahrazeno stávající heslo účtu v CAS a autentizační metoda je nastavena na použití ověřeného hesla.

Počáteční ověřené heslo je nutné změnit před jeho expirací na uživatelském portálu CAS (viz Změna ověřeného hesla).

Získání hesla přes WWW formulář

Heslo pro účet v CAS lze nastavit pomocí webového formuláře, který je dostupný na uživatelském portálu CAS. Postup při získání hesla s použitím tohoto formuláře je následující:

  1. Uživatel vyplní do formuláře následující údaje:
    • jméno a příjmení,
    • univerzitní číslo osoby,
    • datum narození,
    • koncovku rodného čísla - zde je nutné vyplnit číslo za lomítkem, případně celé rodné číslo; cizinci zde vyplňují rodný kód,
    • číslo identifikačního průkazu, pokud byl uživateli vydán,
    • kontaktní emailovou adresu,
    • požadované heslo.
  2. Aplikace CAS nalezne podle zadaných údajů záznam osoby, zkontroluje, zda odpovídá rodné číslo, a odešle na zadanou emailovou adresu e-mail s žádostí o potvrzení hesla.
  3. Uživatel do dvou hodin od vyplnění prvního formuláře musí potvrdit nastavení hesla tím, že nové heslo znovu vyplní na stránce, jejíž adresa (URL) je uvedena v obdrženém e-mailu.

Pokud uživatel nemá v IS UK (a následně v CAS) evidováno rodné číslo (nebo rodný kód), nemůže přes WWW formulář heslo v CAS získat.

Získání účtu v lokální doméně

Je-li uživateli zřízen účet v lokální doméně, která pro něj vyžaduje delegovanou autentizaci z CAS, uživatel získává automaticky účet také v CAS (se stejným heslem jako v lokální doméně).

Změna hesla

Změna ověřeného hesla v CAS je možná pomocí uživatelského portálu: uživatel se přihlásí na uživatelský portál, zadá svoje původní heslo a heslo nové; aplikace zkontroluje, zda nové heslo vyhovuje požadavkům na složitost a nastaví jej pro účet v CAS.

Zároveň se změnou ověřeného hesla v CAS je nové heslo také nastaveno v lokálních doménách, kde má uživatel zřízen účet přímo podřízený CAS; jejich seznam se uživateli zobrazí po úspěšné změně hesla.

Změna hesla v lokální doméně

Uživatel si může změnit heslo v těch lokálních doménách, kde má zřízen účet nepřímo podřízený CAS. Seznam těchto domén se uživateli zobrazí po přihlášení na uživatelském portálu, kde lze také nastavit nové heslo.

Zjištění stavu účtu

Prostřednictvím uživatelského portálu lze po zadání osobního čísla zjistit následující informace:

  • autentizační metodu použitou pro daný účet,
  • platná přihlašovací jména účtu.

Po přihlášení lze dále zjistit:

  • dobu expirace nastaveného hesla, pokud účet nepoužívá delegovanou autentizaci,
  • seznam podporovaných lokálních domén, kde má uživatel zřízený účet (včetně vztahu účtu k CAS).

Expirace hesla

Hesla v CAS mají nastavenou expiraci podle bezpečnostní politiky platné pro daný účet. Na expiraci hesla je uživatel upozorněn e-mailovými zprávami 28, 21, 14 a 7 dní předem, pokud je u účtu nastavena kontaktní e-mailová adresa. Před expirací hesla je nutné toto heslo změnit na uživatelském portálu.

Registrační pracoviště

Registrační pracoviště vydávají počáteční ověřená hesla uživatelům po ověření jejich totožnosti podle identifikačního průkazu UK, případně jiného průkazu totožnosti. Tato hesla jsou vydávána automaticky spolu s vydáním průkazu UK, případně na vyžádání uživatele, který již průkaz obdržel.

Seznam registračních pracovišť je uveden dále a je dostupný také na uživatelském portálu CAS.

Vydání počátečního ověřeného hesla

Postup pracovníka registračního pracoviště při vydání počátečního ověřeného hesla je následující:

  1. Požádá uživatele o předložení průkazu totožnosti s fotografií; tento průkaz musí obsahovat informace, které pracovníku registračního pracoviště umožní jednoznačně vyhledat záznam uživatele v CAS.
  2. Ověří totožnost uživatele podle fotografie na předloženém průkazu a podle fotografie v IS UK (je-li dostupná); pokud má pochybnosti o totožnosti uživatele, požádá o předložení dalšího průkazu totožnosti s fotografií a znovu vyhledá záznam uživatele.
  3. Pokud je totožnost uživatele úspěšně ověřena, vygeneruje počáteční ověřené heslo a předá jej uživateli v písemné podobě.

Seznam registračních pracovišť

Zde je uveden seznam registračních pracovišť včetně vymezení okruhu uživatelů, kterým tato pracoviště slouží:

Pracoviště Okruh uživatelů
Výdejní centra průkazů:
  • IPC
  • Právnická fakulta
  • MFF
  • Hradec Králové - kolej Na Kotli
Všichni uživatelé CAS.

Zřízení a zánik registračního pracoviště

Nové registrační pracoviště mohou zřídit správci CAS na žádost organizační složky UK, která nové pracoviště bude provozovat. Tato žádost musí obsahovat:

  • seznam pracovníků registračního pracoviště,
  • vymezení okruhu uživatelů, kterým bude registrační pracoviště sloužit,
  • pověření příslušných pracovníků k provozování registračního pracoviště.

Při zřízení nového registračního pracoviště správci CAS

  • ověří, zda pracovníci registračního pracoviště jsou v zaměstnaneckém poměru k dané organizační složce UK,
  • přidělí příslušná oprávnění pro přístup k datům CAS pracovníkům registračního pracoviště,
  • zveřejní aktualizovaný seznam registračních pracovišť (včetně aktualizovaných Pravidel použití).

Organizační složka UK provozující registrační pracoviště musí neprodleně oznámit správcům CAS změny údajů uvedené v žádosti o zřízení pracoviště, zejména změny v zaměstnaneckém poměru jeho pracovníků.

Registrační pracoviště zaniká na žádost organizační složky UK.

Podpora

CAS poskytuje následující podporu:

  • webové stránky s informacemi o CAS na [1],
  • technické informace o CAS na stránce [2],
  • uživatelskou podporu,
  • technickou podporu.

Uživatelská podpora

Podpora uživatelům CAS je poskytována prostřednictvím aplikace IS UK pro sledování požadavků uživatelů na adrese [3]. Na uživatelskou podporu se může obrátit každý uživatel CAS s dotazem či problémem týkajícím se CAS.

Pracovníci uživatelské podpory mají právo:

  • číst osobní údaje uživatelů,
  • zjistit stav účtu a použitou autentizační metodu,
  • odblokovat účet a prodloužit dobu expirace hesla,
  • vyžádat si asistenci správců CAS.

Standardní doba reakce na dotaz uživatele je do 6 hodin v pracovní době; doba reakce se může prodloužit v případě velkého počtu dotazů, neměla by však překročit 2 dny.

O stavu řešení svého požadavku je uživatel informován e-mailem a prostřednictvím aplikace IS UK na stránce [4].

Technická podpora

Technická podpora je poskytována pracovníkům uživatelské podpory, registračních pracovišť, správcům lokálních domén a zástupcům IT fakult prostřednictvím e-mailové adresy casadmin@cuni.cz. Tato adresa slouží jako alias pro správce CAS.

Správa nepersonalizovaných průkazů

Účelem evidence nepersonalizovaných průkazů v CAS je umožnit držitelům těchto průkazů využívat služeb CAS stejně jako ostatní uživatelé. Držitelé nepersonalizovaných průkazů nejsou evidováni v IS UK, proto nemohou být jejich osobní data z IS UK získána. Místo reálných osobních dat jsou z IS UK předávány pouze informace o vydaných nepersonalizovaných průkazech (univerzitní číslo osoby, čárový kód a číslo čipu) včetně informace o tom, pro kterou součást UK byl průkaz vydán (doménová část cuniIdCardNumber).

Tato pravidla popisují postupy uplatňované při evidenci nepersonalizovaných průkazů v CAS v souladu s Politikou CAS.

Správci nepersonalizovaných průkazů plní tyto úlohy:

  • Poskytují aktuální povinné osobní informace o držitelích nepersonalizovaných průkazů.
  • Vydávají držitelům těchto průkazů ověřená hesla (plní funkci registrační autority).

Pro evidenci nepersonalizovaných průkazů slouží aplikace dostupná na adrese https://ldap.cuni.cz/mgr.

Zapůjčení průkazu

Postup správce při zapůjčení nepersonalizovaného průkazu je následující:

  1. Podle univerzitního čísla osoby vytištěného na průkazu vyhledá v databázi CAS údaje o příslušném průkazu.
  2. Vyplní požadované osobní údaje do aplikace pro správu průkazů:
    • Jméno, příjmení, datum narození.
    • Rodné číslo (rodný kód), číslo občanského průkazu (pasu) nebo číslo jiného dokladu s fotografií držitele. Bez poskytnutí alespoň jednoho z těchto údajů nelze držitele průkazu v CAS evidovat.
  3. Vygeneruje držiteli průkazu počáteční ověřené heslo a předá mu jej v písemné podobě (například vytištěním screenshotu aplikace po vygenerování hesla).

Reset hesla

Postup správce při resetu hesla je následující:

  1. Požádá držitele průkazu o stejné údaje, které byly poskytnuty při zapůjčení průkazu, včetně dokladu s fotografií, jehož číslo je evidováno v CAS.
  2. Ověří totožnost držitele podle předložené fotografie.
  3. Vyhledá podle všech poskytnutých údajů záznam o držiteli průkazu v CAS; zadaná kritéria pro vyhledávání musí obsahovat evidované číslo dokladu s fotografií.
  4. Vygeneruje držiteli průkazu počáteční ověřené heslo a předá mu jej v písemné podobě (například vytištěním screenshotu aplikace po vygenerování hesla).

Vrácení průkazu

Postup správce při vrácení nepersonalizovaného průkazu držitelem je následující:

  1. Podle univerzitního čísla osoby vytištěného na průkazu vyhledá údaje o průkazu.
  2. Vymaže z CAS údaje o držiteli průkazu.

Správce musí vymazat z CAS informace o držiteli průkazu ihned po jeho vrácení.

Seznam správců nepersonalizovaných průkazů

V následující tabulce jsou uvedeni správci nepersonalizovaných průkazů na jednotlivých součástech UK:

Součást UK Správce
FF
    MFF
    • Tomáš Drbohlav, správa počítačové sítě Karlov
    3.LF
    • Martina Hábová, SVI 3.LF
    • Ivana Šturmová, SVI 3.LF
    • Ivana Konfrštová, SVI 3.LF
    CERGE
    • Tereza Klozová
    • Marie Kavanová
    • Tomáš Pavela
    • Jana Koudelková
    1.LF
    • Jitka Stejskalová, ÚVI 1.LF

    Pravidla bezpečnostní politiky (společně s L.Fikaisem, V.Horákem, H.Krajícem)

    Oprávněné osoby

    Přístupové metody a oprávnění

    Zajištění dostupnosti služeb

    Zálohování dat

    Bezpečnostní audit

    Uchovávání logů

    Detekce incidentů

    Řešení incidentů

    Přechod ze stávajících systémů na CAS

    Převzetí uživatelských jmen

    Přílohy

    Rozhraní pro aktualizaci dat

    Aktualizace dat z IS UK (kompletní i změnové soubory) jsou předávány v LDIF formátu definovaném v  RFC2849 bez externích odkazů. U kompletních souborů je jediná povolená změnová operace add, u změnových souborů jsou povolené operace add, modify.

    Soubory jsou předávány pomocí HTTP operace POST na definované URL.

    Definice rozhraní webových služeb

    Definice datových typů pro CAS

    Schéma datových typů CAS, které využívají rozhraní webových služeb, je zde:

    <?xml version="1.0" encoding="UTF-8"?>
    <xsd:schema
      targetNamespace="http://ldap.cuni.cz/cas"
      xmlns="http://www.w3.org/2001/XMLSchema"
      xmlns:cas="http://ldap.cuni.cz/cas"
      xmlns:xsd="http://www.w3.org/2001/XMLSchema"
      elementFormDefault="qualified"
      attributeFormDefault="unqualified"
      version="0.1">
    
    <!--
      - Empty types.
      -->
    <complexType name="emptyType">
    </complexType>
    
    <simpleType name="emptyStringType">
      <restriction base="string">
         <maxLength value="0"/>
      </restriction>
    </simpleType>
    
    
    <!--
      - Simple types for element and attribute values.
      -->
    <simpleType name="ldapTimeType">
      <restriction base="string">
         <pattern value="\d{14}Z"/>
      </restriction>
    </simpleType>
    
    <simpleType name="uidType">
      <restriction base="string">
         <minLength value="2"/>
      </restriction>
    </simpleType>
    
    <simpleType name="affiliationType">
      <restriction base="string">
         <enumeration value="student"/>
         <enumeration value="staff"/>
         <enumeration value="employee"/>
         <enumeration value="member"/>
         <enumeration value="affiliate"/>
         <enumeration value="alumn"/>
      </restriction>
    </simpleType>
    
    <simpleType name="personalidType">
      <restriction base="integer">
         <pattern value="\d{8}"/>
      </restriction>
    </simpleType>
    
    <simpleType name="scopeType">
      <restriction base="xsd:string">
         <enumeration value="cuni.cz"/>
         <enumeration value="lf1.cuni.cz"/>
         <enumeration value="lf2.cuni.cz"/>
         <enumeration value="lf3.cuni.cz"/>
         <enumeration value="etf.cuni.cz"/>
         <enumeration value="fhs.cuni.cz"/>
         <enumeration value="fsv.cuni.cz"/>
         <enumeration value="ftvs.cuni.cz"/>
         <enumeration value="faf.cuni.cz"/>
         <enumeration value="ff.cuni.cz"/>
         <enumeration value="htf.cuni.cz"/>
         <enumeration value="ktf.cuni.cz"/>
         <enumeration value="lfhk.cuni.cz"/>
         <enumeration value="lfp.cuni.cz"/>
         <enumeration value="mff.cuni.cz"/>
         <enumeration value="pedf.cuni.cz"/>
         <enumeration value="prf.cuni.cz"/>
         <enumeration value="natur.cuni.cz"/>
         <enumeration value="uda.cuni.cz"/>
         <enumeration value="cts.cuni.cz"/>
         <enumeration value="cerge.cuni.cz"/>
         <enumeration value="uvt.cuni.cz"/>
         <enumeration value="eis.cuni.cz"/>
         <enumeration value="ujop.cuni.cz"/>
         <enumeration value="ukn.cuni.cz"/>
         <enumeration value="czp.cuni.cz"/>
         <enumeration value="arvs.cuni.cz"/>
         <enumeration value="kam.cuni.cz"/>
         <enumeration value="arcs.cuni.cz"/>
         <enumeration value="cupress.cuni.cz"/>
         <enumeration value="sbz.cuni.cz"/>
         <enumeration value="sc.cuni.cz"/>
         <enumeration value="ruk.cuni.cz"/>
      </restriction>
    </simpleType>
    
    
    <!--
      - Complex types for elements with internal structure.
      -->
    <complexType name="studyProgramType">
      <sequence>
      </sequence>
    </complexType>
    
    <complexType name="studySubjectType">
      <sequence>
      </sequence>
    </complexType>
    
    
    <!--
      - Type variants with added 'scope' attribute.
      -->
    <complexType name="scopedType">
      <complexContent>
        <extension base="anyType">
            <attribute name="scope" type="cas:scopeType" use="required"/>
        </extension>
      </complexContent>
    </complexType>
    
    <complexType name="scopedStringType">
      <simpleContent>
        <extension base="string">
            <attribute name="scope" type="cas:scopeType" use="required"/>
        </extension>
      </simpleContent>
    </complexType>
    
    <complexType name="scopedAffiliationType">
      <simpleContent>
        <extension base="cas:affiliationType">
            <attribute name="scope" type="cas:scopeType" use="required"/>
        </extension>
      </simpleContent>
    </complexType>
    
    <complexType name="scopedUidType">
      <simpleContent>
        <extension base="cas:uidType">
            <attribute name="scope" type="cas:scopeType" use="required"/>
        </extension>
      </simpleContent>
    </complexType>
    
    <complexType name="scopedStudyProgramType">
      <complexContent>
        <extension base="cas:studyProgramType">
            <attribute name="scope" type="cas:scopeType" use="required"/>
        </extension>
      </complexContent>
    </complexType>
    
    <complexType name="scopedStudySubjectType">
      <complexContent>
        <extension base="cas:studySubjectType">
            <attribute name="scope" type="cas:scopeType" use="required"/>
        </extension>
      </complexContent>
    </complexType>
    
    
    <!--
      - Simple type variants for elements which can be empty.
      - (used to designate CAS attribute names for deletion)
      -->
    <simpleType name="nullableAffiliationType">
      <union memberTypes="cas:affiliationType cas:emptyStringType"/>
    </simpleType>
    
    <simpleType name="nullableUidType">
      <union memberTypes="cas:uidType cas:emptyStringType"/>
    </simpleType>
    
    
    <!--
      - Elements corresponding to CAS attributes.
      -->
    <element name="cunipersonalid"  type="cas:personalidType"/>
    <element name="cn" type="string"/>
    <element name="sn" type="string"/>
    <element name="givenname" type="string"/>
    <element name="uid" type="cas:uidType"/>
    <element name="edupersonprimaryaffiliation" type="cas:affiliationType"/>
    <element name="edupersonaffiliation" type="cas:affiliationType"/>
    <element name="edupersonscopedaffiliation" type="cas:scopedAffiliationType"/>
    <element name="edupersonorgdn" type="normalizedString"/>
    <element name="edupersonprimaryorgunitdn" type="normalizedString"/>
    <element name="edupersonorgunitdn" type="normalizedString"/>
    <element name="cuniidcardnumber" type="cas:scopedStringType"/>
    <element name="cuniidcardchipnumber" type="cas:scopedStringType"/>
    <element name="cuniprincipalname" type="cas:scopedUidType"/>
    <element name="cunistudyprogram" type="cas:scopedStudyProgramType"/>
    <element name="cunistudysubject" type="cas:scopedStudySubjectType"/>
    <element name="cunimodifiedtime" type="cas:ldapTimeType"/>
    
    
    <!--
      - Group of attributes which are optional according to CAS schema.
      -->
    <group name="optionalAttributes">
      <sequence>
        <element ref="cas:uid" minOccurs="0" maxOccurs="2"/>
        <element ref="cas:edupersonprimaryaffiliation" minOccurs="0" maxOccurs="1"/>    <element ref="cas:edupersonaffiliation" minOccurs="0" maxOccurs="unbounded"/>
        <element ref="cas:edupersonscopedaffiliation" minOccurs="0" maxOccurs="unbounded"/>
        <element ref="cas:edupersonorgdn" minOccurs="0" maxOccurs="1"/>
        <element ref="cas:edupersonprimaryorgunitdn" minOccurs="0" maxOccurs="1"/>
        <element ref="cas:edupersonorgunitdn" minOccurs="0" maxOccurs="unbounded"/>
        <element ref="cas:cuniidcardnumber" minOccurs="0" maxOccurs="unbounded"/>
        <element ref="cas:cuniidcardchipnumber" minOccurs="0" maxOccurs="unbounded"/>
        <element ref="cas:cuniprincipalname" minOccurs="0" maxOccurs="1"/>
        <element ref="cas:cunistudyprogram" minOccurs="0" maxOccurs="unbounded"/>
        <element ref="cas:cunistudysubject" minOccurs="0" maxOccurs="unbounded"/>
      </sequence>
    </group>
    
    
    <!--
      - Group of attributes that can be used in 'delete' operation.
      - (their value set is extended to contain empty value
      -  to accomodate for deletion of whole attribute)
      -->
    <group name="nullableAttributes">
      <sequence>
         <element name="uid" type="cas:nullableUidType" minOccurs="0" maxOccurs="2"/>
         <element name="edupersonprimaryaffiliation" type="cas:nullableAffiliationType" minOccurs="0" maxOccurs="1"/>
         <element name="edupersonaffiliation" type="cas:nullableAffiliationType" minOccurs="0" maxOccurs="unbounded"/>
         <element name="edupersonscopedaffiliation" minOccurs="0" maxOccurs="unbounded">
            <complexType>
               <simpleContent>
                  <extension base="cas:nullableAffiliationType">
                     <attribute name="scope" type="cas:scopeType" use="optional"/>
                  </extension>
               </simpleContent>
            </complexType>
         </element>
         <element name="edupersonorgdn" type="normalizedString" minOccurs="0" maxOccurs="1"/>
         <element name="edupersonprimaryorgunitdn" type="normalizedString" minOccurs="0" maxOccurs="1"/>
         <element name="edupersonorgunitdn" type="normalizedString" minOccurs="0" maxOccurs="unbounded"/>
         <element name="cuniidcardnumber">
            <complexType>
               <simpleContent>
                  <extension base="string">
                     <attribute name="scope" type="cas:scopeType" use="optional"/>
                  </extension>
               </simpleContent>
            </complexType>
         </element>
         <element name="cuniidcardchipnumber" minOccurs="0" maxOccurs="unbounded">
            <complexType>
               <simpleContent>
                  <extension base="string">
                     <attribute name="scope" type="cas:scopeType" use="optional"/>
                  </extension>
               </simpleContent>
            </complexType>
         </element>
         <element name="cuniprincipalname" minOccurs="0" maxOccurs="2">
             <complexType>
                <simpleContent>
                    <extension base="cas:nullableUidType">
                       <attribute name="scope" type="cas:scopeType" use="optional"/>                </extension>
                </simpleContent>
             </complexType>
         </element>
         <element name="cunistudyprogram" minOccurs="0" maxOccurs="unbounded">
             <complexType>
                <complexContent>
                   <extension base="cas:studyProgramType">
                      <attribute name="scope" type="cas:scopeType" use="optional"/>
                   </extension>
                </complexContent>
             </complexType>
         </element>
         <element name="cunistudysubject" minOccurs="0" maxOccurs="unbounded">
             <complexType>
                <complexContent>
                   <extension base="cas:studySubjectType">
                      <attribute name="scope" type="cas:scopeType" use="optional"/>
                   </extension>
                </complexContent>
             </complexType>
         </element>
      </sequence>
    </group>
    
    
    <!--
      - Data describing current state of record in CAS.
      - Required attributes are listed explicitly, optional by reference
      - to group of optional attributes.
      -->
    <complexType name="personDataType">
      <sequence>
         <element ref="cas:cunipersonalid"/>
         <element ref="cas:cn"/>
         <element ref="cas:sn"/>
         <element ref="cas:givenname"/>
         <group ref="cas:optionalAttributes"/>
         <element ref="cas:cunimodifiedtime"/>
      </sequence>
    </complexType>
    
    
    <!--
      - Data describing modifications made to the CAS record.
      - Not all attributes are allowed in all operations to remain in consistent state
      - (e.g. required attributes can not be deleted or replaced with null value,
      -  required single valued attributes can not be added etc.
      -->
    <complexType name="changesType">
      <sequence>
         <element name="replace" minOccurs="0" maxOccurs="1">
            <complexType>
               <sequence>
                  <element ref="cas:cn" minOccurs="0" maxOccurs="1"/>
                  <element ref="cas:sn" minOccurs="0" maxOccurs="1"/>
                  <element ref="cas:givenname" minOccurs="0" maxOccurs="1"/>
                  <group ref="cas:optionalAttributes"/>
                  <element ref="cas:cunimodifiedtime"/>
               </sequence>
            </complexType>
         </element>
         <element name="add" minOccurs="0" maxOccurs="1">
            <complexType>
               <sequence>
                  <group ref="cas:optionalAttributes"/>
               </sequence>
            </complexType>
         </element>
         <element name="delete" minOccurs="0" maxOccurs="1">
            <complexType>
               <sequence>
                  <group ref="cas:nullableAttributes"/>
               </sequence>
            </complexType>
         </element>
      </sequence>
    </complexType>
    
    
    <!--
      - Data describing CAS record with current state and modifications made.
      - If <newentry/> is present, than the whole record has been added to CAS.
      -->
    <element name="cuniperson">
      <complexType>
        <sequence>
           <element name="data" type="cas:personDataType"/>
           <choice>
             <element name="changes" type="cas:changesType"/>
             <element name="newentry" type="cas:emptyType"/>
           </choice>
        </sequence>
        <attribute name="id" type="cas:personalidType"/>
      </complexType>
    </element>
    
    
    <!--
      - Top level element, contains one or more CAS records.
      -->
    <element name="cas">
      <complexType>
        <sequence>
           <element ref="cas:cuniperson" minOccurs="1" maxOccurs="unbounded"/>
        </sequence>
      </complexType>
    </element>
    
    
    </xsd:schema>
    

    Notifikace o změnách údajů o osobách

    Pro zasílání notifikací o změnách dat v CAS se používá následující interface:

    <?xml version="1.0" encoding="UTF-8"?>
    <definitions targetNamespace="http://ldap.cuni.cz/wsdl"
      xmlns:caswsdl="http://ldap.cuni.cz/wsdl"
      xmlns:cas="http://ldap.cuni.cz/cas"
      xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
      xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" 
      xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" 
      xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
      xmlns="http://schemas.xmlsoap.org/wsdl/">
    
      <types>
        <schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://ldap.cuni.cz/wsdl" elementFormDefault="qualified">
    
          <!-- import CAS data types -->
          <import namespace="http://ldap.cuni.cz/cas" schemaLocation="http://ldap.cuni.cz/cas.xsd"/>
    
        <xsd:element name="result" type="xsd:bool"/>
    
        </schema>
      </types>
    
      <message name="notifyRequest">
        <part name="id" element="cas:cas"/>
      </message>
      
      <message name="notifyResponse">
        <part name="status" element="caswsdl:result"/>
      </message>
      
      <portType name="notificationInterface">
        <operation name="notify">
          <input message="caswsdl:notifyRequest"/>
          <output message="caswsdl:notifyResponse"/>
        </operation> 
      </portType>
       
      <binding name="notificationBinding" type="caswsdl:notificationInterface">
        <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
        <operation name="notify">
          <wsdlsoap:operation soapAction=""/>
          <input name="notifyRequest">
    	<wsdlsoap:body use="literal" namespace="http://ldap.cuni.cz/wsdl"/>
          </input>
          <output name="notifyResponse">
    	<wsdlsoap:body use="literal" namespace="http://ldap.cuni.cz/wsdl"/>
          </output>
        </operation>
      </binding>
      
      <service name="casNotificationService">
        <port name="casNotificationPort" binding="caswsdl:notificationBinding">
          <wsdlsoap:address location=""/>
        </port>
      </service>
      
    </definitions>
    

    Přidělení přihlašovacího jména

    Algoritmus automatického přidělování přihlašovacích jmen jej implementován dvěma rozhraními. První rozhraní poskytuje CAS:

    <?xml version="1.0" encoding="UTF-8"?>
    <definitions targetNamespace="http://ldap.cuni.cz/wsdl"
      xmlns:caswsdl="http://ldap.cuni.cz/wsdl"
      xmlns:cas="http://ldap.cuni.cz/cas"
      xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
      xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" 
      xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" 
      xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
      xmlns="http://schemas.xmlsoap.org/wsdl/">
    
      <types>
        <schema xmlns="http://www.w3.org/2001/XMLSchema"
          targetNamespace="http://ldap.cuni.cz/wsdl">
    
          <!-- import CAS data types -->
          <import namespace="http://ldap.cuni.cz/cas" schemaLocation="http://ldap.cuni.cz/cas.xsd"/>
    
          <xsd:element name="result" type="xsd:bool"/>
          
        </schema>
      </types>
      
      <message name="uidCreateRequest">
        <part name="id" element="cas:cunipersonalid"/>
      </message>
    
      <message name="uidSetRequest">
        <part name="id" element="cas:cunipersonalid"/>
        <part name="uid" element="cas:uid"/>
        <part name="token" type="xsd:string"/>
        <part name="unique" type="xsd:bool"/>
      </message>
    
      <message name="uidStatusResponse">
        <part name="status" element="caswsdl:result"/>
      </message>
      
      <portType name="uidInterface">
        <operation name="uidCreate">
          <input message="caswsdl:uidCreateRequest"/>
          <output message="caswsdl:uidStatusRespose"/>
        </operation>
        <operation name="uidSet">
          <input message="caswsdl:uidSetRequest"/>
          <output message="caswsdl:uidStatusRespose"/>
        </operation>
      </portType>
      
      <binding name="uidBinding" type="caswsdl:uidInterface">
        <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
        <operation name="uidCreate">
          <wsdlsoap:operation soapAction="create"/>
          <input name="uidCreateRequest">
    	<wsdlsoap:body use="literal" namespace="http://ldap.cuni.cz/wsdl"/>
          </input>
          <output name="uidStatusResponse">
    	<wsdlsoap:body use="literal" namespace="http://ldap.cuni.cz/wsdl"/>
          </output>
        </operation>
        <operation name="uidSet">
          <wsdlsoap:operation soapAction="set"/>
          <input name="uidSetRequest">
    	<wsdlsoap:body use="literal" namespace="http://ldap.cuni.cz/wsdl"/>
          </input>
          <output name="uidStatusResponse">
    	<wsdlsoap:body use="literal" namespace="http://ldap.cuni.cz/wsdl"/>
          </output>
        </operation>
      </binding>
      
      <service name="uidService">
        <port name="uidPort" binding="caswsdl:uidBinding">
          <wsdlsoap:address location="https://ldap1.cuni.cz/ws/uid.php"/>
        </port>
      </service>
    
    </definitions>
    
    

    Druhé rozhraní implementuje lokální doména:

    <?xml version="1.0" encoding="UTF-8"?>
    <definitions targetNamespace="http://ldap.cuni.cz/wsdl"
      xmlns:caswsdl="http://ldap.cuni.cz/wsdl"
      xmlns:cas="http://ldap.cuni.cz/cas"
      xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
      xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" 
      xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" 
      xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
      xmlns="http://schemas.xmlsoap.org/wsdl/">
    
      <types>
        <schema xmlns="http://www.w3.org/2001/XMLSchema"
          targetNamespace="http://ldap.cuni.cz/wsdl">
    
          <!-- import CAS data types -->
          <import namespace="http://ldap.cuni.cz/cas" schemaLocation="http://ldap.cuni.cz/cas.xsd"/>
    
          <xsd:element name="result" type="xsd:bool"/>
          
        </schema>
      </types>
      
      <message name="uidNewRequest">
        <part name="id" element="cas:cunipersonalid"/>
        <part name="uid" element="cas:uid"/>
        <part name="token" type="xsd:string"/>
      </message>
    
      <message name="uidStatusResponse">
        <part name="status" element="caswsdl:result"/>
      </message>
      
      <portType name="uidLocalInterface">
        <operation name="uidNew">
          <input message="caswsdl:uidNewRequest"/>
          <output message="caswsdl:uidStatusRespose"/>
        </operation>
      </portType>
      
      <binding name="uidLocalBinding" type="caswsdl:uidLocalInterface">
        <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
        <operation name="uidNew">
          <wsdlsoap:operation soapAction=""/>
          <input name="uidNewRequest">
    	<wsdlsoap:body use="literal" namespace="http://ldap.cuni.cz/wsdl"/>
          </input>
          <output name="uidStatusResponse">
    	<wsdlsoap:body use="literal" namespace="http://ldap.cuni.cz/wsdl"/>
          </output>
        </operation>
      </binding>
      
      <service name="uidService">
        <port name="uidPort" binding="caswsdl:uidBinding">
          <wsdlsoap:address location=""/>
        </port>
      </service>
    
    </definitions>
    
    

    Administrace lokálních účtů

    Pro administraci účtů v lokálních doménách v CAS se používá následující interface:

    
    <?xml version="1.0" encoding="UTF-8"?>
    <definitions targetNamespace="http://ldap.cuni.cz/wsdl"
      xmlns:caswsdl="http://ldap.cuni.cz/wsdl"
      xmlns:cas="http://ldap.cuni.cz/cas"
      xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
      xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" 
      xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" 
      xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
      xmlns="http://schemas.xmlsoap.org/wsdl/">
    
      <types>
        <schema xmlns="http://www.w3.org/2001/XMLSchema"
          targetNamespace="http://ldap.cuni.cz/wsdl">
    
          <!-- import CAS data types -->
          <import namespace="http://ldap.cuni.cz/cas" schemaLocation="http://ldap.cuni.cz/cas.xsd"/>
    
          <xsd:element name="result" type="xsd:bool"/>
    
          <xsd:element name="accountpolicy">
    	<xsd:simpleType>
    	  <xsd:restriction base="xsd:string">
    	    <xsd:enumeration value="autonomous"/>
    	    <xsd:enumeration value="centralized"/>
    	    <xsd:enumeration value="delegated"/>
    	    <xsd:enumeration value="subordinate"/>
    	    <xsd:enumeration value="controlled"/>
    	  </xsd:restriction>
    	</xsd:simpleType>
          </xsd:element>
    
        </schema>
      </types>
      
      <message name="accountCreateRequest">
        <part name="id" element="cas:cunipersonalid"/>
        <part name="uid" element="cas:uid"/>
        <part name="policy" element="caswsdl:accountpolicy"/>
      </message>
    
      <message name="accountDeleteRequest">
        <part name="id" element="cas:cunipersonalid"/>
        <part name="uid" element="cas:uid"/>
        <part name="policy" element="caswsdl:accountpolicy"/>
      </message>
    
      <message name="accountStatusResponse">
        <part name="status" element="caswsdl:result"/>
      </message>
    
      <portType name="accountManagementInterface">
        <operation name="accountCreate">
          <input message="caswsdl:accountCreateRequest"/>
          <output message="caswsdl:accountStatusResponse"/>
        </operation>
        <operation name="accountDelete">
          <input message="caswsdl:accountDeleteRequest"/>
          <output message="caswsdl:accountStatusResponse"/>
        </operation>
      </portType>
      
      <binding name="accountManagementBinding" type="caswsdl:accountManagementInterface">
        <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
        <operation name="accountCreate">
          <wsdlsoap:operation soapAction=""/>
          <input name="accountCreateRequest">
    	<wsdlsoap:body use="literal" namespace="http://ldap.cuni.cz/wsdl"/>
          </input>
          <output name="accountStatusResponse">
    	<wsdlsoap:body use="literal" namespace="http://ldap.cuni.cz/wsdl"/>
          </output>
        </operation>
        <operation name="accountDelete">
          <wsdlsoap:operation soapAction=""/>
          <input name="accountDeleteRequest">
    	<wsdlsoap:body use="literal" namespace="http://ldap.cuni.cz/wsdl"/>
          </input>
          <output name="accountStatusResponse">
    	<wsdlsoap:body use="literal" namespace="http://ldap.cuni.cz/wsdl"/>
          </output>
        </operation>
      </binding>
      
      <service name="accountManagementService">
        <port name="accountManagementPort" binding="caswsdl:accountManagementBinding">
          <wsdlsoap:address location="https://ldap1.cuni.cz/ws/account.php"/>
        </port>
      </service>
      
    </definitions>
    
    

    Definice LDAP schématu

    objectClasses: ( cuniPerson-oid NAME 'cuniPerson' SUP top STRUCTURAL MUST cuniPersonalId MAY ( cuniAuthPrincipal $ cuniAuthService $ cuniBirthCode $  cuniBirthDate $ cuniCertSubjectDN $ cuniIdCardChipNumber $ cuniIdCardNumber $ cuniPrincipalName $ cuniStudyProgram $ cuniStudySubject ) X-ORIGIN 'user defined' )
    attributeTypes: ( cuniIdCardNumber-oid NAME 'cuniIdCardNumber'  SYNTAX 2.16.840.1.113730.3.7.1 X-ORIGIN 'user defined' )
    attributeTypes: ( cuniStudyProgram-oid NAME 'cuniStudyProgram'  SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 X-ORIGIN 'user defined' ) 
    attributeTypes: ( cuniBirthDate-oid NAME 'cuniBirthDate'  SYNTAX 1.3.6.1.4.1.1466.115.121.1.24 SINGLE-VALUE X-ORIGIN 'user defined' )
    attributeTypes: ( cuniPersonalId-oid NAME 'cuniPersonalId'  SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE X-ORIGIN 'user defined' )
    attributeTypes: ( cuniPrincipalName-oid NAME 'cuniPrincipalName'  SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 X-ORIGIN 'user defined' )
    attributeTypes: ( cuniBirthCode-oid NAME 'cuniBirthCode'  SYNTAX 2.16.840.1.113730.3.7.1 SINGLE-VALUE X-ORIGIN 'user defined' )
    attributeTypes: ( cuniIdCardChipNumber-oid NAME 'cuniIdCardChipNumber'  SYNTAX 2.16.840.1.113730.3.7.1 X-ORIGIN 'user defined' )
    attributeTypes: ( cuniStudySubject-oid NAME 'cuniStudySubject'  SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 X-ORIGIN 'user defined' )
    attributeTypes: ( cuniAuthService-oid NAME 'cuniAuthService'  SYNTAX 2.16.840.1.113730.3.7.1 SINGLE-VALUE X-ORIGIN 'user defined' )
    attributeTypes: ( cuniAuthPrincipal-oid NAME 'cuniAuthPrincipal'  SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE X-ORIGIN 'user defined' )
    
    objectClasses: ( cuniAccount-oid NAME 'cuniAccount' AUXILIARY MAY ( cuniCertSubjectDN $ uid $ networkPassword ) X-ORIGIN 'user defined' )
    attributeTypes: ( networkPassword-oid NAME 'networkPassword'  SYNTAX 1.3.6.1.4.1.1466.115.121.1.40 SINGLE-VALUE X-ORIGIN 'user defined' )
    
    attributeTypes: ( cuniCertSubjectDN-oid NAME 'cuniCertSubjectDN' SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 X-ORIGIN 'user defined' )
    Personal tools