Pagina 1 van 1
Interne app wegsteken achter portal
Geplaatst: 01 aug 2019, 21:05
door butskristof
Iedereen,
Ik zoek een oplossing voor het volgende:
Onlangs ontwikkelde ik een .NET Core webapplicatie, puur voor persoonlijk gebruik. Deze kan ik runnen in een Docker container op mijn NAS en benaderen op mijn intern netwerk. Tot daar alles top, werkt zoals het hoort.
Nu zou ik graag die applicatie ook buitenshuis willen gebruiken zonder telkens een VPN te moeten opzetten. Is er iets mogelijk ivm een portal waar ik de toegang tot deze app 'achter' steek?
In de meest basic configuratie dacht ik aan iets met nginx reverse proxy en basic HTTP auth, maar da's wel heel primitief.
Aangezien er in de toekomst waarschijnlijk nog wel een aantal van zo'n zelfgeschreven apps bijkomen, zou het leuk zijn om echt een portal te maken met authorisatie en dan een overzicht van de beschikbare applicaties.
Een andere mogelijkheid is Identity in de applicatie zelf integreren, maar ik ga praktisch gezien de enige gebruiker zijn. En naar de toekomst toe dan ook weer niet schaalbaar als er applicaties bijkomen.
Alvast bedankt om mee te denken!
Re: Interne app wegsteken achter portal
Geplaatst: 01 aug 2019, 22:20
door devilkin
Heb je al eens gekeken naar evt aws ecs/fargate met een application load balancer voor?
Sent from my ONEPLUS A6003 using Tapatalk
Re: Interne app wegsteken achter portal
Geplaatst: 02 aug 2019, 00:22
door butskristof
Ja, maar dat is in deze situatie niet ideaal vrees ik. Het is een toepassing die gebruik maakt van een hoop videobestanden die lokaal op mijn NAS staan en deze streamt (met wat extra functionaliteit). Het gaat om +- 1 TB aan ruwe data (nu), dus om die altijd extern te gaan hosten.. De videobestanden worden on-the-fly omgezet naar audio-only, dus elke keer de video (tussen de 1 en 4 gigabyte) eerst langs AWS of zo laten rondgaan is ook niet praktisch.
Daarmee dat ik ze graag thuis wil hosten, met de nodige beveiliging natuurlijk.
Ik had al begrepen dat ik een reverse proxy nodig heb. De vraag gaat dan vooral over een extra laag of toevoeging aan die proxy die auth kan afhandelen en het allemaal wat toonbaar kan maken met oog op uitbreiding.
Ideaal hangt mijn toepassing dus niet rechtstreeks aan het internet aangezien en geen Identity/Firebase auth is ingebouwd, maar gaat alles rond via de reverse proxy die de beveiliging afhandelt.
Re: Interne app wegsteken achter portal
Geplaatst: 02 aug 2019, 10:38
door meon
Apache2 met mod_proxy en mod_auth ?
Re: Interne app wegsteken achter portal
Geplaatst: 02 aug 2019, 11:02
door bitbite
butskristof schreef:In de meest basic configuratie dacht ik aan iets met nginx reverse proxy en basic HTTP auth, maar da's wel heel primitief.
Da's niet fancy, maar wel erg solide. In mijn ervaring eigenlijk zero-miserie eens ingesteld. Je kan per pad in de url of (vind ik zelf het properste) per virtual host doorlussen naar een andere backend.
Re: Interne app wegsteken achter portal
Geplaatst: 02 aug 2019, 12:20
door Sasuke
* Awingu appliance eens testen (kan 60 dagen gratis)
* Watchguard Firewall met nodige licentie om de 'Access Portal' te gebruiken
Is je applicatie zelf webbased / browserbased of niet ? Indien wel ... als je een Synology of QNAP Nas hebt, die kunnen ook reverse proxy spelen (al dan niet in een docker container).
Re: Interne app wegsteken achter portal
Geplaatst: 03 aug 2019, 17:05
door butskristof
meon schreef:Apache2 met mod_proxy en mod_auth ?
Geen ervaring mee. Is dat ongeveer hetzelfde als een reverse proxy via nginx?
bitbite schreef:Da's niet fancy, maar wel erg solide. In mijn ervaring eigenlijk zero-miserie eens ingesteld. Je kan per pad in de url of (vind ik zelf het properste) per virtual host doorlussen naar een andere backend.
Uiteindelijk wou ik het dan maar zo doen om het toch al voorlopig werkende te krijgen. Via docker-compose een nginx container toegevoegd die een reverse proxy en basic auth legt naar de app-container. Werkt in Chrome, maar in Safari klaagt hij over de authenticatie in combinatie met cross-origin requests. Normaal zitten er in de app helemaal een CORS, maar het zou ook iets met de certificaten kunnen zijn blijkbaar..
In ieder geval toch ook nog niet ideaal.
Sasuke schreef:* Awingu appliance eens testen (kan 60 dagen gratis)
* Watchguard Firewall met nodige licentie om de 'Access Portal' te gebruiken
Is je applicatie zelf webbased / browserbased of niet ? Indien wel ... als je een Synology of QNAP Nas hebt, die kunnen ook reverse proxy spelen (al dan niet in een docker container).
De voorgestelde toepassingen ga ik eens bekijken, bedankt.
Toepassing zelf is inderdaad web based. Synology heeft inderdaad die 'application portal', maar daar kan je geen auth toevoegen. Tenzij je de nginx configuratie van de Syno zelf gaat aanpassen, maar die reset ook bij elke update. Nginx in een docker container met port forward werkt ook dus da's dan makkelijker.
Uiteindelijk lijkt het me toch een heel gedoe. Ik dacht dat dit redelijk simpel op te lossen ging zijn. Misschien dan toch maar best authenticatie rechtstreeks inbouwen in de applicatie? Identity is uiteindelijk redelijk snel geïmplementeerd.
EDIT: dat de error met de certificaten zou te maken hebben lijkt me sterk. Over HTTP net dezelfde error:
Code: Selecteer alles
Blocked http://localhost:8080/dist/site.entry.js from asking for credentials because it is a cross-origin request
=> die krijg ik bij alle js-files. Nog niet nagekeken of het enkel voor Javascriptbestanden is of alles uit de dist-folder.