4.2.9. Zpracování odpovědi

Pokud je zpráva s odpovědí na žádost o ověření identity úspěšně ověřena, může vaše aplikace zpracovat data obsažená v odpovědi a dokončit tak proces přihlašování pomocí mojeID. Toto zpracování musí webová aplikace zajistit na návratové adrese, která byla obsažena v žádosti o ověření identity.

4.2.9.1. Výsledek přihlášení

Při zpracování výsledku přihlášení je potřeba ošetřit následující speciální situace týkající se úspěšného přihlášení:

  • První přihlášení uživatele – pokud je uživatel, který se úspěšně přihlásil, ve vaší webové aplikaci poprvé, je ve většině případů nutné, abyste mu založili účet, kde budou udržována data získaná z mojeID identity a samozřejmě i veškerá další data specifická pro příslušnou aplikaci. Při zakládání účtu je doporučeno:

    • využít data získaná z mojeID identity zcela místo vyplňování registračního formuláře, případně zobrazit uživateli v registračním formuláři pouze ta políčka, jejichž obsah nebyl získán z mojeID

    • a seznámit uživatele s tím, jaká data z mojeID identity příslušná aplikace potřebuje a doporučit mu, že je vhodné, aby umožnil jejich předávání při každém přihlášení.

  • Opakované přihlášení versus přihlášení nového uživatele – při každém zpracování odpovědi je třeba kontrolovat prohlášenou identitu uživatele, protože se může stát, že dva různí uživatelé mají stejné jméno identity a to tak, že jedna osoba zruší svoji mojeID identitu (a uvolní tak příslušné jméno identity) a jiná osoba si založí identitu se stejným jménem identity. Tito uživatelé jsou pak rozlišeni pomocí unikátního řetězce na konci URL prohlášené identity.

  • Přihlášení uživatele, který o něj nepožádal přímo – vaše aplikace může obdržet odpověď s úspěšným přihlášením i v případě, že o přihlášení tento uživatel nepožádal přímo v této aplikaci. Jde o normální situaci, která by neměla být považována za chybu – požadavek na přihlášení šel z jiných stránek, než na kterou se vrací data (v protokolu se neuchovává informace o aplikaci, jež vygenerovala zprávu; pokud takovou informaci vyžadujete, musíte si ji doplnit sami). Uživatel je si ovšem vždy díky upozornění na přihlašovací stránce mojeID vědom, ke které službě se přihlašuje a komu předává data.

Při zpracování výsledku přihlášení je potřeba ošetřit následující situace týkající se negativního výsledku přihlašování:

  • Zamítnutí žádosti o přihlášení – Uživatel může po příchodu na přihlašovací stránku zamítnout žádost o přihlášení např. z důvodu, že jej sám neinicioval. Vaše aplikace pak musí ošetřit tento stav.

  • Nemožnost okamžitého ověření – Vaše aplikace může vynutit ověření identity bez kontaktu s uživatelem, pokud toto ověření není poskytovatel OpenID schopen poskytnout, vrátí se tento typ odpovědi znamenající, že je třeba provést klasické ověření uživatele. Některé knihovny tento stav nerozlišují od předchozího stavu.

  • Chyba v protokolu – Poskytovatel OpenID vrátí tento typ zprávy, pokud je schopen určit návratovou adresu vaší aplikace, ale není schopen rozpoznat jiná pole ve zprávě, neboť obsahuje data, jež jsou v rozporu s protokolem. Poskytovatel OpenID vrací tento typ zpráv, např. pokud mu je doručena zpráva s vnitřním identifikátorem, jež není schopen ověřit.

4.2.9.2. Údaje z mojeID identity

Pokud je využito dotazování na údaje z mojeID identity, je nutné ošetřit následující speciální situace:

  • Opakované přihlašování uživatele – při každém opakovaném přihlášení uživatele pomocí mojeID je potřeba zkontrolovat, zda data, která jsou uložena v interním účtu vaší aplikace, jsou shodná s daty, která byla v rámci přihlášení získána z mojeID identity uživatele. V případě, že se liší, je potřeba aktualizovat data v interním účtu daty z mojeID identity; ta jsou pravděpodobně aktuální.

  • Neobdržení požadovaných údajů – uživatel má vždy možnost ovlivnit, jaké údaje budou či nebudou při přihlášení předávány vaší aplikaci. Může se tedy stát, že aplikace některé údaje vyžaduje a přesto je díky uživatelově volbě nedostane. Je doporučeno ošetřit tuto situaci, aby data, která aplikace požaduje, byla rozdělena na povinná, která jsou nutná pro fungování aplikace, a nepovinná, bez kterých se aplikace obejde. Podle tohoto rozdělení je pak vhodné navrhovat konkrétní chování dotyčné aplikace.

Zvláštním případem je možnost přihlášení pouze pro plně identifikované nebo validované (fyzicky ověřené) uživatele mojeID. Položky http://specs.nic.cz/attr/contact/validhttp://specs.nic.cz/attr/contact/status jsou předávány vždy, pokud si o ně aplikace poskytovatele s plným přístupem požádá. Údaje, u kterých uživatel nepovolil předání, jsou v těle odpovědi vráceny bez hodnoty.