An introduction to the
Azure AppFabric
WebDay, Porto, Feb. 2, 2010
Pedro Félix (pedrofelix em cc.isel.ipl.pt)
Azure AppFabric WebDay, Porto, Feb. 2, 2010 Pedro Flix ( pedrofelix - - PowerPoint PPT Presentation
An introduction to the Azure AppFabric WebDay, Porto, Feb. 2, 2010 Pedro Flix ( pedrofelix em cc.isel .ipl.pt) Azure AppFabric Set of services Service Bus (SB) Access Control Service (ACS) Running in the cloud Based on
Pedro Félix (pedrofelix em cc.isel.ipl.pt)
– Service Bus (SB) – Access Control Service (ACS)
– Based on Windows Azure Platform
– SB : Service Connectivity, Addressability and Discoverability – ACS : Service Access Control
2
CloudTrack . Fabrikam Contoso
Create/view issues View/manage issues
3
CloudTrack .
Notify new issue
4
Fetch trace data
FW, NAT, … FW, NAT, …
Create new issue
– Private addresses and Network Address Translation (NAT) – Dynamic addresses (e.g. ISP)
– Firewalls (denial of inbound connections) – Event distribution – Transient connectivity
5
6
inbound address?
7
“All problems in computer science can be solved by another level of indirection” Butler Lampson
inbound
Service Bus
8
Service Bus
– Service “listens” on the SB via outbound connection – Client “sends” to the SB – SB relays between client and service
sends
public address
listens
9
Service Bus
– Service is exposed via a public name – Local DNS binds these public names to IP addresses – Local registry describes available public names
public name Registry DNS
sends listens
– Public service namespaces – One Azure project – multiple service namespaces – {scheme}://{namespace}.servicebus.windows.net/{relpath}
– Mapping between URIs and services – Readable via HTTP+ATOM
10
11
– One-way messaging – Temporal decoupling
public name
sends listens
12
Service Bus
– One-way messages – Multiple listeners – Message distribution - multicast
sends listens listens
13
Service Bus
– Both “listen” and “send” subject to access control – Programmable authorization policy, defined by ACS
sends listens
14
Transport Client User code Encoding Protocol Protocol Transport Dispatcher Service Impl. Encoding Protocol Protocol
Binding element Binding element Binding element Binding element
Binding
15
Transport Client User code Encoding Protocol Protocol Transport Dispatcher Service Impl. Encoding Protocol Protocol
Binding element Binding element Binding element Binding element
Binding
Service Bus
– New transport channels and binding elements
– HTTP (Web programming model) – Client interoperability
– SOAP over HTTP (basic profile | WS-*) – Client interoperability
– Similar to NetTcpBinding (request-response and duplex)
– One- way w/buffering and multicast
16
17
18
– Decentralized authority – Heterogeneous technologies
19
creds Contoso:: Alice webapp:: IssueView Contoso:: LeadDev webapp:: IssueMgr
20
webapp (IssueTracker)
creds Contoso:: Alice webapp:: IssueView Contoso:: LeadDev webapp:: IssueMgr
21
Membership Provider Role Provider IPrincipal.IsInRole(...)
webapp (IssueTracker)
creds Contoso:: Alice webapp:: IssueView Contoso:: LeadDev webapp:: IssueMgr
22
Contoso Authority
Contoso Identity Provider Contoso Identity Provider webapp
creds Contoso:: Alice webapp:: IssueView Contoso:: LeadDev webapp:: IssueMgr
23
Identity Directory
Contoso webapp
creds Contoso:: Alice webapp:: IssueView Contoso:: LeadDev webapp:: IssueMgr
24
Service Service Bus
webapp:: SB.Listen
Authorization Decision Authorization Enforcement Authorization Enforcement Identity Information
webapp webapp Access Control Service Access Control Service Contoso
creds Contoso:: LeadDev Alice webapp:: IssueView
SB
webapp:: SB.Listen
25
Identity Provider Authorization Decision Authorization Enforcement
– Consumes claims from federated issuers – Provides claims to applications and services
– Rule: If has claim1 then output claim2
– Does not manage user’s identities
26
– OAuth WRAP (Web Resource Authorization Protocol) – Simple Web Token
– WS-Federation – “passive” (browser based) federation – WS-Trust – “active” (SOAP based) federation – LiveID integration
27
28
Client Protected Resource Identity Provider
Bearer Token with Bearer Token with authorization claims
API Authorization Server
– Form encoded name-value pairs – HMAC-SHA-256 symmetric signature
– HTTP POST – username+password or authentication assertion (e.g. SAML)
– HTTP header (Authorization: WRAP access_token = “…”) – GET or POST parameter (wrap_access_token = “…”)
29
30
Membership Access Control Service WIF
LeadDev Alice Listen
WIF
WS-Trust WRAP
Service Bus
SAML SWT
username + password
– Connectivity – Addressability and discoverability – Eventing – Buffering
– Authorization Decision Point
– Flexible claims based policy
31