4.2.5. Žádost o ověření identity

Jakmile znáte koncový bod OP, případně i prohlášený identifikátor a vnitřní identifikátor, zašle vaše aplikace skrze přesměrování uživatelova prohlížeče žádost o ověření identity (o autentizaci). Žádost obsahuje speciální parametry pro její realizaci. Tyto parametry se uvádějí pomocí svých identifikátorů do těla zprávy. Konstrukci této žádosti o ověření identity opět přímo zajistí OpenID knihovny, které budete pro implementaci používat.

Žádost o ověření identity obsahuje obvykle následující parametry:

  • Návratovou adresu (URL) aplikace poskytovatele služby - Na tuto adresu se vrátí uživatel po provedení přihlášení ze stránek poskytovatele OpenID a zde bude výsledek přihlašování vaší aplikací zpracován.

  • Oblast URL poskytovatele služeb (dále jen jako realm) – definuje část prostoru URL, pro niž je žádost o ověření identity platná. Návratová adresa poskytovatele služeb musí ležet v této oblasti URL. Na této nebo odpovídající adrese musí být k dispozici XRDS dokument nebo zveřejněna jeho poloha.

  • Volba vyžadované přihlašovací metody – volba se provede 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, přihlašování pomocí digitálního certifikátu nebo jednorázového hesla.

    • Přihlášení pomocí certifikátu je možné vyžádat s pomocí rozšíření PAPE použitím identifikátoru:
      http://schemas.openid.net/pape/policies/2007/06/phishing-resistant

      V případě přihlášení pomocí certifikátu se zobrazují uživateli následující hlášky:
      „Poskytovatel služby požaduje přihlášení certifikátem.“
      „The service provider wants you to login with your certificate.“

    • Přihlášení pomocí jednorázového hesla nebo aplikace MojeID Autentikátor je možné vyžádat použitím identifikátoru:
      http://schemas.openid.net/pape/policies/2007/06/multi-factor

      V případě přihlášení pomocí jednorázového hesla se zobrazují uživateli následující hlášky:
      „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.“

  • Omezení doby přihlášení uživatele – pokud se uživatel úspěšně přihlásí, systém mojeID udržuje tohoto uživatele „přihlášeného“. Pokud se uživatel v této době přihlašuje k jinému poskytovateli služeb, nemusí se na přihlašovací stránce mojeID znovu autentizovat. Máte ovšem možnost omezit svoji žádost o ověření identity na libovolnou dobu od poslední autentizace, pokud to považujete za potřebné, např. z hlediska bezpečnosti. Tuto volbu je možné vyžádat použitím pole max_auth_age rozšíření PAPE. Pokud se uživatel nepřihlásil do mojeID za posledních max_auth_age sekund, je po něm vyžadováno nové přihlášení.

  • Prohlášený identifikátor uživatele, který bude ověřován – Jméno identity odpovídající tomuto prohlášenému identifikátoru bude uživateli zobrazeno na přihlašovací stránce mojeID. Pokud uživatel vybírá identifikátor u OP, obsahuje zvláštní hodnotu.

  • Požadované údaje z mojeID identity – do žádosti o ověření identity lze přidat i seznam jednotlivých údajů z mojeID identity, které vaše aplikace vyžaduje a které budou po úspěšném přihlášení a se souhlasem uživatele vaší aplikaci předány. Pro každý údaj je nutné uvést jeho identifikátor. MojeID podporuje vyžádání následujících údajů (podrobnosti a formáty jednotlivých položek lze nalézt přímo na uvedené adrese identifikátoru údaje; některé z těchto údajů – jméno, přezdívka, e-mail, datum narození, PSČ a stát – lze získat jednodušším identifikátorem rozšíření SReg). Seznam možných údajů obsahuje Příloha č. 2 – Seznam údajů pro předání (OpenID 2.0).

Příklad položek v požadavku, které může žádost o ověření identity obsahovat, shrnuje následující tabulka:

Parametr (klíč)

Popis (hodnota)

openid.ns

Určení použitého OpenID protokolu.
http://specs.openid.net/auth/2.0

openid.claimed_id

Prohlášený identifikátor uživatele.
http://demo.mojeid.cz/

openid.identity

Vnitřní identifikátor uživatele.
http://mojeid.cz/id/unikatni_retezec/

openid.assoc_handle

Identifikační řetězec dříve navázané asociace.
{HMAC-SHA256}{4c486ac3}{Ze6JZA==}

openid.return_to

Návratová adresa z mojeID. Ve starších specifikacích protokolu OpenID se toto pole označuje openid.trust_root.
http://www.poskytovatel-example.cz/MojeID-Navrat.html

openid.realm

Oblast URL poskytovatele služeb.
http://www.poskytovatel-example.cz/

openid.ns.ax

Určení rozšíření pro výměnu atributů. Řetězec „ax“ může být jakékoliv jiné pojmenování, které si zvolí vaše knihovna. Zde se pouze řekne, jak se na něj bude dále odkazovat.
http://openid.net/srv/ax/1.0

openid.ax.mode

Režim výměny atributů (získání, uložení).
fetch_request

openid.ax.type.firstName

Vyžádání atributu na místo firstName může být libovolný řetězec.
http://axschema.org/namePerson/first

openid.ax.type.validated

Další atribut – tentokrát informace o ověření uživatelových údajů.
http://specs.nic.cz/attr/contact/valid

openid.ax.type.jabber

http://axschema.org/contact/IM/Jabber

openid.ax.required

Seznam atributů, o kterých poskytovatel služeb tvrdí, že jsou nezbytné pro řádné založení/aktualizaci účtu resp. pro fungování aplikace poskytovatele služeb samotné (povinné položky).
firstName,validated

openid.ax.if_available

Seznam dodatečných atributů (nepovinné položky). Poskytovatel služeb by si je přál, ale nevadí, pokud je nedostane.
Jabber

openid.ns.pape

Určení rozšíření pro autentizační politiky.
http://specs.openid.net/extensions/pape/1.0

openid.pape.max_auth_age

Počet sekund od poslední autentizace. Pokud se uživatel neautentizoval v této době, musí se autentizovat znovu.
3600

openid.pape .preferred_auth_policies

Seznam identifikátorů požadovaných politik oddělených mezerou.
http://schemas.openid.net/pape/policies/2007/06/phishing-resistant