1.4. Metody webové služby se specializovanými metodami (WS-EDIT/2)

Specializované metody jsou dostupné pouze ve verzi 1.1 webových služeb. Podrobně je syntaxe metod popsána ve schématu XSD editačních služeb 1.1, část 2.

Tabulka 1.32: Jmenný prostor metod WS-EDIT/2

Verze

XMLNS

Endpoint [1]

1.1

http://userportal.novell.com/ws-edit/2/WS-2-1.1

https://cert-externaleditapi11.caais.gov.cz/spravadat/ws-edit/2/call/exampleId

1.4.1. Ztotožnění uživatele

1.4.1.1. IdentifyAgainstRob

Metoda IdentifyAgainstRob na základě požadavku IdentifyAgainstRobRequest provede ztotožnění uživatele přiřazením AIFO, a to buď nalezením uživatele v CAAIS, pokud již existuje, anebo voláním metody E278 – robCtiPodleUdaju2 základních registrů. V odpovědi IdentifyByRobResponse se vrací výsledek provedené akce.

Uživatelský profil musí být ve stavu „Před ztotožněním“, případně „Aktivní“. Po úspěšném ztotožnění jsou zneplatněny odkazy na samoztotožnění, které byly uživateli zaslány e-mailem při založení profilu.

CAAIS Internals

V systému CAAIS se provádí následující kroky: - Pokus o nalezení Profilu podle atributu WS „username“ (odpovídá atributu CAAIS "Profil"."uživatelské jméno" (Profile.loginName)).

  • Pokud není Profil nalezen, vrací se chyba.

  • Pokud není odpovídající FO pro daný Profil ve stavech „Před ztotožněním“/„Aktivní“ vrací se chyba.

  • Pokud má odpovídající FO pro daný Profil atribut „Osoba evidována v ROB“ (personInRob) = "Ne" (jedná se o neztotožnitelnou osobu) a zároveň je FO ve stavu "Aktivní", vrací se chyba.

  • Pokud je Profil nalezen a FO má atribut "Osoba evidována v ROB" (personInRob) = "Ano", vrací se OK (FO již byla ztotožněna).

  • Pokud je FO pro profil ve stavu "Před ztotožněním" provedou se tyto kroky:

    • Volá se ROB metoda E278 – robCtiPodleUdaju2 s parametry

      • buď jméno ("Fyzická osoba"."jméno" (PhysicalPerson.firstName)) + příjmení ("Fyzická osoba"."příjmení" (PhysicalPerson.lastName)) + datum narození z atributu WS "dateOfBirth" (+ volitelně místo narození z atributu WS "placeOfBirth"),

      • anebo druh a číslo dokladu z atributu "identificationCard" WS.

    • Pokud není FO v ROB nalezena vrací se chyba.

    • Pokud je FO v ROB nalezena, provedou se tyto kroky:

      • Pokus o nalezení vráceného AIFO v mapování federačního hubu CAAIS (tabulka IdentityMapping)

      • Pokud není AIFO nalezeno provedou se tyto kroky:

        • Nastaví se atribut FO "Osoba evidována v ROB" (personInRob) = "Ano"

        • Stav FO se nastaví na "Aktivní"

        • Stav Profilu se ponechá ve stavu dle požadavku metody CreaterUser ("Aktivní"/"Neaktivní")

        • Doplní se mapování AIFO ve federačním hubu (tabulka IdentityMapping)

        • Volá se ROB metoda E45 – orgPrihlasAifo pro zaregistrování daného AIFO k notifikaci změn v ROB pro systém CAAIS.

        • Do systému CAAIS-IdP volá založení nové identity s údaji FO (certifikáty uloženy v pomocné technické tabulce "Certifikát pro samoztotožnění")

        • Z pomocné technické tabulky "Certifikát pro samoztotožnění" se smažou dočasně uložené certifikáty dané FO

        • Zneplatní se odkaz na stránku pro samoztotožnění, předávaný emailem uživateli, aby se uživatel nepokoušel znovu ztotožnit

      • Pokud je AIFO nalezeno, znamená to, že již v CAAIS existuje ztotožněná FO pro zadané údaje a že se má nově založený profil navázat na tuto FO a provedou se tyto kroky:

        • Profil se naváže na existující FO s nalezeným AIFO

        • Stav FO se nastaví na "Aktivní", pokud takový stav již nemá nastaven (byla v minulosti deaktivována)

        • Stav Profilu se ponechá ve stavu dle požadavku metody CreaterUser ("Aktivní"/"Neaktivní")

        • Původně založená FO pro daný profil ve stavu "Před ztotožněním" se smaže

