1 azure ™ services platform microsoft.net services a closer look clemens vasters technical lead...

38
1 Azure Services Platf Microsoft .NET Services A Closer Look Clemens Vasters Technical Lead Microsoft Corporation

Upload: cathleen-bryant

Post on 17-Jan-2016

215 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 1 Azure ™ Services Platform Microsoft.NET Services A Closer Look Clemens Vasters Technical Lead Microsoft Corporation

1

Azure™ Services Platform

Microsoft .NET ServicesA Closer Look

Clemens VastersTechnical LeadMicrosoft Corporation

Page 2: 1 Azure ™ Services Platform Microsoft.NET Services A Closer Look Clemens Vasters Technical Lead Microsoft Corporation

What is a Service Bus?Connectivity ChallengesNamingService Registry and DiscoveryMessaging, Connectivity and Events

Agenda

Page 3: 1 Azure ™ Services Platform Microsoft.NET Services A Closer Look Clemens Vasters Technical Lead Microsoft Corporation

Internet Service Bus

Service Orchestration

Service Registry

NamingFederated Identity and

Access Control Messaging Fabric

Clients MS/3rd Party ServicesOn-Premise ESB

ESBDesktop, RIA, Web

Desktop, RIA, & Web

Your Services

Page 4: 1 Azure ™ Services Platform Microsoft.NET Services A Closer Look Clemens Vasters Technical Lead Microsoft Corporation

IPv4 Address ShortageDynamic IP address allocationNetwork Address Translation (NAT)

Internet is pwn3d by the bad guysFirewalls layered over firewalls over firewalls

Connectivity Challenges

Sender Receiver?Machine Firewall

Network FirewallNetwork Address Translation

Dynamic IP

Page 5: 1 Azure ™ Services Platform Microsoft.NET Services A Closer Look Clemens Vasters Technical Lead Microsoft Corporation

Dynamic DNSNAT Port Mappings / UPnPOpen Inbound Firewall Ports

How Do People Deal With It?

Sender Receiver?Machine Firewall

Network FirewallNetwork Address Translation

Dynamic IP

Brittle, Difficult, Insecure – and sometimes – Impractical Consequence: We see recurring patterns of workarounds

Page 6: 1 Azure ™ Services Platform Microsoft.NET Services A Closer Look Clemens Vasters Technical Lead Microsoft Corporation

Any Instant Messaging/Communication App

Access Control, Relay, Direct ConnectAny Multiplayer Game

Access Control, Relay, Direct ConnectAny Home Media Integration System

Access Control, Relay, Direct ConnectAny Enterprise Integration System

Access Control, VPN/VAN

Who needs it?

Page 7: 1 Azure ™ Services Platform Microsoft.NET Services A Closer Look Clemens Vasters Technical Lead Microsoft Corporation

Service Bus – Naming

Service Registry

NamingFederated

Identity and Access Control

Messaging Fabric

Page 8: 1 Azure ™ Services Platform Microsoft.NET Services A Closer Look Clemens Vasters Technical Lead Microsoft Corporation

Service Bus Naming

Federated, hierarchical, DNS-integrated, transport-neutral naming system

Root

Solution

Solution

Solution

NameB

NameC

Name1

Name2

Name3

NameA

Page 9: 1 Azure ™ Services Platform Microsoft.NET Services A Closer Look Clemens Vasters Technical Lead Microsoft Corporation

9

Anything wrong with DNS?

DNS has some practical constraints:High update propagation latencyIncreasing pollution by ISPs (“DNS assistance”)Names hosts, not servicesLimited write-access model (often out-of-band)

Service Bus Naming SystemR/W access with access control via RegistryUpdates reflected instantaneouslyNames name endpoints, not machines

Page 10: 1 Azure ™ Services Platform Microsoft.NET Services A Closer Look Clemens Vasters Technical Lead Microsoft Corporation

10

Canonical Form of URI Projectionsscheme://naming-scope/name/name

