161 Dotazování na AS pomocí PHP

radim.pospisil@proofreason.com 23.01.2019 15:50

Dobrý den,

už nějakou dobu procházím provozni_rad_isds.pdfInformace pro vývojáře, ale není mi jasné jaký je správný postup pro implementaci dotazování se na službu AS.

Na testovací DS máme zřízenou službu OB + AS s validním certifikátem.

Můj dotaz tedy zní: Existuje způsob, jakým se lze dotazovat AS skrze API pomocí PHP? Pokud ano, je možné někde získat návod jak (hlavně ohledně certifikátů a jakým způsobem je při dotazování poskytnout)?

Pokud to možné není, jaký je správný postup při dotazování se na AS?

 

Za jakokoliv radu budu vděčný.

Děkuji

161.1 Re: Dotazování na AS pomocí PHP

602jsima 23.01.2019 18:08

Dobrý den.

Z dotazu si nejsem jist, že víte, co chcete. Zkuste mi prosím napsat, jaký problém řešíte, a uvidíme, jestli je Autentizační služba ISDS to pravé, co hledáte.

Jinak postup je relativně jednoduchý:

a) Vaše aplikace přesměruje uživatele na login stránku AS ISDS

b) uživatel se přihlásí a vrátí se zpět do Vaší aplikace

c) aplikace si přečte z GET parametru nějaký unikátní token

d) s tímto autentizačním tokenem aplikace volá webovou službu, z její odpovědi čte údaje o přihlášeném uživateli a jeho schránce

e) aplikace podle těchto údajů pozná, o koho jde, přiřadí si ho třeba ke své vlastní identitě, nebo mu třeba pošle zprávu nebo nechá něco provést apod.

A jestli je to v PHP nebo v něčem jiném je úplně jedno.

Kterému z těch kroků nerozumíte?

 

Jan Šíma

ISDS 

161.1.1 Re: Re: Dotazování na AS pomocí PHP

radim.pospisil@proofreason.com 23.01.2019 23:00 Attachments: cert.info

Omlouvám se za špatnou formulaci a mockrát děkuji za rychlou odpověď. 

To o co mi jde jste prakticky vystihl bodem e).

Během testování jsem upustil prozatím od PHP řešení a čistě testuji přístup k endpointu.

 

Problém u mě nastává ve chvíli, kdy se snažím provést požadavek na AS endpoint https://cert.czebox.cz/asws/atsEndpoint pomoci curl.

 

Přesný příkaz: curl -iv https://cert.czebox.cz/asws/atsEndpoint --cert ./client.crt --key ./client_private.key

Výstup tohoto příkazu je:

* Trying 90.182.206.213...
* TCP_NODELAY set
* Connected to cert.czebox.cz (90.182.206.213) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* Cipher selection: ALL:!EXPORT:!EXPORT40:!EXPORT56:!aNULL:!LOW:!RC4:@STRENGTH
* successfully set certificate verify locations:
* CAfile: ./truststore.global.pem
CApath: none
* TLSv1.2 (OUT), TLS header, Certificate Status (22):
* TLSv1.2 (OUT), TLS handshake, Client hello (1):
* TLSv1.2 (IN), TLS handshake, Server hello (2):
* TLSv1.2 (IN), TLS handshake, Certificate (11):
* TLSv1.2 (IN), TLS handshake, Server key exchange (12):
* TLSv1.2 (IN), TLS handshake, Request CERT (13):
* TLSv1.2 (IN), TLS handshake, Server finished (14):
* TLSv1.2 (OUT), TLS handshake, Certificate (11):
* TLSv1.2 (OUT), TLS handshake, Client key exchange (16):
* TLSv1.2 (OUT), TLS handshake, CERT verify (15):
* TLSv1.2 (OUT), TLS change cipher, Change cipher spec (1):
* TLSv1.2 (OUT), TLS handshake, Finished (20):
* TLSv1.2 (IN), TLS alert, unsupported certificate (555):
* error:14094413:SSL routines:ssl3_read_bytes:sslv3 alert unsupported certificate
* Closing connection 0
curl: (35) error:14094413:SSL routines:ssl3_read_bytes:sslv3 alert unsupported certificate

 

Certifikát je ve formátu PEM a výsup příkazu: cat ./truststore.pem ./client.crt | openssl verify :

stdin: OK

V příloze ještě přikládám výstup: openssl x509 -text -in ./client.crt 

 

Tento certifikát se nám podařilo vložit do DS k nastavení služby OB + AS a dokonce nám bylo potvrzeno, že na něm není viditelná chyba.

 

Co by tedy mohlo být důvodem, výše uvedeného chování (server zamítá certifikát kvůli špatnému formát)? 

 

Předem děkuji, za jakoukoli reakci.

161.1.1.1 Re: Re: Re: Dotazování na AS pomocí PHP

602jsima 24.01.2019 08:19

Dobrý den.

Kdy přesně jste ten curl požadavek prováděl?

 

Jan Šíma

ISDS

161.1.1.1.1 Re: Re: Re: Re: Dotazování na AS pomocí PHP

radim.pospisil@proofreason.com 24.01.2019 08:44

Opět děkuji za rychlou odpověď.

 

Curl požadavek jsem prováděl několikrát včera mezi 22-23h a

ten samý požadavek jsem provedl teď 3x po sobě v 9:40 až 9:42.

 

161.1.1.1.1.1 Re: Re: Re: Re: Re: Dotazování na AS pomocí PHP

602cabrnoch 24.01.2019 13:13

Dobrý den,

díval jsem se na detaily Vašeho certifikátu a problém je v tom, že Váš certifikát nemá jako použití klíče povoleno clientAuth, to bohužel koliduje s vlastnostmi požadovanými ISDS - Certifikát nesmí mít omezení, vylučující jeho použití jako SSL/TLS klient. 

Pokud se podíváte do použití rozšířeného klíče je třeba mít jako jednu z vlastností:

Ověření klienta (1.3.6.1.5.5.7.3.2)

Vy máte momentálně pouze:

Ověření serveru (1.3.6.1.5.5.7.3.1)

Jan Žďárský, tým technické podpory ISDS

161.1.1.1.1.1.1 Re: Re: Re: Re: Re: Re: Dotazování na AS pomocí PHP

radim.pospisil@proofreason.com 24.01.2019 15:49

Mockrát děkuji za rychlou odpověď.

Tato informace mi velice pomohla.

161.1.1.1.1.1.1.1 Re: Re: Re: Re: Re: Re: Re: Dotazování na AS pomocí PHP

602cabrnoch 25.01.2019 07:32

Dobrý den, 

ještě přidám poznámku, že variantou k více vlastnostem použití rozšířeného klíče, je nemít je uvedeny vůbec. Potom by použití také nebylo omezeno.

Jan Žďárský, tým technické podpory ISDS