Webprogrammering, en login till flera sidor

Elektronikrelaterade (på komponentnivå) frågor och funderingar.
bobobo
Inlägg: 678
Blev medlem: 10 november 2007, 22:18:30
Ort: Kungsbacka

Webprogrammering, en login till flera sidor

Inlägg av bobobo »

Hej
Jag är totalt grön på webprogrammering och skulle behöva tips på vilken väg man kan gå och var jag kan läsa mer om hur jag ska göra.

Jag håller på med några fastighetsautomationsprojekt där vi har plc'er för styrning, webkameror för övervakning och en kommande hemmasnickrad websida (asp.net) för att presentera historiska data lagrade i en sql-databas.

Jag vill skapa en websida med en meny-frame till vänster, en överskrift och en huvud-frame. I huvud-framen vill jag visa sidorna från de olika delsystemen. Webkamerorna har ju egna inbyggda webservers; PLCn styrs via en special webserver som presenterar ett användargränssnitt som en java-applet (specialwebservern sköter dataöverföringen mellan plc'n och appleten); Historiska data är som sagt en asp.net sida (har testat lite i Microsoft webdeveloper Express och det verkar relativt enkelt och smidigt).
Specialwebservern, sql-servern och webservern för historiska data ligger alla på samma hårdvara.

Det är ju inte så användarvänligt att ha inloggning varje gång man byter delsystem-sida. Jag skulle därför vilja ha att man loggar in på huvudsidan och sedan är det fritt fram.
Min tanke då var att ta bort lösenordsskydd från kamerorna och plc'ns webserver men begränsa brandväggen så att de inte är nåbara annat än från "huvud-webservern" och att den sedan vidarebefordrar informationen då man är inloggad på hemsidan.

Är det detta lösbart? är proxy en del av lösningen? är proxyn isf en separat programvara eller en del av IIS?

(Specialwebservern kommer från Codesys som har gjort hela mjukvarubiten till plc´erna som vi använder, som är från Wago. I små begränsade projekt kan denna även exekveras direkt på plc'ns hårdvara)
Användarvisningsbild
digitaliz
Inlägg: 278
Blev medlem: 10 oktober 2003, 21:27:38
Ort: Stockholm, Sverige

Re: Webprogrammering, en login till flera sidor

Inlägg av digitaliz »

Detta går enkelt att lösa med funktionen reverse proxy i Apache. Googla på det.
überfuzz
Inlägg: 790
Blev medlem: 8 december 2009, 19:46:27
Ort: Uppsala

Re: Webprogrammering, en login till flera sidor

Inlägg av überfuzz »

Digitaliz - Personligen tycker jag att det du föreslår är lite som att gå över ån efter vatten. (Själv skulle jag nog också valt att göra det i php på en Apache.) Vidare så verkar han ju sitta med en windows server. :wink:

bobobo - Du måste skapa sessioner när personer loggar in. I sessionerna kan du lagra data om vilken access etc som den inloggade personen har. Historiskt sett har asp:s sessions-hantering varit dålig, men jag tror att det är justerat nu på senare år. Det viktiga, som du ska tänka på, är att inte låta asp.net lagra inloggningsdata i cookies.
Användarvisningsbild
digitaliz
Inlägg: 278
Blev medlem: 10 oktober 2003, 21:27:38
Ort: Stockholm, Sverige

Re: Webprogrammering, en login till flera sidor

Inlägg av digitaliz »

überfuzz: men det är nog enklaste sättet att lösa det, utan att behöva skriva några php-script eller nått alls :) jag kör själv en apache med reverse proxy framför ett antal IIS burkar i första hand för att de ska kunna sitta på samma portnummer och adress. Sen är det bara slå på autentisering i apache om man vill ha det :)
bobobo
Inlägg: 678
Blev medlem: 10 november 2007, 22:18:30
Ort: Kungsbacka

Re: Webprogrammering, en login till flera sidor

Inlägg av bobobo »