Příklad žádosti IdentifyAgainstRobRequest

<IdentifyAgainstRobRequest xmlns="http://userportal.novell.com/ws-edit/2/WS-2-1.1">
    <username>humphrey_appleby</username>
    <identificationCard type="ID">123456789</identificationCard>
</IdentifyAgainstRobRequest>
Tabulka 1.33: Popis atributů IdentifyAgainstRobRequest

Název

Popis

username

Uživatelské jméno pro ztotožnění.

dateOfBirth

Datum narození osoby.

placeOfBirth

Místo narození osoby. Pokud je osoba narozena v ČR, vyplňuje se kód obce. Pokud je osoba narozena mimo ČR, vyplňuje se název obce + atribut countryCode (viz níže).

countryCode

Pokud je místo narození mimo ČR, zadává se i stát narození jako číselný kód ISO 3166-1.

identificationCard

Číslo dokladu totožnosti.

…/type

Druh dokladu totožnosti jako Číselník typu dokladu totožnosti

Pro volání do ROB je nutné zadat jen atribut identificationCard, anebo dateOfBirth; atribut placeOfBirth je nutné vyplnit pouze v případě, že kombinace jména, příjmení a data narození nedostačuje k jednoznačné identifikaci osoby v ROB (bylo nalezeno více záznamů). Podrobněji dokumentace podkladové služby E278 – robCtiPodleUdaju2 základní registrů, povolené kombinace údajů II a IV.

Tabulka 1.34: Číselník typu dokladu totožnosti

Kód

Typ dokladu totožnosti

ID

Občanský průkaz

P

Cestovní pas

IR

Povolení k pobytu

VZ

Vízový štítek

PS

Pobytový štítek

OP

Občanský průkaz bez MRZ

CA

Cestovní průkaz

IX

Knížečka (označení CIS: PB, PE, PO, PP, PR)

IE

Tiskopis (označení CIS: PM, OR)

Příklad odpovědi IdentifyAgainstRobResponse

<IdentifyAgainstRobResponse xmlns="http://userportal.novell.com/ws-edit/2/WS-2-1.1">
    <status>OK</status>
</IdentifyAgainstRobResponse>

1.4.2. Spravované subjekty

1.4.2.1. GetManageableSubjects

Metoda GetManageableSubjects na základě požadavku GetManageableSubjectsRequest vrací v odpovědí GetManageableSubjectsResponse seznam subjektů (jejich zkratek), ke kterým má daný subjekt povolen přístup díky přenesené působnosti lokálního administrátora (čtení i zápis) nebo přenesené působnosti čtení dat subjektu (jen čtení). V odpovědi se krom podřízených subjektů vrací také daný subjekt, pro který se metoda volá.

Příklad žádosti GetManageableSubjectsRequest

<GetManageableSubjectsRequest xmlns="http://userportal.novell.com/ws-edit/2/WS-2-1.1"/>

Příklad odpovědi GetManageableSubjectsResponse

<GetManageableSubjectsResponse xmlns="http://userportal.novell.com/ws-edit/2/WS-2-1.1">
    <subjects>
        <item name="KPRAHA" LaDelegationRights="active" ReaderDelegationRights="active"/>
        <item name="PrahaDubec" LaDelegationRights="active"/>
        <item name="Praha3" LaDelegationRights="inactive" ReaderDelegationRights="active"/>
    </subjects>
</GetManageableSubjectsResponse>
Tabulka 1.35: Popis atributů GetManageableSubjectsResponse

Název

Popis

Atribut z datového modelu

subjects

Seznamam subjektů.

Vrací volající subjekt a subjekty uvedené v entitě "Působnost" (Authority) v atributu "zdrojový subjekt", pro něž je volající subjekt v atributu "cílový subjekt". Jedná se o všechny působnosti, které byly předány danému subjektu od jiných subjektů.

item

Jeden subjekt v seznamu.

…/name

Zkratka subjektu

"Subjekt"."zkratka" (Subject.shortcut)

…/LaDelegationRights

Vrací se informace o nastavení přenesené působnosti lokálního administrátora (právo ke čtení i zápisu). Hodnota „inactive“ znamená, že cílový (tzn. metodu volající) subjekt ještě nepřijal přenesenou působnost od zdrojového subjektu. Hodnota „active“ znamená, že působnost byla přijata.

