uma introdução ao azure appfabric

38
Uma introdução ao Azure AppFabric ARC204 P edro Félix CCISEL [email protected]

Upload: braith

Post on 22-Mar-2016

58 views

Category:

Documents


0 download

DESCRIPTION

ARC204. Pedro Félix. CCISEL [email protected]. Uma introdução ao Azure AppFabric. Azure AppFabric. Set of services Service Bus (SB) Access Control Service (ACS) Running in the cloud Based on Windows Azure Platform Providing - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Uma introdução ao  Azure AppFabric

Uma introdução ao Azure AppFabric

ARC204

Pedro Fé[email protected]

Page 2: Uma introdução ao  Azure AppFabric

4

Azure AppFabric

• Set of services• Service Bus (SB)• Access Control Service (ACS)

• Running in the cloud• Based on Windows Azure Platform

• Providing• SB : Service Connectivity, Addressability and Discoverability• ACS : Service Access Control

Page 3: Uma introdução ao  Azure AppFabric

Service Bus

Page 4: Uma introdução ao  Azure AppFabric

6

A Scenario

CloudTrack.

FabrikamContoso

Create/view issuesView/manage issues

• Issue Tracker web app.• Cloud-based• Multi-tenant

Page 5: Uma introdução ao  Azure AppFabric

7

Connectivity challenges

CloudTrack.Notify new issue

Fetch trace data

FW, NAT, …FW, NAT, …

Create new issue

Page 6: Uma introdução ao  Azure AppFabric

8

Challenges

• Addressability and discoverability• Private addresses and Network Address Translation (NAT)• Dynamic addresses (e.g. ISP)

• Connectivity• Firewalls (denial of inbound connections)• Event distribution• Transient connectivity

Page 7: Uma introdução ao  Azure AppFabric

9

Service Bus

outbound inbound

address?

Page 8: Uma introdução ao  Azure AppFabric

10

Service Bus“All problems in computer science can be solved by another level of indirection”

Butler Lampson

inboundService Busoutbound

Page 9: Uma introdução ao  Azure AppFabric

11

Connectivity and addressability

outboundService Bus

• Relay• Service “listens” on the SB via outbound connection• Client “sends” to the SB• SB relays between client and service

sendspublic address

listens

Page 10: Uma introdução ao  Azure AppFabric

12

Naming and discovery

outboundService Bus

• Naming• Service is exposed via a public name• Local DNS binds these public names to IP addresses• Local registry describes available public names

outboundpublic name

RegistryDNS

sends listens

Page 11: Uma introdução ao  Azure AppFabric

13

Naming and discovery• Naming

• Public service namespaces• One Azure project – multiple service namespaces• {scheme}://{namespace}.servicebus.windows.net/{relpath}

• Registry• Mapping between URIs and services• Readable via HTTP+ATOM

Page 13: Uma introdução ao  Azure AppFabric

15

Buffering

outbound

• Buffering• One-way messaging• Temporal decoupling

outboundpublic name

sends listens

Page 14: Uma introdução ao  Azure AppFabric

16

Eventing (pub-sub)

outboundService Bus

• Eventing – multicast• One-way messages• Multiple listeners• Message distribution - multicast

outbound

outbound

sends listens

listens

Page 16: Uma introdução ao  Azure AppFabric

18

Security

outboundService Bus

• Access Control• Both “listen” and “send” subject to access control• Programmable authorization policy, defined by ACS

• Isolation – SB is the DMZ

outbound

ACSsends listens

Page 17: Uma introdução ao  Azure AppFabric

19

WCF architecture

Transport

Client

User code

EncodingProtocolProtocol

Transport

Dispatcher

Service Impl.

EncodingProtocolProtocol

Binding element

Binding element

Binding element

Binding element

Binding

• Channel stack with transport and protocol channels• Channels described by binding elements• One binding contains several binding elements

Page 18: Uma introdução ao  Azure AppFabric

20

WCF and SB

Transport

Client

User code

EncodingProtocolProtocol

Transport

Dispatcher

Service Impl.

EncodingProtocolProtocol

Binding element

Binding element

Binding element

Binding element

Binding

ServiceBus

• New bindings• New transport channels and binding elements

• New behaviors

Page 19: Uma introdução ao  Azure AppFabric

21

Bindings

• WebHttpRelayBinding• HTTP (Web programming model)• Client interoperability