Root

X

Y

Z

B

C

1

2

3

A

URI ‘Host’: Naming AuthorityURI ‘Path’: Federated Name Structure

Page 11: 1 Azure ™ Services Platform Microsoft.NET Services A Closer Look Clemens Vasters Technical Lead Microsoft Corporation

11

Global Naming Structure (PDC)

scheme://servicebus.windows.net/services/solution/name/…

Root SBWN services

solution

2

3

name

Required Prefix

Page 12: 1 Azure ™ Services Platform Microsoft.NET Services A Closer Look Clemens Vasters Technical Lead Microsoft Corporation

Global Naming Structure (Post-PDC)

Root

Solution

Solution

Solution

NameB

NameC

Name1

Name2

Name3

NameA

scheme://solution.servicebus.windows.net/name/…

Page 13: 1 Azure ™ Services Platform Microsoft.NET Services A Closer Look Clemens Vasters Technical Lead Microsoft Corporation

Service Bus – Service Registry

Service Registry

NamingFederated

Identity and Access Control

Messaging Fabric

Page 14: 1 Azure ™ Services Platform Microsoft.NET Services A Closer Look Clemens Vasters Technical Lead Microsoft Corporation

14

Service Registry

The service registry is registry for service endpoints, not a general purpose directoryRegistry is layered over the naming systemProvides programmatic access to naming

Discover: Atom 1.0 feed hierarchyPublish: Atom Publishing Protocol, WS-Transfer

Naming

Service RegistryClient

AtomPub

WS-Transfer

Page 15: 1 Azure ™ Services Platform Microsoft.NET Services A Closer Look Clemens Vasters Technical Lead Microsoft Corporation

15

Registry Feed Structure

Accessing the root registry feed for solutionshttp://servicebus.windows.net/services/solution/Root of a hierarchy of feeds

Naming Root SBWN services

svc

solution svc

solution

Client

AtomPub

WS-Transfer

Page 16: 1 Azure ™ Services Platform Microsoft.NET Services A Closer Look Clemens Vasters Technical Lead Microsoft Corporation

Services in Registry Feeds<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:wsa="http://www.w3.org/2005/08/addressing"> <title>Title</title> <link href="http://connect.biztalk.net/services/my/svc" rel="self"/> <id>urn:uuid:82a76c80-d498-12d5-b91C-0103839e0ef6</id> … <entry> <title>MyEndpoint</title> <link href="http://cbn/services/my/svc/ep1"/> <id>urn:uuid:1225c695-cfb8-4ebb-aaaa-80da344efa6a</id> <wsa:EndpointReference> <wsa:Address> http://servicebus.windows.net/services/my/svc/ep1 </wsa:Address> </wsa:EndpointReference> </entry> </feed>

Page 17: 1 Azure ™ Services Platform Microsoft.NET Services A Closer Look Clemens Vasters Technical Lead Microsoft Corporation

17

.NET Service Bus Registry

demo

Page 18: 1 Azure ™ Services Platform Microsoft.NET Services A Closer Look Clemens Vasters Technical Lead Microsoft Corporation

Service Bus – Messaging

Service Registry

NamingFederated

Identity and Access Control

Messaging Fabric

Page 19: 1 Azure ™ Services Platform Microsoft.NET Services A Closer Look Clemens Vasters Technical Lead Microsoft Corporation

Primary Programming Model: WCFFamily of Bindings for the Service Bus

Service Bus - Messaging

Corresponding WCF Binding Service Bus Relay Binding

BasicHttpBinding BasicHttpRelayBinding

WebHttpBinding WebHttpRelayBinding

WSHttpBinding WSHttpRelayBinding

WS2007HttpBinding WS2007HttpRelayBinding

WSHttpContextBinding WSHttpRelayContextBinding

WS2007HttpFederationBinding WS2007HttpRelayFederationBinding

NetTcpBinding NetTcpRelayBinding

