web services security with visual studio 2005 muhammad saqib ilyas [email protected]

19
Web Services Security with Visual Studio 2005 Muhammad Saqib Ilyas [email protected]

Upload: moris-morgan

Post on 18-Jan-2016

217 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Web Services Security with Visual Studio 2005 Muhammad Saqib Ilyas muhammad.saqib@ineta.org

Web Services Security with Visual Studio 2005

Muhammad Saqib Ilyas

[email protected]

Page 2: Web Services Security with Visual Studio 2005 Muhammad Saqib Ilyas muhammad.saqib@ineta.org

Speaker.Bio.ToString()

• Assistant Professor, N.E.D. University

• Country Leader, INETA Pakistan

• MVP

• IEEE Student Branch Counselor

• Secretary/Treasurer IEEE Communications Society, Karachi Chapter

• Member IEEE Karachi Section Executive Committee

Page 3: Web Services Security with Visual Studio 2005 Muhammad Saqib Ilyas muhammad.saqib@ineta.org

Agenda

• Indigo programming model

• Sample code

• Indigo security model

• Sample code

Page 4: Web Services Security with Visual Studio 2005 Muhammad Saqib Ilyas muhammad.saqib@ineta.org

Indigo

• What is indigo?

• Next generation distributed application development tools

Page 5: Web Services Security with Visual Studio 2005 Muhammad Saqib Ilyas muhammad.saqib@ineta.org

Model

Service

EP1

EP2

MetadataNetw

ork

ConsumerEP

Page 6: Web Services Security with Visual Studio 2005 Muhammad Saqib Ilyas muhammad.saqib@ineta.org

Indigo components

• Network

• Service

• Consumer

• Endpoint (the only way to get to a service)

• No need to share

• Metadata defines endpoints

Page 7: Web Services Security with Visual Studio 2005 Muhammad Saqib Ilyas muhammad.saqib@ineta.org

ABC of Indigo

• Address – How do you get to the endpoint (transport dependent)

• Binding – controls transport, encoding and protocols (can evolve)

• Contract – specification of operations and messages

Page 8: Web Services Security with Visual Studio 2005 Muhammad Saqib Ilyas muhammad.saqib@ineta.org

Obtaining Indigo

• Download and install, “Avalon and Indigo Beta 1 RC”

• Install Visual Studio 2005 Beta 2

• Install WinFX SDK

• Add reference to System.ServiceModel.dll

• using System.ServiceModel

Page 9: Web Services Security with Visual Studio 2005 Muhammad Saqib Ilyas muhammad.saqib@ineta.org

Indigo programming model

• Services can be:– self hosted– Hosted in IIS– WAS

• Use [ServiceContract] attribute with contract definition

• Use [OperationContract] attribute with contract implementation

Page 10: Web Services Security with Visual Studio 2005 Muhammad Saqib Ilyas muhammad.saqib@ineta.org

Indigo programming model

• BasicProfileBinding – Legacy XML Web Services

• ServiceHost<> • AddEndPoint()• Open()• Iterate ServiceEndPoints• ChannelFactory<>• CreateChannel()• Close() on ChannelFactory and ServiceHost

Page 11: Web Services Security with Visual Studio 2005 Muhammad Saqib Ilyas muhammad.saqib@ineta.org

Indigo security

• Indigo security:– Secures message exchange between entities– Secures access to resources by entities– Records requests to resources by entities

Page 12: Web Services Security with Visual Studio 2005 Muhammad Saqib Ilyas muhammad.saqib@ineta.org

Entity, Resources

• Entity: a software, a person etc

• Resource: something to do something with

• Credentials are used to achieve the goals

Page 13: Web Services Security with Visual Studio 2005 Muhammad Saqib Ilyas muhammad.saqib@ineta.org

Credential

• Claims– Information about an entity– Used for controlling access to resources

• Issuer– Certifies claims about an entity in the credentials

• Proof of possession– How an entity proves that it provided the claims– Used to secure message exchange

Page 14: Web Services Security with Visual Studio 2005 Muhammad Saqib Ilyas muhammad.saqib@ineta.org

Indigo goals

• Integrity– Signing messages– May use sender credentials

• Confidentiality– Encryption– Uses recipient credentials

Page 15: Web Services Security with Visual Studio 2005 Muhammad Saqib Ilyas muhammad.saqib@ineta.org

Secure by default

• Standard bindings are secure– Except for BasicProfileBinding

• Security mode:– Transport: underlying transport is secure– Message: WS-Security protocols

• Protection level– None– Sign (integrity)– Sign and encrypt (integrity + confidentiality)

Page 16: Web Services Security with Visual Studio 2005 Muhammad Saqib Ilyas muhammad.saqib@ineta.org

Resource access security

• Gates enforce security permissions

• Multiple supported security gates– Host (file or URL level)– Operation contract (message level)– Application resources

Page 17: Web Services Security with Visual Studio 2005 Muhammad Saqib Ilyas muhammad.saqib@ineta.org

Recording access

• Windows XP: application log

• Windows 2003: security log

• Not yet!

Page 18: Web Services Security with Visual Studio 2005 Muhammad Saqib Ilyas muhammad.saqib@ineta.org

Code

• using System.ServiceModel;

• using System.Security.Permissions;

• using System.Security.Principal;

• using System.Net.Security;

• using System.Security.Cryptography.X509Certificates;

Page 19: Web Services Security with Visual Studio 2005 Muhammad Saqib Ilyas muhammad.saqib@ineta.org

Links

• http://msdn.microsoft.com/webservices

• http://msaqib.blogspot.com

• http://www.saqibilyas.info

• MSDN Avalon