Toon posts:

[ASP.NET]Webservice beveiligen

Pagina: 1
Acties:

Verwijderd

Topicstarter
Binnenkort begint de test-fase van mijn web-applicatie.
Het enige dat ik nog moet doen is er voor zorgen dan mijn web-service enkel toegankelijk is door de applicatie.
Tot nu toe is die web-service nog voor iedereen toegankelijk wat natuurlijk een veiligheids-risico is.

Ik zocht al op alle manieren die ik ken naar hoe ik kan beveiligen en vond volgende oplossingen:
- Beveiligen met Windows-account: onmogelijk wat ik heb geen windows-account op de server
- Beveiligen met SOAP: vraagt veel aanpassing aan alle webmethods dus niet echt bruikbaar
- Een resem opties waar ik niets van snap.

Ik zou liefst van al gewoon de toegang beperken tot mijn web-applicatie. Dus er voor zorgen (via web.config bv.) dat enkel mijn web-applicatie de web-service kan gebruiken (via de URL van de web-applicatie oid). Hierover vond ik wel een paar reply's in GoT-topics maar nergens echt uitleg hoe dat in zijn werk ging.

Als dit niet mogelijk is:
Ik wil mijn web-service beveiligen zodat niet iedereen ervan gebruik kan maken. Ik doe dit liefst met zo weinig mogelijk aanpassing van mijn bestaande codering.

  • Gerco
  • Registratie: Mei 2000
  • Laatst online: 08-05 18:46

Gerco

Professional Newbie

Je zou een "unlock" functie in je API kunnen bouwen. Tot een bepaalde client de API unlocked heeft doen je methods gewoon niets. Geen idee of je kunt zien welk IP de client heeft (of een andere unieke identifier), maar als je dat kan zien, kun je zoiets toepassen.

code:
1
public boolean Unlock(String password){}

en in al je functies:
code:
1
2
3
public void DoSomething() {
  if(!_unlocked) return;
}

[ Voor 27% gewijzigd door Gerco op 16-04-2005 16:59 ]

- "Als ik zou willen dat je het begreep, legde ik het wel beter uit!" | All number systems are base 10!


  • whoami
  • Registratie: December 2000
  • Laatst online: 01:02
Je kan toch in je web.config gaan opgeven welke users of roles er jouw webservice kunnen gebruiken ?

Iedereen mag toegang hebben:
code:
1
2
3
4
5
<system.web>
   <authorization>
      <allow users="*"/>
   </authorization>
</system.web>


bv.

Je kan ook specifieren dat jouw web-service onderhevig is aan 'forms authentication', en je kan ook in je web.config dan opgeven dat enkel bepaalde roles die web-service mogen gebruiken, of enkel geauthenticeerde users, etc....

https://fgheysels.github.io/


Verwijderd

Topicstarter
whoami schreef op zaterdag 16 april 2005 @ 17:13:
Je kan toch in je web.config gaan opgeven welke users of roles er jouw webservice kunnen gebruiken ?

Iedereen mag toegang hebben:
code:
1
2
3
4
5
<system.web>
   <authorization>
      <allow users="*"/>
   </authorization>
</system.web>


bv.

Je kan ook specifieren dat jouw web-service onderhevig is aan 'forms authentication', en je kan ook in je web.config dan opgeven dat enkel bepaalde roles die web-service mogen gebruiken, of enkel geauthenticeerde users, etc....
Ja, ik stond ook stil bij dit idee maar kwam met 2 problemen.
1. Het inloggen op mijn webapp loopt ook via de webservice dus moet er voor iedereen toegang toe zijn (anders kan je niet inloggen)

Dit ging ik oplossen door het inloggen in een andere webservice te plaatsen die wel door iedereen toegankelijk is. Maar dan komt het ander probleem:
2. Als ik inlog op mijn webapplicatie dan maakt hij daar een cookie voor aan waardoor je een geauthorizeerd persoon wordt voor de web app. Dat betekend dat <deny users = "?" /> in de web.config van mijn web app je niet meer tegenhoudt.
Mijn webservice zit echter in een andere map met een aparte web.config. Ik veronderstel dat ik ten opzichte van die web.config nog wel een unauthorized user blijf en dus geen toegang zou krijgen tot de webservice, ook al ben ik ingelogd op de web app.

  • whoami
  • Registratie: December 2000
  • Laatst online: 01:02
Verwijderd schreef op zaterdag 16 april 2005 @ 17:20:
[...]

1. Het inloggen op mijn webapp loopt ook via de webservice dus moet er voor iedereen toegang toe zijn (anders kan je niet inloggen)
Waarom doe je dat ? Ik zie er het nut niet echt van in.
2. Als ik inlog op mijn webapplicatie dan maakt hij daar een cookie voor aan waardoor je een geauthorizeerd persoon wordt voor de web app. Dat betekend dat <deny users = "?" /> in de web.config van mijn web app je niet meer tegenhoudt.
Mijn webservice zit echter in een andere map met een aparte web.config. Ik veronderstel dat ik ten opzichte van die web.config nog wel een unauthorized user blijf en dus geen toegang zou krijgen tot de webservice, ook al ben ik ingelogd op de web app.
Hmm, ik ga ff spelen / testen.
Echter, zou je dit dan niet kunnen oplossen door met passport authentication te werken ?

[ Voor 7% gewijzigd door whoami op 16-04-2005 17:27 ]

https://fgheysels.github.io/


Verwijderd

Topicstarter
whoami schreef op zaterdag 16 april 2005 @ 17:24:
Echter, zou je dit dan niet kunnen oplossen door met passport authentication te werken ?
Dit is wel een mogelijke oplossing [b]op voorwaarde dat[\b] je je passport 1x moet opgeven als je de webservice wil referencen en daarna nooit meer. Dan geef ik bij het maken van mijn applicatie mijn eigen passport op en beveilig ik zo de webservice voor eigen gebruik.(Ook hierover kan ik niet veel in de MSDN vinden)

  • joopst
  • Registratie: Maart 2005
  • Laatst online: 01-10-2024
wse biedt mogelijkheden om je webservice te beveiligen. http://msdn.microsoft.com...620-bba7-59c5b2f2191d.asp

hiermee maak je een schil om je huidige web-methods heen. De signature van je methods blijft gelijk waardoor de totale hoeveelheid werk beperkt blijft :)
Pagina: 1