Tack för svaren.
Att lösa inloggning på huvudsidan ska nog vara lätt att hitta hur många exempel som helst på.
Men det jag är fundersam på är hur jag löser åtkomsten till systemsidorna (kameran eller plc'n). De har olika inloggningsförfarande och med olika kameror kan det bli många olika sätt att hantera om jag vill vidarebefordra inloggningsdata till dem. Därför skulle jag vilja stänga av autentisering på "underenheterna". Men jag måste ju spärra så att man inte kan accessa dem direkt då utan bara via huvud-webservern.

Om jag bara skapar en frame och säger att den ska visa en kameras sida- Kommer då anropet till kameran "utifrån" eller från huvud-webservern?

/Mattias
überfuzz
Inlägg: 790
Blev medlem: 8 december 2009, 19:46:27
Ort: Uppsala

Re: Webprogrammering, en login till flera sidor

Inlägg av überfuzz »

Okej, jag ska försöka vara tydligare.
  1. Du kan lägga inloggningsformuläret var som helst på sidan, html:en alltså. Det vanligaste är att man når den från alla sidor. Exempel: http://www.elektronikforumet.com
  2. När användaren skickar sitt användarnamn och lösen via formuläret måste du jämföra med databasen. Hittar du en matchning så hämtas information om användaren ut.
  3. Olika användare har olika access till olika kameror, eller vad det var, så du måste komma på ett bra sätt att strukturera det i dina sql-tabeller (databasen).
  4. När en användare försöker komma åt en kamera jämför du användarens accessnivån med kamerans accessnivå. Är användaren godkänd för den sökta kameran anropar du den. Om användaren inte är det skickar du ett: 403 - ACCESS DENIED, som man säger på svenska. :wink:
Tanken är alltså att användaren bär med sig sin accessnivå överallt på sidan efter inloggning. Kameran i sin tur anropas när en godkänd användaren söker kontakt med den. Du får gärna beskriva hur du kommunicerar med kamerorna. Jag har inte riktigt fått kläm på hur du gör det och det skulle kunna tänkas att jag kan förklara lite bättre om jag vet det.
Användarvisningsbild
sodjan
EF Sponsor
Inlägg: 43201
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping
Kontakt:

Re: Webprogrammering, en login till flera sidor

Inlägg av sodjan »

> Om jag bara skapar en frame och säger att den ska visa en kameras sida- Kommer då anropet till kameran "utifrån" eller från huvud-webservern?

Om denna frame/sida länkar till kameran (ungefär som du kan länka till t.ex
en bild som ligger på en annan server) så kommer klienten att kontakta
kameran direkt. D.v.s det går inte genom din web-server.

Du kan lägga inloggning för att skydda själva framen/bilden där
kamera referensen ligger, men om någon (efter inloggning) kollar
upp länken till kemeran så kan den sannolikt användas direkt
utan att gå via din webserver (och utan inloggning).

För att det ska fungera behöver du en applikation på din webserner som
läser från kameran och skickar ut bilderna, då skulle det kanske gå att
används webserverns inloggning för att styra/skydda denna. Men frågan
är om man vill ha all kameratrafik genom web servern...
B1n4ry
EF Sponsor
Inlägg: 1316
Blev medlem: 30 november 2005, 20:02:50
Ort: Borås
Kontakt:

Re: Webprogrammering, en login till flera sidor

Inlägg av B1n4ry »

Jag tror det råder lite förvirring här, men det TS vill göra kallas normalt för "Single Sign On".

Principen är att du på "huvudsidan" har en länk till kameran och den länken skall på ett eller annat sätt hoppa över den i kameran inbyggda inloggningssidan.

Du kan t.ex. bygga länken till kameran som en "Form Post" och att fälten för användare och password finns med som dolda fält. Det är ju inte 100% säkert iom att användarid och password då kommer att finnas i klartext hos klienten. (Webservern som skickar huvudsidan bygger upp det dolda formuläret med de uppgifterna) men i en enklare tillämpning är det säkert bra nog.

Annars är ju alltid en proxy en lösning.

//B1N4RY
Nerre
Inlägg: 26761
Blev medlem: 19 maj 2008, 07:51:04
Ort: Upplands väsby

Re: Webprogrammering, en login till flera sidor

Inlägg av Nerre »

Apaches reverse proxy är nog det snyggaste sättet.

Då kommer man dessutom att accessa kamerorna med http://huvudserver/kamera1 etc, d.v.s. användaren ser inte ens den riktiga ip-adresser för kamerorna.

Jag är dock lite osäker på hur apache hanterar streams via proxy.
Användarvisningsbild
maDa
Inlägg: 4076
Blev medlem: 11 november 2005, 22:13:16
Ort: Malmö
Kontakt:

Re: Webprogrammering, en login till flera sidor

Inlägg av maDa »

Frames?? Trodde inte man använde det längre...

Är du absolut tvungen att köra IIS/ASP.NET? Det är ganska bakbunden lösning nämligen.

Som många här säger så apache reverse proxy. Annars någon form av mer avancerad PHP include eller Curl funktion.
bobobo
Inlägg: 678
Blev medlem: 10 november 2007, 22:18:30
Ort: Kungsbacka

Re: Webprogrammering, en login till flera sidor

Inlägg av bobobo »

Sodjan satte huvudet på spiken.

B1n4ry: Problemet är att alla under-sidor använder olika typer av inloggning. Java-skript popup, php, Html-autentisering med Base64 kodning, Postade attribut i klartext, osv. Jag tycker det är lite bökigt att programmera specifikt för varje enhet som ansluts utan vill kunna stänga av enheternas inbyggda skydd och låta trafiken gå genom huvudsidans webserver/proxy.

maDa: Frames eller någon annan teknik som delar av en meny och en varierande sida. Min okunskap lyser igenom här!

Jag måste inte köra ASP.Net men jag måste använda windows operativ. Och jag testade lite med microsoft webdeveloper express och det var ju väldigt enkelt för en nybörjare att slänga upp ett diagram som hämtar data från sql-server. Det här med diagram (utan runtime licens) är något jag måste ha och ett grafiskt utvecklargränssnitt med Wysiwyg är uppskattat.

Ang. windows operativ. Från början var meningen att jag skulle köra linux men:
-Webservern från Codesys för plc'erna kan bara köras antingen på plc'n eller på windows. När sidorna består av mer än 2-4 sidor och ett fåtal bilder så orkar inte plc'n och då måste jag vara på windows med den servern.
-För att lagra data (till sql) från plc'n har jag tittat på ett flertal lösningar, men det mest lättanvända (minsta programmeringsarbetet) är via OPC-server och en applikation för OPC till SQL. OPC är dock en teknik som är hårt knuten till windows som jag förstår det.
-Jag vill ha så få burkar som möjligt så därför vill jag köra webservern under windows.
Användarvisningsbild
sodjan
EF Sponsor
Inlägg: 43201
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping
Kontakt:

Re: Webprogrammering, en login till flera sidor

Inlägg av sodjan »

> Det här med diagram (utan runtime licens) är något jag måste ha och ett grafiskt utvecklargränssnitt med Wysiwyg är uppskattat.

Jag har tittat lite på "Open Flash Chart" vilket verkar lovande:
http://www.teethgrinder.co.uk/open-flash-chart/.
Verkar finnas exempel på .NET också (jag tittar främst på Python)...

Sen att man kanske måste programmera "på riktigt" och inte hålla på med
en massa klicketiklick i någon GUI är kanske ett problem för dig.

Vad har PLC'n för interface ?
Kör den ethernet direkt eller är det t.ex RS232 ?

> Jag vill ha så få burkar som möjligt så därför vill jag köra webservern under windows.

Det där är ju bara meningsfullt om man vet det du vet (som inte vi vet).
1 burk är aldrig fler än just *1* burk helt oavsett vad den kör... :-)
Nerre
Inlägg: 26761
Blev medlem: 19 maj 2008, 07:51:04
Ort: Upplands väsby

