4.2.6. Provedení autentizace (XRDS a realm)

V okamžiku, kdy uživatel dorazí s žádostí o ověření identity od vaší aplikace na koncový bod mojeID, je mu zobrazena přihlašovací stránka, kde proběhne samotné přihlášení.

../../../_images/manual_html_m41c3113f.png

Vlastní dialog pro vložení mojeID identifikátoru na stránkách mojeID.

Tato autentizace je provedena servery mojeID. V rámci tohoto ověření se pokusíme provést maximum úkonů, které byly specifikovány pomocí parametrů v žádosti o ověření identity. Celý proces se odehrává v systémech mojeID a z vaší strany nevyžaduje žádnou činnost.

Součástí je ověření vaší návratové adresy; uživatel je o výsledku tohoto ověření informován. V rámci tohoto ověření jsou získána i další data o vás pomocí protokolu YADIS a ta jsou následně ověřena oproti údajům ve zprávě. Korektní odpověď na dotaz z protokolu YADIS vrátí buď XRDS dokument nebo HTML dokument, v němž bude zveřejněna poloha XRDS dokumentu.

4.2.6.1. XRDS dokument a jeho formát

Poloha XRDS dokumentu se zveřejňuje následující značkou META v hlavičce stránky, kterou umístíte na adresu vašeho realmu OpenID:

<meta http-equiv="x-xrds-location" content="http://www.example.cz/xrds.xml"/>

Příklad vlastního XRDS dokumentu pro přihlášení ke službě mojeID:

<?xml version="1.0" encoding="UTF-8"?>
<xrds:XRDS xmlns:xrds="xri://$xrds" xmlns="xri://$xrd*($v*2.0)">
  <XRD>
    <Service>
      <Type>http://specs.openid.net/auth/2.0/return_to</Type>
      <URI>http://www.poskytovatel-example.cz/MojeID-Navrat.html</URI>
    </Service>
  </XRD>
</xrds:XRDS>

Příklad XRDS dokumentu pro registraci ke službě mojeID:

<?xml version="1.0" encoding="UTF-8"?>
<xrds:XRDS xmlns:xrds="xri://$xrds" xmlns="xri://$xrd*($v*2.0)">
  <XRD>
    <Service>
      <Type>http://specs.openid.net/auth/2.0/assert_url</Type>
      <URI>URL rozhraní</URI>
    </Service>
  </XRD>
</xrds:XRDS>

kde ve značce URI musí být návratová adresa vaší aplikace z žádosti o ověření identity. Během celého procesu k získání dokumentu nesmí váš server vrátit přesměrování (HTTP kód 3xx), jinak je dokument považován za neplatný/podvržený.

4.2.6.2. Výběr vhodného realmu

Realm je v systému mojeID jednoznačným identifikátorem vámi poskytované služby, jeho správná volba tedy usnadní orientaci uživatelům. Dle specifikace OpenID by měl realm odpovídat části prostoru URL, pro níž je požadavek platný. V případě přihlašování by tedy realm neměl být menší než je část prostoru URL, která je pokrytá následně vzniklým sezením.

Z tohoto plyne naše doporučení používat právě jeden realm na jednu doménu druhého řádu. Protože dvě URL, které se liší byť jen schématem, jsou dle specifikací rozdílné, velmi doporučujeme použít výhradně schéma HTTPS, pokud je dostupné. Tím se také zabrání odposlechu dat uživatelů během jejich odesílání do vaší aplikace.

Pokud používáte pouze jedinou doménu druhého řádu, pak doporučujeme zvolit realm ve tvaru: https://example.cz/ nebo https://www.example.cz/.

Důležité

Návratová adresa musí mít stejnou doménu jako realm, jinak je OpenID požadavek neplatný.

Pokud používáte poddomény třetích a nižších řádů, doporučujeme využít náhražkový znak * a zvolit realm ve tvaru https://*.example.cz/. Tento realm umožňuje používat návratové adresy s libovolnou poddoménou, např. https://www.example.cz/, https://sub.example.cz/navratova/adresa/, https://pod.do.me.na.example.cz/, ale ne s doménou samotnou (v tomto případě https://example.cz/).

Dokument XRDS se bude hledat na URL, kde se znak * nahradí za „www“, tedy na https://www.example.cz/. Všechny tvary, se kterými se pracuje, musí být v protokolu HTTPS.

Důležité

Realm nesmí obsahovat IP adresu, vždy použijte doménové jméno.