• BasicHttpRelayBinding e WS2007HttpRelayBinding• SOAP over HTTP (basic profile | WS-*)• Client interoperability

• NetTcpRelayBinding• Similar to NetTcpBinding (request-response and duplex)

• NetOnewayRelayBinding e NetEventRelayBinding• One- way w/buffering and multicast

Page 20: Uma introdução ao  Azure AppFabric

22

Binding elements

• Http(s)RelayTransportBindingElement

• TcpRelayTransportBindingElement

• RelayedOnewayTransportBindingElement

Page 21: Uma introdução ao  Azure AppFabric

Access Control Service

Page 22: Uma introdução ao  Azure AppFabric

24

Access Control Service

• Identity and access control• Distributed systems• Decentralized authority• Heterogeneous technologies

• Claims-based model• Service Bus integration

Page 23: Uma introdução ao  Azure AppFabric

25

Identity and Authorization

creds Contoso::Alice

webapp::IssueView

Contoso::LeadDev

webapp::IssueMgr

Page 24: Uma introdução ao  Azure AppFabric

26

webapp (IssueTracker)

Centralized Solution

creds Contoso::Alice

webapp::IssueView

Contoso::LeadDev

webapp::IssueMgr

MembershipProvider

RoleProvider IPrincipal.IsInRole(...)

Page 25: Uma introdução ao  Azure AppFabric

27

webapp (IssueTracker)

Decentralized Authority

creds Contoso::Alice

webapp::IssueView

Contoso::LeadDev

webapp::IssueMgr

Contoso Authority

Page 26: Uma introdução ao  Azure AppFabric

28

Contoso Identity Provider webapp

Decentralized Authority

creds Contoso::Alice

webapp::IssueView

Contoso::LeadDev

webapp::IssueMgr

Identity Directory

Page 27: Uma introdução ao  Azure AppFabric

29

Contoso webapp

Decision Enforcement

creds Contoso::Alice

webapp::IssueView

Contoso::LeadDev

webapp::IssueMgr

ServiceBus

webapp::SB.Listen

AuthorizationDecision

AuthorizationEnforcement

IdentityInformation

Page 28: Uma introdução ao  Azure AppFabric

30

webappAccess Control ServiceContoso

Access Control Service

credsContoso::LeadDev

Alice

webapp::IssueView

SBwebapp::SB.Listen

Identity Provider Authorization DecisionAuthorization Enforcement

Page 29: Uma introdução ao  Azure AppFabric

31

Demo

MembershipAccess Control

Service

WIF

LeadDevAlice

Listen

WIF

WS-Trust

WRAP

Service Bus

SAML

SWT

username+

password

Page 30: Uma introdução ao  Azure AppFabric

32

Access Control Service

• Claims-based Identity and Access Control• Claims transformer (“claims in, claims out”)

• Consumes claims from federated issuers• Provides claims to applications and services

• Rule based issuance policy• Rule: If has claim1 then output claim2

• Not an identity provider• Does not manage user’s identities

Page 31: Uma introdução ao  Azure AppFabric

33

Protocols and technologies

• AppFabric 1.0• OAuth WRAP (Web Resource Authorization Protocol)• Simple Web Token

• Future (and past)?• WS-Federation – “passive” (browser based) federation• WS-Trust – “active” (SOAP based) federation• LiveID integration

Page 32: Uma introdução ao  Azure AppFabric

34

WRAP

Client Protected Resource

IdentityProvider

Bearer Token with authorization claims API

Authorization Server

Bearer Token with

authorization claims

Identity :

username + shared secret

SWT token

SAML token

Page 33: Uma introdução ao  Azure AppFabric

35

WRAP and SWT• Simple Web Token (SWT)

• Form encoded name-value pairs• HMAC-SHA-256 symmetric signature

• WRAP token request• HTTP POST• username+password or authentication assertion (e.g. SAML)

• WRAP protected client call• HTTP header (Authorization: WRAP access_token = “…”)• GET or POST parameter (wrap_access_token = “…”)

Page 34: Uma introdução ao  Azure AppFabric

36

Finally …

• Service Bus• Connectivity• Addressability and discoverability• Eventing• Buffering

• Access Control Service• Authorization Decision Point

• For Service Bus• For other services, both cloud or on-premises

• Flexible claims based policy

Page 35: Uma introdução ao  Azure AppFabric

Q & A

Page 37: Uma introdução ao  Azure AppFabric
Page 38: Uma introdução ao  Azure AppFabric