NetTcpContextBinding NetTcpRelayContextBinding

n/a [loosely related to NetMsmqBinding] NetOnewayRelayBinding

n/a [loosely related to NetTcpPeerBinding] NetEventRelayBinding

Page 20: 1 Azure ™ Services Platform Microsoft.NET Services A Closer Look Clemens Vasters Technical Lead Microsoft Corporation

Works just like WCF:Envelopes: SOAP 1.1, SOAP 1.2, NoneAll WS-* end-to-end security scenariosTransport-level message path protection (SSL)Reliable Messaging, StreamingFull Extensibility ModelWeb programming model (WebGet/-Invoke)Metadata Exchange

Not supported:(By Design) Atomic Transaction Flow(By Design) Protocol-level transport authentication(PDC Issue) WebScriptingBehavior JavaScript proxy(PDC Issue) Direct Tcp Modes with RM or WS-* Sec.

WCF Relay Bindings For WCF Pros

Page 21: 1 Azure ™ Services Platform Microsoft.NET Services A Closer Look Clemens Vasters Technical Lead Microsoft Corporation

NetOnewayRelayBinding

Service Bus

Sender Receiver

sb://servicebus.windows.net/services/solution/a/b/

outb

ound

conn

ect o

ne-w

ay n

et.tc

p TCP/SSL 828

BackendNamingRoutingFabric

Frontend Nodes

TCP/SSL 808/828

outbound connect bidi socket

Msg Msg

NATFirewallDynamic IP

SubscribeRoute

NLB

Page 22: 1 Azure ™ Services Platform Microsoft.NET Services A Closer Look Clemens Vasters Technical Lead Microsoft Corporation

NetEventRelayBinding

Service Bus

Sender Receiver

sb://servicebus.windows.net/services/solution/a/b/

outbound connect bidi socketoutb

ound

conn

ect o

ne-w

ay n

et.tc

p TCP/SSL 828

BackendNamingRoutingFabric

Frontend Nodes

TCP/SSL 808/828

Msg Msg

SubscribeRoute

Receiver

outbound connect bidi socketTCP/SSL

828

Msg

Page 23: 1 Azure ™ Services Platform Microsoft.NET Services A Closer Look Clemens Vasters Technical Lead Microsoft Corporation

23

One-Way Messaging and Events

demo

Page 24: 1 Azure ™ Services Platform Microsoft.NET Services A Closer Look Clemens Vasters Technical Lead Microsoft Corporation

NetTcpRelayBinding / Relayed

Service Bus

Sender Receiver

sb://servicebus.windows.net/services/solution/a/b/BackendNamingRoutingFabric

Frontend Nodes

Ctrl

1

2

3

4

Socket-SocketForwarderoutbound

socke

t

connect

outbound socket

rendezvous

Ctrl

TCP/SSL 818

OnewayRendezvous

Ctrl Msg

NLB

Page 25: 1 Azure ™ Services Platform Microsoft.NET Services A Closer Look Clemens Vasters Technical Lead Microsoft Corporation

NetTcpRelayBinding / Hybrid

Service Bus

Sender Receiver

sb://servicebus.windows.net/services/solution/a/b/BackendNamingRoutingFabric

Frontend Nodes

Ctrl

rela

yed

conn

ect

OnewayRendezvous

Ctrl Msg

relayed

rendezvous

TCP/SSL 818, 819

NAT

Prob

ing NAT

Probing

NAT Traversal Connection

upgr

ade

upgrade

Page 26: 1 Azure ™ Services Platform Microsoft.NET Services A Closer Look Clemens Vasters Technical Lead Microsoft Corporation

26

TCP-based Connections

demo

Page 27: 1 Azure ™ Services Platform Microsoft.NET Services A Closer Look Clemens Vasters Technical Lead Microsoft Corporation

[WS|Basic|Web]HttpRelayBinding

Service Bus

Sender Receiver

