Forum Turris
Fórum Turris Nápověda

Milí majitelé routerů Turris,

toto fórum bylo 9. 12. 2016 zmrazeno a nahrazeno naším novým Turris fórem. Ještě chvíli bude dostupné k prohlížení, ale již zde není možné přispívat. Více informací naleznete v oznámení o uzavření fóra.


Dear Turris routers users,

this forum has been frozen on Dec 9th, 2016 and replaced by our new Turris forum. It will be read-only accessible for some time after. For more information, read the announcement about closing the forum.

Nahoru Téma Majitelé routerů / Technická podpora / Http proxy v Pythonu
- - Od saky (>) Dne 2015-11-23 15:58
Zdravím, v Pythonu moc nedělám, tak bych potřeboval poradit nějakou http proxy.

Mám aplikaci v pythonu běžící na Turrisu a její část (web interface + REST API) potřebuji dostupné z internetu, k čemuž bych chtěl využít NGINX. Nerad bych to ohýbal pro rozlišování zdroje requestu na aplikační vrstvě, tak bych pro requsty "zvenčí" rád vložil do cesty samostatnou vrstvu, která mi zajistí autentizaci. V nodejs bych využil asi node-http-proxy, ale na Turrisu bohužel bez nodejs, tak hledám alternativu v Pythonu.

Existuje něco vyzkoušeného? V praxi mi jde pouze o přihlášení, resp ověření tokenu například z mobilní aplikace. Má představa je taková, že si DNS záznam domény namířím na veřejnou IP, kde mi na 443 bude naslouchat ona proxy a v případě ověření bude servírovat komunikaci s app.. V lokální sítí mám tutéž doménu v unbound jako lokální zónu, takže komunikuji s app přímo. Podmínkou je podpora https, http využít neplánuji.

Díky za tip ;)
Nadřazený - - Od Michal Vaner (>>) Dne 2015-11-23 16:08
Dobré ráno

Musí to nutně být v pythonu? Na turrisu je zprovoznitelná proxy Squid. V návodu sice je popis, jak ji použít jako obyčejnou proxy (https://www.turris.cz/doc/navody/squid), ale při troše ohýbání ACL by měla jít použít i jako reverzní s autentikací.

S pozdravem
Nadřazený - Od saky (>) Dne 2015-11-23 16:32
Super, děkuji, po drobných úpravách mobilní app by mohla být přesně to, co hledám ;) Problém by mohl trošku nastat s WebSocketem, ale nejsnazší je asi vyzkoušet.

Ještě jednou díky :wink:
Nadřazený - - Od Charon351 Dne 2015-11-24 06:32
Píšeš o nginx, proč nepoužiješ přímo nginx, jak reversproxy tak tls tak autentizaci zvlada
Nadřazený - - Od saky (>) Dne 2015-11-24 08:39
No právě kvůlu autentizaci pomocí tokenu (mobilní app + websocket), které potřebuji přidávat/odebírat za letu. Nenašel jsem použitelné řešení, snad jedině access_by_lua mi dá možnost ověřovat JWT pomocí LUA, což mě právě původně přivedlo na proxy v pythonu. Možná jsem ale špatně hledal :o)
Nadřazený - - Od Charon351 Dne 2015-11-24 08:56
tak autentizace se resi na strane aplikace, teda pokud nechces autentizovat i pristup k dalsim souborum jako treba video, ale i to nginx umi base autentizaci i vuci scriptu,
pripadne se da pouzit docany pristup pres hashe je ale potreba mit nginx skompilovany s dalsimi moduli
Nadřazený - Od saky (>) Dne 2015-11-24 09:09
.."ale i to nginx umi base autentizaci i vuci scriptu". Aha, takže jsem opravdu hledal asi špatně :p

Video sice ne, ale JS knihovny ano, proto mi šlo o nějaký mezičlánek, který zabezpečí i statické soubory.. V nové verzi pravděpodobně budu i tento statický obsah dodávat aplikací až po autorizaci, ale teď jsem hledal co nejjednodušší řešení, aniž bych měnil chování app. Pro mě by bylo nyní ideální, kdyby authentizátor předal samostatné app request a ta vrátí identitu/false s tím, že si sama rozhodně vůči čemu ověří (kontrola IP, databáze, JWT, jiná service,..).

Zkusím se tedy ještě jednou kouknout na ten nginx, díky.. :wink:
Nahoru Téma Majitelé routerů / Technická podpora / Http proxy v Pythonu

Powered by mwForum 2.29.3 © 1999-2013 Markus Wichitill