pokud "Působnost"."Typ působnosti"."název" (Authority.AuthorityType.name) = "Lokální administrátor)"

= active, pokud "Působnost"."působnost potvrzena" (Authority.confirmed) = "ano"

= inactive, pokud "Působnost"."působnost potvrzena" (Authority.confirmed) = "ne"

…/ReaderDelegationRights

Vrací se informace o nastavení přenesené působnosti čtení dat subjektu (právo pouze ke čtení). Hodnoty „inactive“ a „active“ mají stejný význam jako v atributu LaDelegationRights.

pokud "Působnost"."Typ působnosti"."název" (Authority.AuthorityType.name) = "Čtení dat jiného subjektu"

= active, pokud "Působnost"."působnost potvrzena" (Authority.confirmed) = "ano"

= inactive, pokud "Působnost"."působnost potvrzena" (Authority.confirmed) = "ne"

Subjekt, pro který se metoda volá (cílový, resp. nadřízený) má nastaveny oba atributy „LaDelegationRights“ a „ReaderDelegationRights“ na hodnotu „active“.

1.4.3. Historie změn údajů

1.4.3.1. HistoryData

Metoda HistoryData na základě požadavku HistoryDataRequest vrací v odpovědi HistoryDataResponse seznam změněných údajů v CAAIS za definované časové období.

Není implementováno

Metoda se právě doimplementovává.

1.4.4. Dovolené hodnoty číselníků

1.4.4.1. GetListOfValues

Metoda GetListOfValues na základě požadavku GetListOfValuesRequest vrací v odpovědí GetListOfValuesResponse číselníky hodnot používané v editačních webových službách CAAIS. Na vstupu se definuje název číselníku, jehož hodnoty se mají vrátit.

Příklad žádosti GetListOfValuesRequest

<GetListOfValuesRequest xmlns="http://userportal.novell.com/ws-edit/2/WS-2-1.1">
    <listName>ciselnik_statu</listName>
</GetListOfValuesRequest>
Tabulka 1.36: Popis atributů GetListOfValuesRequest

Název

Popis

listName

Název (kód) číselníku dle Seznam číselníků.

Tabulka 1.37: Seznam číselníků

Název

Popis

ais_role

Číselník přístupových rolí do všech AIS v systému, které definují garanti daných AIS. Hodnoty se používají v atributu „aisRole“ v metodách GetSubject, GetUser, CreateUser a UpdateUser. Vrací se všechny aktivní "Přístupové role".

ciselnik_statu

Číselník států, jehož hodnoty se předávají v atributu „countryCode“ v metodě IdentifyAgainstRob. Vrací se seznam států z tabulky "Stát".

szr_role

Číselník agendových činnostních rolí pro přístup do základních registrů. Hodnoty se používají v atributu „cinnostniRole“ v metodách GetSubject, GetUser, CreateUser a UpdateUser. Vrací se jen aktivní činnostní role v aktivních agendách.

Příklad žádosti GetListOfValuesResponse

<GetListOfValuesResponse xmlns="http://userportal.novell.com/ws-edit/2/WS-2-1.1">
    <list name="ciselnik_statu" type="string">
        <item key="4">Afghánská islámská republika</item>
                <item key="894">Zambijská republika</item>
    </list>
</GetListOfValuesResponse>
Tabulka 1.38: Popis atributů GetListOfValuesResponse

Název

Popis

list

Element se seznamem hodnot požadovaného číselníku.

…/name

Název číselníku.

…/type

Datový typ pro hodnoty v číselníku (binary, string, structured).

item

Jedna položka číselníku. Binární hodnoty jsou zakódovány v Base64 kódování.

  • Pro číselník typu "ais_role" se vyplňuje ve formátu "<název_přistupové_role> (<název_AIS>) @ <název_subjektu_který_je_garantem_AIS>".

  • Pro číselník typu "ciselnik_statu" se vyplňuje hodnota atributu "Stát"."plný název".

  • Pro číselník typu "szr_role" se vyplňuje název činnostní role.

…/key

Interní ID položky v číselníku.

  • Pro číselník typu "ais_role" se vyplňuje ve formátu <zkratka_ais>.<zkratka_přístupové_role>.

  • Pro číselník typu "ciselnik_statu" se vyplňuje hodnota atributu "Stát"."kód".

  • Pro číselník typu "szr_role" se vyplňuje ve formátu "<kód_agendy>,<kód_činnostní_role>".