Results 1 to 4 of 4

Thread: Remoting and ACL

  1. #1
    Join Date
    May 2008
    Posts
    5

    Default Remoting and ACL

    Hello,
    I'm just learning how to make remoting services with .Net and Spring.Net. The dark point which I'm digging is how to implements security access.

    Here is the initial schema off my architecture :
    - each client has got x509 certificate.
    - on servers remote services are exposed with IIS6 over http+SSL.

    Now I would like to define each remote services access using x509 certificate, like certificate A & B could use service S1, certificate B could use service S2, ...

    I think with IIS6 I can authorize a global access for certificates, but how to define authorization by services ?
    And inside a service, how can I define mdethod authorization by certificate ?

    Do you have solution, idea or links about that ?
    Thanks a lot
    Cyrille.

  2. #2
    Mark Pollack is offline Spring.NET Co-Lead Spring TeamSpring User
    Join Date
    Sep 2004
    Location
    New York, NY
    Posts
    1,683

    Default

    Hi,

    It seems you can get most, if not all, of what you want using features that were introduced to remoting in .NET 2.0. If you set up mutual authentication then the client identity will be transfered to the server.

    Here are some relevant msoft links,

    http://msdn.microsoft.com/msdnmag/is...6/NETRemoting/

    http://msdn.microsoft.com/en-us/library/4e1k4t2s(VS.85).aspx

    You can get code for the latter by typing

    ms-help://MS.VSCC.v80/MS.MSDN.v80/MS.VisualStudio.v80.en/dv_fxsamples/html/31db1897-b551-42e6-bd53-0852a68adc08.htm

    into vs.net help.

    You might even be able to use the PrincipalPermission attribute like so

    Code:
    class RemotedObject
    {
        [PrincipalPermission(SecurityAction.Demand, Role="Important")]
        void MeaningfulStuff() { ... }
    }
    See this post for some info on getting that to work.

    In case you can't get the PrincipalPermission attribute working, you can create your own AOP advice to use information contained in Thread.CurrentPrincipal.Identity or Thread.CurrentPrincipal. You can introduce Spring Security (Java) style attribute [Secured("ROLE1,ROLE2")] and have the AOP advice be based on the information in that attribute or one could even have the custom AOP advice use the standard PrincipalPermission attribute.

    I've attached another sample I found while researching the topic. That might be of use, as well as a few other links: Secure Remoting Configuration Settings, .NET Remoting in non-domain enviroments, New Security Features in .NET 2.0.

    If you need help on authoring the AOP advice, don't hesitate to ask. Let me know how it goes.

    Cheers,
    Mark
    Attached Files Attached Files

  3. #3
    Mark Pollack is offline Spring.NET Co-Lead Spring TeamSpring User
    Join Date
    Sep 2004
    Location
    New York, NY
    Posts
    1,683

    Default

    Hi,

    All that said, you might want to look into using WCF, as it is much more developed/supported for this type of scenario. Here is an intro article to get you started on the topic.

    Cheers,
    Mark

  4. #4
    Join Date
    May 2008
    Posts
    5

    Default

    Thanks a lot Mark,
    I will read all that docs and coming back ;-)

    Best regards
    Cyrille.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •