8.5. Příloha č. 6 – Příklady a řešení chybových hlášek¶
Následující článek popisuje nejčastější chybové hlášky, které při implementaci MojeID mohou vzniknout. V textu jsou dále popsána doporučení, jak chybu řešit, případně na co se zaměřit.
8.5.1. Chybové hlášky na testovací instanci¶
Chyby se vypisují přímo z použitých knihoven. Zde jsou vypsány ty nejdůležitější:
„Error parsing document as XML“ a „Not a XRDS document“ – Obojí znamená chybný XRDS dokument. Tato hláška obvykle značí problém v XRDS dokumentu, že XML kód není validní (nejčastěji kvůli obsahu nestandardních unicode znaků). Na adrese http://www.xmlvalidation.com je možné si zdrojový kód překontrolovat a zjistit tak, kde se chyba nachází.
„No XRD present in tree“ – XRDS dokument nemá žádný XRD element. Překontrolujte obsah XRDS dokumentu, viz sekci xrds. Pozor také na velikost písmen ve značkách!
„HTTP Response status from identity URL host is not 200. Got status XXX“ – dotaz na realm nebo XRDS dokument vrátil stavový kód HTTP jiný než 200.
Chyby z cURLu jsou ve tvaru „(XX, …)“, kde XX je číslo chyby ze seznamu chyb libcURL viz https://curl.haxx.se/libcurl/c/libcurl-errors.html
8.5.3. Problém s nezašifrovaným spojením¶
Může se stát, že prohlížeč zobrazí při přesměrování zpět na vaše stránky následující hlášku:
„Informace, které jste zadali, budou odeslány přes nezašifrované spojení
a mohly by jednoduše být přečteny třetí stranou. Určitě chcete pokračovat
v odesílání?“
„The information you have entered will be sent over an unencrypted connection
and could easily be read by a third party. Are you sure you want to continue
sending it?“
Poznámka
Uvedená hláška pochází z Firefoxu, v jiných prohlížečích pravděpodobně bude mít odlišné znění.
Toto hlášení se může objevit u všech realmů bez HTTPS. Předávané údaje (tj. i uživatelovy osobní údaje) putují po internetu nešifrovaně, a prohlížeč hlásí, že opouští šifrované stránky MojeID směrem ke službě, která šifrování nepoužívá. Nešifrovaný protokol (HTTP) nedoporučujeme, ale chyba to není.
Tento problém se dá snadno vyřešit použitím základního SSL certifikátu, který lze získat např. zde: https://letsencrypt.org/. Certifikát Vám zabezpečí chráněný přenos dat a současně vidíte, jakou úroveň ověření uživatel má.
8.5.4. Volba vyžadované přihlašovací metody¶
Vyžadovaná přihlašovací metoda se zvolí umístěním identifikátoru příslušné přihlašovací metody do žádosti o ověření identity. Služba MojeID podporuje mimo běžného přihlašování heslem i přihlašování pomocí digitálního certifikátu, jednorázového hesla (OTP) nebo bezpečnostního tokenu.
V případě přihlášení pomocí certifikátu se zobrazuje následující hláška:
„Poskytovatel služby požaduje přihlášení certifikátem.“
„The service provider wants you to login with your certificate.“V případě přihlášení pomocí jednorázového hesla nebo pomocí autentikátoru se zobrazuje následující hláška:
„Poskytovatel služby požaduje přihlášení jednorázovým heslem nebo MojeID Autentikátorem.“
„The service provider wants you to login with one time password or MojeID Autentikátor.“V případě přihlášení pomocí bezpečnostního tokenu se zobrazuje následující hláška:
„Poskytovatel služby požaduje přihlášení druhým faktorem.“
„The service provider wants you to login with two-factor authentication.“
Identifikátory metod a příklad žádosti s vyžádáním přihlašovací metody naleznete v sekci implem-oid2-zadost-overeni.
8.5.5. Problémy s knihovnou pro PHP¶
Mezi časté chybové hlášky patří zejména „FAILED TO CREATE AUTH REQUEST: not a valid OpenID“ a „Ověření OpenID selhalo: No OpenID information“.
Některé chyby mohou být způsobeny chybnou konfigurací vašeho serveru. Pro jejich nápravu můžete zkusit následující kroky:
Je zapotřebí se ujistit, že je cURL pro danou verzi PHP nainstalováno, zapnuté (phpinfo by tak mělo hlásit) a že v
php.ini
není cURL zakázáno.Případně může být třeba do souboru
/etc/php5/conf.d/curl.ini
uvést řádekextension=curl.so
, pokud tam není.Stáhněte si a nainstalujte nejnovější verzi cURL viz https://curl.haxx.se/download.html.
Dále Vám doporučujeme stáhnout a prostudovat si vzorovou implementaci v PHP.
8.5.6. Chybové odpovědi v JSONu (OIDC)¶
Chybové odpovědi obsahují kód chyby pod klíčem error
ve formě ASCII řetězce.
Lidsky čitelný popis chyby by se měl vyskytovat v JSON odpovědi pod klíčem
error_description
.
Chybové kódy, které může MojeID vrátit:
Kód chyby |
Možné příčiny |
---|---|
|
Špatné |
|
Chybějící povinné parametry, některý parametr nečitelný/neparsovatelný. |