developing web services using asp.net and wse that interoperate with the windows communications...

26
Developing Web Services Developing Web Services Using ASP.NET and WSE Using ASP.NET and WSE That Interoperate with That Interoperate with the Windows the Windows Communications Communications Foundation ("Indigo") Foundation ("Indigo") Mark Fussell Mark Fussell COM432 COM432 Lead Program Manager Lead Program Manager Microsoft Corporation Microsoft Corporation

Upload: mariah-henry

Post on 16-Jan-2016

213 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Developing Web Services Using ASP.NET and WSE That Interoperate with the Windows Communications Foundation ("Indigo") Mark Fussell COM432 Lead Program

Developing Web Services Developing Web Services Using ASP.NET and WSE Using ASP.NET and WSE That Interoperate with the That Interoperate with the Windows Communications Windows Communications Foundation ("Indigo")Foundation ("Indigo")

Mark FussellMark FussellCOM432COM432Lead Program ManagerLead Program ManagerMicrosoft CorporationMicrosoft Corporation

Page 2: Developing Web Services Using ASP.NET and WSE That Interoperate with the Windows Communications Foundation ("Indigo") Mark Fussell COM432 Lead Program

2

AgendaAgenda

Interoperability between .NET Web Interoperability between .NET Web servicesservices

Build an ASP.NET Web service that is Build an ASP.NET Web service that is Basic Profile 1.1 (BP) CompliantBasic Profile 1.1 (BP) Compliant

Secure an ASP.NET Web service with Secure an ASP.NET Web service with WSE 3.0 using message securityWSE 3.0 using message security

Build WCF clients that interoperate Build WCF clients that interoperate with ASP.NET and WSE Web services with ASP.NET and WSE Web services using standard and custom bindingsusing standard and custom bindings

Page 3: Developing Web Services Using ASP.NET and WSE That Interoperate with the Windows Communications Foundation ("Indigo") Mark Fussell COM432 Lead Program

3

.NET Web Services.NET Web ServicesASP.NET Web services implementation in ASP.NET Web services implementation in the .NET Frameworkthe .NET Framework

Supports WS-I Basic Profile (BP) 1.1 for simple Supports WS-I Basic Profile (BP) 1.1 for simple services with metadata supportservices with metadata supportDoesn’t implement WS-* specificationsDoesn’t implement WS-* specifications

WSE is an add-on to the .NET FrameworkWSE is an add-on to the .NET FrameworkImplements several WS-* specsImplements several WS-* specsAdds message security to ASP.NET Web services Adds message security to ASP.NET Web services and supports the Basic Security Profile (BSP) 1.0and supports the Basic Security Profile (BSP) 1.0WSE 3.0 to be released in Q4 2005WSE 3.0 to be released in Q4 2005

Windows Communication Foundation (WCF) is Windows Communication Foundation (WCF) is the next-generation implementation of Web the next-generation implementation of Web servicesservices

Provides a unified programming model for WS-* Provides a unified programming model for WS-* protocols, messaging, queuing, transactions, etc.protocols, messaging, queuing, transactions, etc.

Page 4: Developing Web Services Using ASP.NET and WSE That Interoperate with the Windows Communications Foundation ("Indigo") Mark Fussell COM432 Lead Program

4

Web Services ArchitectureWeb Services ArchitectureASP.NET Web ServicesASP.NET Web Services

Foundation

Applications & ApplicationInfrastructure

Transports

Connected Applications Managemen

t

BusinessProcess

Security

Messaging

XML

Meta

data

HTTP

TCP Custom

Reliability

Transactions

Page 5: Developing Web Services Using ASP.NET and WSE That Interoperate with the Windows Communications Foundation ("Indigo") Mark Fussell COM432 Lead Program

5

.NET Framework v2.0 Web .NET Framework v2.0 Web ServicesServicesWS-I Basic Profile Conformance WS-I Basic Profile Conformance

WebServiceBinding attributeWebServiceBinding attribute

[WebServiceBinding(ConformsTo=WsiProfiles.BasicProfile1_1, [WebServiceBinding(ConformsTo=WsiProfiles.BasicProfile1_1, EmitConformanceClaims=true)]EmitConformanceClaims=true)][WebService(Namespace="Microsoft.PDC.WebServices")][WebService(Namespace="Microsoft.PDC.WebServices")]public class BPConformance_asmx public class BPConformance_asmx { { [WebMethod] [WebMethod] public string HelloWorldBP() public string HelloWorldBP() {{

string message = "'Hello World' from a Basic Profilestring message = "'Hello World' from a Basic Profile compliant (BP-compliant) Web Service.";compliant (BP-compliant) Web Service.";

return message;return message; }  }  }}

Page 6: Developing Web Services Using ASP.NET and WSE That Interoperate with the Windows Communications Foundation ("Indigo") Mark Fussell COM432 Lead Program

