My web application has a dashboard page written in angularjs that is intended to be displayed on a screen in a room as a way of monitoring the information therein.
It's a dumb screen connected up to a machine with no easy access to input devices so I want to minimise the need to interact with the browser window. This leaves me with a puzzle as to how best retrieve the information and display it.
Using django as a backend, obviously the preferred solution would be to have a "Dashboard" user set up that is used to access the dashboard on the screen, however this then requires logging in (and as the session cookie will expire, this will need to be done every X days/weeks).
Leaving it open to viewable by anyone regardless of login isn't ideal- the data isn't particularly sensitive but I'd rather neither the page nor the API endpoint that fetches the data were exposed to the world.
I could use nginx reverse proxy to limit access to the dashboard to a specific (internal) ip/range but then that prevents users of the site who ARE logged in/authenticated and should otherwise be able to see the data from viewing the dashboard outside of the internal network.
Is there a balanced way to make the dashboard convenient to use while still maintaining security?
(I'll also need to handle refreshing the page automatically when changes are made to it, but there are solutions to that out there already).