Re: Webprogrammering, en login till flera sidor

Inlägg av Nerre »

bobobo skrev: B1n4ry: Problemet är att alla under-sidor använder olika typer av inloggning. Java-skript popup, php, Html-autentisering med Base64 kodning, Postade attribut i klartext, osv. Jag tycker det är lite bökigt att programmera specifikt för varje enhet som ansluts utan vill kunna stänga av enheternas inbyggda skydd och låta trafiken gå genom huvudsidans webserver/proxy.
Men det kräver ju då att du kan blockera access från andra datorer än webservern? För annars kan ju folk ansluta direkt till enheterna.

Jag skulle nog i såna fall förorda att de "öppna" enheterna sitter på ett eget nät, och att webservern har dubbla nätverkskort.
bobobo
Inlägg: 678
Blev medlem: 10 november 2007, 22:18:30
Ort: Kungsbacka

Re: Webprogrammering, en login till flera sidor

Inlägg av bobobo »

Sodjan: PLC'erna har ethernet direkt.
> Jag vill ha så få burkar som möjligt så därför vill jag köra webservern under windows.
Det där är ju bara meningsfullt om man vet det du vet (som inte vi vet).
1 burk är aldrig fler än just *1* burk helt oavsett vad den kör...
Vad menar du? Pga att jag har flera andra server-mjukvaror (se mitt förra ilägg) som måste snurra parallellt och som måste gå under windows drog jag slutsatsen att jag vill ha en windows-baserad webserver-proxy för att slippa en extra hårdvara.

Nerre: Räcker det inte med att brandväggen blockerar inkommande trafik på port 80 för alla enheter i nätet utom huvudsidans webserver?
Nerre
Inlägg: 26761
Blev medlem: 19 maj 2008, 07:51:04
Ort: Upplands väsby

Re: Webprogrammering, en login till flera sidor

Inlägg av Nerre »

Det beror väl på var den brandväggen sitter?
Skriv svar