6

ASP.NET Web services and Basic ASP.NET Web services and Basic Profile (BP) ConformanceProfile (BP) Conformance

Page 7: Developing Web Services Using ASP.NET and WSE That Interoperate with the Windows Communications Foundation ("Indigo") Mark Fussell COM432 Lead Program

7

ASP.NET Web Services to ASP.NET Web Services to WCF Interoperability WCF Interoperability GuidanceGuidance

EmbraceEmbraceBasic Profile (BP) conformanceBasic Profile (BP) conformance

.NET 2.0 is BP conformant by default.NET 2.0 is BP conformant by default

Use SOAP 1.1Use SOAP 1.1

KISS - Keep Interoperable Schemas KISS - Keep Interoperable Schemas SimpleSimple

AvoidAvoidrpc/encoded as not BP compliantrpc/encoded as not BP compliant

SOAP Extensions - harder to migrateSOAP Extensions - harder to migrate

Page 8: Developing Web Services Using ASP.NET and WSE That Interoperate with the Windows Communications Foundation ("Indigo") Mark Fussell COM432 Lead Program

8

Web Services ArchitectureWeb Services ArchitectureWeb Services Enhancements (WSE) 2.0 and 3.0Web Services Enhancements (WSE) 2.0 and 3.0

Foundation

Applications & ApplicationInfrastructure

Transports

Connected Applications Managemen

t

BusinessProcess

Security

Reliability

Transactions

Messaging

XML

Meta

data

HTTP

TCP Custom

Page 9: Developing Web Services Using ASP.NET and WSE That Interoperate with the Windows Communications Foundation ("Indigo") Mark Fussell COM432 Lead Program

9

WSE 3.0 Turnkey Security WSE 3.0 Turnkey Security ScenariosScenariosBased on industry best practicesBased on industry best practices

UsernameOverCertificateUsernameOverCertificate

AnonymousOverCertificateAnonymousOverCertificate

UsernameOverTransportUsernameOverTransport

Kerberos (Windows)Kerberos (Windows)

MutualCertificate andMutualCertificate andCertificateMutualAuthenticationProfileCertificateMutualAuthenticationProfile

Page 10: Developing Web Services Using ASP.NET and WSE That Interoperate with the Windows Communications Foundation ("Indigo") Mark Fussell COM432 Lead Program

10

Example Turnkey Security Example Turnkey Security ScenarioScenarioUsername Credentials with Server Certificate for Username Credentials with Server Certificate for ProtectionProtection

Application Application ServerServer

InternetInternet IntranetIntranet

Authenticate Authenticate username/ username/ PasswordPassword

Confidential, signedConfidential, signedrequest using a client keyrequest using a client keyprotected with theprotected with theserver certificateserver certificate

Confidential, signedConfidential, signedresponse using response using the supplied client keythe supplied client key

Username/Password Username/Password for Authenticationfor Authentication

Page 11: Developing Web Services Using ASP.NET and WSE That Interoperate with the Windows Communications Foundation ("Indigo") Mark Fussell COM432 Lead Program

11

Securing a Web service using Securing a Web service using WSE 3.0 Security PolicyWSE 3.0 Security Policy

Page 12: Developing Web Services Using ASP.NET and WSE That Interoperate with the Windows Communications Foundation ("Indigo") Mark Fussell COM432 Lead Program

12

WSE 3.0: The Road to WCFWSE 3.0: The Road to WCFWire level interoperable with WCFWire level interoperable with WCF

Support for interoperable security scenariosSupport for interoperable security scenarios

WSE turnkey policy security assertions are WSE turnkey policy security assertions are aligned with WCF security bindingaligned with WCF security binding

WSE 3.0 runs side-by-WSE 3.0 runs side-by-

side with WCFside with WCF

Migration and interoperabilityMigration and interoperability

guidance will beguidance will be

provided from WSE 3.0 provided from WSE 3.0

to WCFto WCF

Page 13: Developing Web Services Using ASP.NET and WSE That Interoperate with the Windows Communications Foundation ("Indigo") Mark Fussell COM432 Lead Program

13

WSE to WCF Interoperability WSE to WCF Interoperability GuidanceGuidanceEmbraceEmbrace

The ASMX guidanceThe ASMX guidance

Use WSE 3.0 for wire level interoperability Use WSE 3.0 for wire level interoperability with WCFwith WCF

HTTP transportHTTP transport

Turnkey Security Scenarios and policy (WSE Turnkey Security Scenarios and policy (WSE 3.0)3.0)

MTOM (WSE 3.0)MTOM (WSE 3.0)

AvoidAvoidTCP transport for interoperabilityTCP transport for interoperability

Custom transportsCustom transports

