Section C.11. Security


C.11. Security

  1. Always protect the message and provide for message confidentiality and integrity.

  2. In an intranet, you can use transport security without message security as long as the protection level is set to EncryptAndSign.

  3. In an intranet, avoid impersonation. Set the impersonation level to TokenImpersonationLevel.Identification.

  4. When using impersonation, have the client use TokenImpersonationLevel.Impersonation.

  5. Use the declarative security framework and avoid manual configuration.

  6. Never apply the PrincipalPermissionAttribute directly on the service class:

     //Will always fail: [PrincipalPermission(SecurityAction.Demand,Role = "...")] public class MyService : IMyContract {...} 

  7. Avoid sensitive work that requires authorization at the service constructor.

  8. Avoid demanding a particular user, with or without demanding a role:

     //Avoid: [PrincipalPermission(SecurityAction.Demand,Name = "John")] public void MyMethod( ) {...} 

  9. Do not rely on role-based security in the client's callback operations.

  10. With Internet clients, always use message security.

  11. Allow clients to negotiate the service certification (the default).

  12. Use the ASP.NET providers for custom credentials.

  13. When developing a custom credentials store, develop it as an ASP.NET provider.

  14. Validate certificates using peer trust.




Programming WCF Services
Programming WCF Services
ISBN: 0596526997
EAN: 2147483647
Year: 2004
Pages: 148
Authors: Juval Lowy

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net