sb://servicebus.windows.net/services/solution/a/b/BackendNamingRoutingFabric

Frontend Nodes

Ctrl

1

2

3

4

HTTP-SocketForwarder

HTTP

HTTPS

request

outbound socket

rendezvous

Ctrl

HTTP/S80/443

OnewayRendezvous

Ctrl Msg

NLB

Page 28: 1 Azure ™ Services Platform Microsoft.NET Services A Closer Look Clemens Vasters Technical Lead Microsoft Corporation

28

HTTP Based Connections

demo

Page 29: 1 Azure ™ Services Platform Microsoft.NET Services A Closer Look Clemens Vasters Technical Lead Microsoft Corporation

Service Bus – Access Control Integration

Service Registry

NamingFederated

Identity and Access Control

Messaging Fabric

Page 30: 1 Azure ™ Services Platform Microsoft.NET Services A Closer Look Clemens Vasters Technical Lead Microsoft Corporation

30

Receiver

Access Control

STS

Service BusRelay

RST/RSTR

AcTk

Token Header

AcTk

#Listen

Relay Access Control Model - ListenerAcquire

Access Token#Listen

Pass Access Token with

Subscription

1

2

Token Evaluated

3

Page 31: 1 Azure ™ Services Platform Microsoft.NET Services A Closer Look Clemens Vasters Technical Lead Microsoft Corporation

31

ReceiverSender

Access Control

STS

RST/RSTR

Service BusRelay

AcTk

Token Header

AcTk

#Send

Relay Access Control Model - SenderAcquire

Access Token#Send

Pass Access Token with Message

Token Evaluated and

Removed

Message Passed on to

Receiver

1

23

4

Page 32: 1 Azure ™ Services Platform Microsoft.NET Services A Closer Look Clemens Vasters Technical Lead Microsoft Corporation

32

Integrated Access Control

Access Control Governed by RulesManaged in the Access Control ServiceServices must be authorized to listen in namespaceEvaluation of all claims in the cloudNo notion of “identity” in the relayed service

Service can turn off client access controlLocal evaluation of end-to-end claimsFull control over authN/Z model (but less protection)

Clean composition w/ standard SOAP/HTTP model

WS-Security Header reserved for E2E Message SecurityTransparent to HTTP-Header AuthN/AuthZ schemes

Page 33: 1 Azure ™ Services Platform Microsoft.NET Services A Closer Look Clemens Vasters Technical Lead Microsoft Corporation

33

.NET Access Control

demo

Page 34: 1 Azure ™ Services Platform Microsoft.NET Services A Closer Look Clemens Vasters Technical Lead Microsoft Corporation

34

Notes on Security

We encourage you to hide your payloadsUse WS-Security to protect end-to-end pathYou own all keys used to protect payloads

Transport securitySSL channels terminate in the Service BusSocket connections relayed on-machineOneway/Event relayed on backend fabric

What do we look at in the Service Bus?SOAP: Action/wsa:Action, wsa:To, wsa:ActionHTTP: Method, URIAccess Tokens

Page 35: 1 Azure ™ Services Platform Microsoft.NET Services A Closer Look Clemens Vasters Technical Lead Microsoft Corporation

Service Bus – Workflow Integration

Service Registry

NamingFederated

Identity and Access Control

Messaging Fabric

Workflow

Page 36: 1 Azure ™ Services Platform Microsoft.NET Services A Closer Look Clemens Vasters Technical Lead Microsoft Corporation

36

.NET Workflow Services

demo

Page 37: 1 Azure ™ Services Platform Microsoft.NET Services A Closer Look Clemens Vasters Technical Lead Microsoft Corporation

37

Q & A

Page 38: 1 Azure ™ Services Platform Microsoft.NET Services A Closer Look Clemens Vasters Technical Lead Microsoft Corporation

38

Summary

Pervasive, Secure Connectivity for ServicesSecure NAT Traversal, “DMZ in the sky”

WCF-Integrated Programming Model