DIME (WSE 2.0)DIME (WSE 2.0)

Page 14: Developing Web Services Using ASP.NET and WSE That Interoperate with the Windows Communications Foundation ("Indigo") Mark Fussell COM432 Lead Program

14

Web Services ArchitectureWeb Services ArchitectureWCF Web ServicesWCF Web Services

Foundation

Applications & ApplicationInfrastructure

Transports

Connected Applications …

Security

Reliability

Transactions

Messaging

XML

Meta

data

HTTP

TCP Custom

Management

Business Process

Page 15: Developing Web Services Using ASP.NET and WSE That Interoperate with the Windows Communications Foundation ("Indigo") Mark Fussell COM432 Lead Program

15

Address Binding Contract

Address, Binding, & Address, Binding, & ContractContract

ServiceServiceClientClient

EndpointEndpoint

EndpointEndpoint

EndpointEndpoint

EndpointEndpoint MessageMessage

Where? How? What?

A B C

A B C

A B C

A B C

Page 16: Developing Web Services Using ASP.NET and WSE That Interoperate with the Windows Communications Foundation ("Indigo") Mark Fussell COM432 Lead Program

16

WCF Security ModelWCF Security ModelCapabilitiesCapabilities

Secure Transfer of Secure Transfer of MessagesMessages

ConfidentialityConfidentiality

IntegrityIntegrity

AuthenticationAuthentication

Access Control for Access Control for resourcesresources

AuthorizationAuthorization

Audit Security EventsAudit Security Events

Programming levelsProgramming levelsSimple turnkey modelSimple turnkey model

Advanced custom modelAdvanced custom model

WSE 3.0WSE 3.0

WSE 3.0WSE 3.0

Page 17: Developing Web Services Using ASP.NET and WSE That Interoperate with the Windows Communications Foundation ("Indigo") Mark Fussell COM432 Lead Program

17

WCF Interoperable Standard WCF Interoperable Standard BindingsBindings

WCFWCF

BindingsBindings

SpecificationsSpecifications

.NET.NET

Web serviceWeb service

ImplementatioImplementationn

basicHttpBindinbasicHttpBindingg

SOAP 1.1SOAP 1.1

Basic Profile 1.1Basic Profile 1.1

WS-Security 1.0WS-Security 1.0

Basic Security Profile Basic Security Profile 1.01.0

MTOMMTOM

ASP.NET 1.1ASP.NET 1.1

ASP.NET 2.0ASP.NET 2.0

WSE 2.0WSE 2.0

WSE 3.0WSE 3.0

wsHttpBindingwsHttpBinding SOAP 1.2SOAP 1.2

WS-Security 1.1 (CR)WS-Security 1.1 (CR)

MTOMMTOM

WSE 3.0WSE 3.0

Page 18: Developing Web Services Using ASP.NET and WSE That Interoperate with the Windows Communications Foundation ("Indigo") Mark Fussell COM432 Lead Program

18

WSE to WCF Security WSE to WCF Security MappingMapping

WSE 3.0 Turnkey WSE 3.0 Turnkey Policy Security Policy Security AssertionsAssertions

WCF basicHttpBinding Security WCF basicHttpBinding Security ConfigurationConfiguration

UsernameOverTransportUsernameOverTransport<usernameOverTransportSecurit<usernameOverTransportSecurity />y />

<security <security mode="TransportWithMessageCredential">mode="TransportWithMessageCredential">

<message <message clientCredentialType=“Username"/>clientCredentialType=“Username"/>

</security></security>

CertificateMutualCertificateMutual

AuthenticationProfileAuthenticationProfile<CertificateMutualAuthenticatio<CertificateMutualAuthenticationn

ProfileSecurity />ProfileSecurity />

<security mode="Message"><security mode="Message">

<message <message clientCredentialType=“Certificate" clientCredentialType=“Certificate" negotiateServiceCredential="false"/>negotiateServiceCredential="false"/>

</security></security>

WCF standard bindings mapped to WCF standard bindings mapped to WSE policy security assertionsWSE policy security assertions

Page 19: Developing Web Services Using ASP.NET and WSE That Interoperate with the Windows Communications Foundation ("Indigo") Mark Fussell COM432 Lead Program

19

WSE 3.0 Turnkey WSE 3.0 Turnkey Policy Security Policy Security AssertionsAssertions

WCF wsHttpBinding Security WCF wsHttpBinding Security ConfigurationConfiguration

AnnonymousOverCertificatAnnonymousOverCertificatee <anonymousOverCertificateSecu<anonymousOverCertificateSecurity rity establishSecurityContext=“true“ establishSecurityContext=“true“ />/>

<security mode="Message"><security mode="Message">

<message <message clientCredentialType=“None" clientCredentialType=“None" negotiateServiceCredential="false"/>negotiateServiceCredential="false"/>

</security></security>

UsernameOverCertificateUsernameOverCertificate <usernameOverCertificateSecurit<usernameOverCertificateSecurity y establishSecurityContext=“true“ establishSecurityContext=“true“ />/>

<security mode="Message"><security mode="Message">

<message <message clientCredentialType=“UserName" clientCredentialType=“UserName" negotiateServiceCredential="false"/>negotiateServiceCredential="false"/>

</security></security>

Kerberos (Windows)Kerberos (Windows) <anonymousOverCertificateSecu<anonymousOverCertificateSecurity rity establishSecurityContext=“true“ establishSecurityContext=“true“ />/>

<security mode="Message"><security mode="Message">

<message <message clientCredentialType="Windows" clientCredentialType="Windows" negotiateServiceCredential="false"/>negotiateServiceCredential="false"/>

</security></security>

MutualCertificateMutualCertificate <mutualCertificateSecurity <mutualCertificateSecurity establishSecurityContext=“true“ establishSecurityContext=“true“ />/>

<security mode="Message"><security mode="Message">

<message <message clientCredentialType=“Certificate" clientCredentialType=“Certificate" negotiateServiceCredential="false"/>negotiateServiceCredential="false"/>

</security></security>

WSE to WCF Security WSE to WCF Security MappingMapping

Page 20: Developing Web Services Using ASP.NET and WSE That Interoperate with the Windows Communications Foundation ("Indigo") Mark Fussell COM432 Lead Program

20

Building WCF Clients for ASP.NET Building WCF Clients for ASP.NET and WSE 3.0 Web servicesand WSE 3.0 Web services

Page 21: Developing Web Services Using ASP.NET and WSE That Interoperate with the Windows Communications Foundation ("Indigo") Mark Fussell COM432 Lead Program

21

Turnkey Security Scenario Turnkey Security Scenario MappingMappingWSE 3.0 turnkey policy security WSE 3.0 turnkey policy security

assertions map to WCF custom assertions map to WCF custom security bindingssecurity bindings

<customBinding><customBinding> <binding name=“MyBinding"><binding name=“MyBinding"> <security <security authenticationMode=“UsernameForCertificate" authenticationMode=“UsernameForCertificate"

MessageProtectionOrder="SignBeforeEncrypt“MessageProtectionOrder="SignBeforeEncrypt“requireDerivedKeys="true”/>requireDerivedKeys="true”/>

</binding></binding></customBinding></customBinding>

<policies><policies> <policy name=“MyPolicy"><policy name=“MyPolicy"> <usernameForCertificateSecurity<usernameForCertificateSecurityprotectionOrder="SignBeforeEncrypt" protectionOrder="SignBeforeEncrypt" deriveKeys="true“/>deriveKeys="true“/> </policy></policy></policies></policies>

Page 22: Developing Web Services Using ASP.NET and WSE That Interoperate with the Windows Communications Foundation ("Indigo") Mark Fussell COM432 Lead Program

22

WCF Custom Security BindingWCF Custom Security Bindingand Custom WSE Bindingand Custom WSE Binding

Page 23: Developing Web Services Using ASP.NET and WSE That Interoperate with the Windows Communications Foundation ("Indigo") Mark Fussell COM432 Lead Program

23

SummarySummaryWrite connected applications today Write connected applications today and achieve interoperability for a and achieve interoperability for a lifetimelifetime

Download the WSE 3.0 Beta from Download the WSE 3.0 Beta from MSDNMSDN

http://msdn.microsoft.com/webservices/building/wse/

Install WinFx and Windows Vista Install WinFx and Windows Vista

Enjoy WSE 3.0 and WCF Hands on Enjoy WSE 3.0 and WCF Hands on LabsLabs

Page 24: Developing Web Services Using ASP.NET and WSE That Interoperate with the Windows Communications Foundation ("Indigo") Mark Fussell COM432 Lead Program

24

ResourcesResourcesmailto: [email protected]

blog: http://blogs.msdn.com/mfussell

Web services forum:http://forums.microsoft.com/msdn/

WS-Security roadmaphttp://msdn.microsoft.com/webservices/

understanding/gxa/default.aspx?pull=/library/en-us/dnwssecur/html/securitywhitepaper.asp

Page 25: Developing Web Services Using ASP.NET and WSE That Interoperate with the Windows Communications Foundation ("Indigo") Mark Fussell COM432 Lead Program

25

Your FeedbackYour Feedbackis Important!is Important!

Please Fill Out a SurveyPlease Fill Out a Survey

Page 26: Developing Web Services Using ASP.NET and WSE That Interoperate with the Windows Communications Foundation ("Indigo") Mark Fussell COM432 Lead Program

© 2005 Microsoft Corporation. All rights reserved.This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.