Postup nastavení pro jednotné přihlašování přes portál občana. Jedná se o jednotnou identifikaci. Jak to tak bývá, státní podpora je chaotická.
Zřízení testovací datové schránky
V první řadě se musí zřídit testovací datová schránka pro vývojáře.
Po přihlášení do vlastní datové schránky se klikne na ikonu NASTAVENÍ
a následně se vybere v levém sloupci PRO VÝVOJÁŘE.
Vyberte položku Testovací schránky. Zaškrtne se ZŘÍZENÍ TESTOVACÍ SCHRÁNKY a odešle se žádost.
Po odeslání se zobrazí formulář pro registraci konkrétního subjektu (testovacího).
V první řadě se musí zvolit TYP SCHRÁNKY. Pro testovací účely se vybere Orgán veřejné moci - OVM. Dále se vyplní požadované údaje a klikne se na tlačítko ZŘÍDIT SCHRÁNKU V TESTOVACÍM PROSTŘEDÍ.
Dojde k založení testovací schránky a následnému vypsání přihlašovacích údajů pro první přihlášení. ( Uživatelské jméno: 3535u9 )
Registrace jako Poskytovatele služeb (SeP)
Na testovacím portále twww.eidentita.cz se přihlásíme pod zřízenou testovací schránkou jako KVALIFIKOVANÝ POSKYTOVATEL.
Po přihlášení se klikne na SOUHLASÍM předáním informací státní moci.
Dojde k přesměrování na stránku pro registraci KVALIFIKOVANÉHO UŽIVATELE.
Zde se klikne na odkaz Registrace organizace.
Na zobrazené stránce se potvrdí SOUHLAS S REGISTRACÍ.
Dojde k přesměrování na stránku s potvrzením a následné výzvě k opětovnému přihlášení.
Konfigurace kvalifikovaného poskytovatele
Po opětovném přihlášení od portálu eIdentita se musí provést konfigurace kvalifikovaného poskytovatele. Těchto konfigurací může být několik a řeší se zde, jak nakonfigurovat URL adresy pro konkrétní aplikaci při přihlašování.
Po přihlášení do eIdentita se klikne na položku KONFIGURACE KVALIFIKOVANÉHO UŽIVATELE.
Zde se přidá nová konfigurace kliknutím na tlačítko PŘIDAT.
Vyplní se požadované údaje.
Popis jednotlivých parametrů
Adresa pro načtení veřejné části certifikátu z metadat (URL)
- SeP může ale nemusí vystavit svou vlastní konfiguraci.
- Součástí konfigurace je i certifikát, kterým se na straně NIA IdP šifrují odpovědi
- Pokud je tato konfigurace vč. certifikátu, lze jej použít pro dynamickou aktualizaci certifikátu, místo statické konfigurace na portále eIdentita
- Formát metadat je SAML2.0 EntityDescriptor, v dokumentaci eIDAS Message Format v1.2.pdf , příklad v sekci 6.1, popisující formát metadat na straně SeP
Adresa pro příjem vydaného tokenu (AuthResponse)
- URL na kterou bude přesměrován uživatel, která zajistí verifikaci a použití vráceného SAML AuthResponse
- Použitá metoda bude HTTP-REDIRECT nebo HTTP-POST (dle IdP metadat SingleSignOnService )
- V SAML2 AuthnRequest jde o parametr Audience
Adresa pro přesměrování uživatele po odhlášení (LogoutResponse)
- URL na kterou bude uživatel přesměrován po odhlášení
- Použitá metoda bude HTTP-REDIRECT
Unikátní URL adresa zabezpečené části Vašeho webu
- Nejedná se o nutně existující URL adresu, ale především o unikátní identifikátor SeP
- V SAML2 AuthnRequest jde o parametr Issuer
Generování certifikátu a klíče
Chcete-li použít některou z funkcí zabezpečení SAML, jako jsou podpisy a šifrování, budete nejprve potřebovat pár klíčů. In se skládá z veřejné části - certifikátu a soukromého klíče. Soukromý klíč se používá k podepisování zpráv SAML, zatímco veřejný klíč se používá k šifrování a odesílání zpráv, takže je můžete dešifrovat pouze vy a k ověření vašich podpisů. Certifikát je publikován s vašimi metadaty SAML a je volně distribuován vašim spoléhajícím se stranám. Soukromý klíč, jak název napovídá, by měl zůstat soukromý a pouze pro vaše oči. Z důvodu problémů se zabezpečením platnost certifikátů po nějaké době vyprší a je nutné je obnovit, aby fungovalo podepisování a šifrování SAML.
Pomocí OpenSSL můžete vygenerovat pár klíčů.
$ openssl req -x509 -sha256 -nodes -days 365 -newkey rsa:2048 -keyout privateKey.key -out certificate.crt
Po vygenerování certifikátu lze zkontrolovat pomocí následujícího příkazového řádku
$ openssl x509 -in saml.crt -text -noout
Je důležité hledat následující věci
Použitý algoritmus podpisu
Signature Algorithm: sha256WithRSAEncryption
Vydavatel
Issuer: C=AU, ST=Some-State, O=Internet Widgits Pty Ltd, CN=common name
Datum platnosti
Validity
Not Before: Aug 9 07:04:20 2016 GMT
Not After : Aug 9 07:04:20 2017 GMT
Uložení certifikátu v prostředí Sep
Vygenerovaný certifikát je nutné uložit do konfigurace v prostředí SeP. Nebo lze použít cestu k vygenerovaným Metadatům Sep. Po nahrání certifikátu se musí profil vždy ULOŽIT. Pokud se má nahrát nový certifikát musí se starý odstranit.
Programování
Pro implementaci lze použít některé z knihoven pro práci se SAML2. Jedna taková je extrahována z SimpleSAMLphp, používá OpenConext.
https://github.com/simplesamlphp/saml2
Instalace
Instalace pomocí Composeru:
composer require simplesamlphp/saml2:^4.0
Pro rozhraní kontejneru je nutné vytvořit externí závislosti. Takže do složky instalované knihovny se doplní definice rozhraní. Struktura složek pro testovací aplikaci volané jedním souborem v závislosti na definované aplikace v rozhraní SeP je:
Rozhraní je přidáno do složky saml.
V souboru NiaContainer.php jsou definovány konstanty:
public static $AssertionConsumerServiceURL = 'https://www.paropisek.cz/appsep.php?action=getToken';
public static $IssuerURL = 'https://www.paropisek.cz/appsep.php';
public static $pathCert = 'assets/vendor/saml/certs/sp.crt';
public static $pathKey = 'assets/vendor/saml/certs/sp.key';
Jedná se o definici URL adres, které jsou uvedeny v rozhraní SeP a cesty k certifikátu a privátnímu klíči.
Kompletní aplikace: https://github.com/Nowis75/Nia
- Obsah zipu se zkopíruje na server.
- Nastaví se konstanty v NiaContainer.php
- Vygenerují se certifikáty.
- Nastaví se rozhraní SeP na eidentita.cz
- Výchozím souborem je sepapp.php
Příručka Sep - download.