Sziasztok!
Röviden tömören, szeretnék hozzáférni a böngésző certijeihez ellenőrzés céljából
(valószínűleg rosszul keresek googleben), s nem igazán találok rá iránymutatást sem.
A nyelv Javascript lenne, de Angular/Typescript megoldás lenne az igazi, amivel meg kellene oldanom a feladatot.
Dióhélyban van egy Angular6 projekt, felhasználót szeretnék azonosítani, de csak azok számára kellene megjelenjen a login lehetősége, ahol
telepítve van a böngészőben, az általam kiadott certificate.
Ha valaki tud rá valami aranyos npm lib-et, vagy angular modult, vagy csinált már hasonlót bármely webes nyelven, s tudna pár jó tanáccsal szolgálni, megköszönném. :)
- 1475 megtekintés
Hozzászólások
Szerintem client cert auth csak böngésző és HTTPS szerver között létezik, JS-nek semmi köze hozzá.
- A hozzászóláshoz be kell jelentkezni
-
- A hozzászóláshoz be kell jelentkezni
De ezt miért kliens oldalon akarod megoldani?
A böngésző elküldi a kliens certet a webszervernek-nek az SSL handshake során. Ebből aztán a webszerver ki tudja szedni a neki kellő infót és pl küld egy 403-at vagy egy redirektet egy hibaoldalra ha valamilyen paraméter alapján nem felel meg neked a certificate, vagy továbbítja headerben a certificate adatait az alkalmazásnak és az dönt.
A trükk, hogy a SSL handshake során a Client Cert Request-et "optional"-ra kell állítani.
Itt van két példa haproxy-val, amiből látszik a lényeg:
https://www.haproxy.com/blog/ssl-client-certificate-management-at-appli…
https://raymii.org/s/tutorials/haproxy_client_side_ssl_certificates.html
- A hozzászóláshoz be kell jelentkezni
Esetleg eat nezd meg : https://veewee.github.io/blog/authenticating-with-x509-client-certifica…
- A hozzászóláshoz be kell jelentkezni
Köszönöm a segítséget a hozzászólóknak.
Ebból már ki tudok indulni.
Azért kívánok a kliensre certit tenni, amit az app ellenőriz , "legrosszabb eseben" eljuttat a auth request környékén, mert ez a feladat :) ha egyet értek vele, ha nem. sztem egy VPN inkább megfelelőbb lenne, de ez van egyenlőre.
Meg leginkább azért mert az Angular nem szerveroldali, így nem akarnám/nánk a backend felé fordulni, ha már eleve eldönthető, hogy certi hiányában úgyse válaszolnánk rá.
Mégegyszer köszönöm.
- A hozzászóláshoz be kell jelentkezni