Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien
Toon posts:

[WCF] Authenticatie zonder Transport Security

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hallo,

Ik ben hier bezig met een WCF Service die een aantal functies ter beschikking heeft. Nu wil ik met <PrincipalPermission(SecurityAction.Demand, Role:="TESTGROEP")> boven mijn functie die ik wil beveiligen zeggen dat alleen gebruikers binnen de locale groep "TESTGROEP" voorkomen, deze functie uit kunnen voeren:

Visual Basic:
1
2
3
4
<PrincipalPermission(SecurityAction.Demand, Role:="TESTGROEP")> _
    Public Function GetData() As String Implements ISynopServiceContract.GetData
        Return "HELLO THERE"
    End Function


Mijn client gebruikt de volgende code om de username en password door te sturen naar de service:
Visual Basic:
1
2
mClientBase.ClientCredentials.UserName.UserName = "username"
mClientBase.ClientCredentials.UserName.Password = "password"


Op dit moment probeer ik dit toe te passen via een wsHttpBinding, maar dit zal waarschijnlijk iets anders moeten zijn. Iemand een idee hoe ik mij kan authenticeren via username/password op een WCF service zonder enige security in het transport van de gegevens. Dus geen SSL en certificaten, maar gewoon via HTTP. Ik wil dus geen certificaten maken. Bij mij gaat het niet om een beveiliging in het transport van de gegevens, maar in het gebruik van de functies. En deze service wordt gebruikt binnen een Intranet omgeving. Iemand een idee?

Ook moet de Binding ondersteuning hebben van sessions. BasicHttpBinding heeft deze ondersteuning niet naar mijn mening.

  • Niemand_Anders
  • Registratie: Juli 2006
  • Laatst online: 09-07-2024

Niemand_Anders

Dat was ik niet..

Hoe je impersonation kunt toepassen op WFC services is allemaal te lezen in de MSDN documentatie. Path in MSDN: Microsoft Communication Foundation --> Basic WFC Programming --> Configuring Services --> Securing Services --> Howto: Impersonate a client on a service.

Ofwel RTFM! Je had ook google kunnen gebruiken: Impersonate client WCF service derde resultaat!

Overigens gaat het programmeren van WFC/WPF applicaties een stuk eenvoudiger met Visual Studio 2008 Beta 2 welke gratis is te downloaden vanaf de Microsoft website.

If it isn't broken, fix it until it is..


Verwijderd

Topicstarter
Niemand_Anders schreef op vrijdag 26 oktober 2007 @ 08:55:
Hoe je impersonation kunt toepassen op WFC services is allemaal te lezen in de MSDN documentatie. Path in MSDN: Microsoft Communication Foundation --> Basic WFC Programming --> Configuring Services --> Securing Services --> Howto: Impersonate a client on a service.

Ofwel RTFM! Je had ook google kunnen gebruiken: Impersonate client WCF service derde resultaat!

Overigens gaat het programmeren van WFC/WPF applicaties een stuk eenvoudiger met Visual Studio 2008 Beta 2 welke gratis is te downloaden vanaf de Microsoft website.
Ja ik heb hier ook over nagedacht, maar ik wil per se handmatig in mijn client een username en password kunnen meegeven aan de service. Ik wil niet op basis van de ingelogde gebruikersgegevens van de client werken.

Iemand een idee of hoe ik sessions kan toepassen bij BasicHttpBinding? Ik wil dat elke client een soort sessie id krijgt en dus niet per client call. Dus ik wil niet dat één client een unieke sessie krijgt per call, maar juist één sessie voor alle calls van de client.

  • Niemand_Anders
  • Registratie: Juli 2006
  • Laatst online: 09-07-2024

Niemand_Anders

Dat was ik niet..

PrincipalPermission werkt op windows niveau. Maar er zijn wel andere mogelijkheden, welke ook eveneens in de MSDN zijn beschreven. WFC Feature Details --> Security --> How to: Use the ASP.NET Membership Provider. De MSDN WFC Documentatie heeft denk ik leesvoer voor ruim een week. Daarnaast raad ik je ook aan om Extending WFC te lezen. In dat hoofdstuk staat voorbeelden hoe je custom credentials, token en authorization classes kunt schrijven en toepassen.

Waarom gebruik je uberhaupt een HttpBinding, want HTTP is per definitie een stateless protocol. Waarom maak je niet gebruik van de NetTcpBinding?

If it isn't broken, fix it until it is..