Sie sind auf Seite 1von 46

Windows Azure AppFabric

Rochdi Chakroun
Geoffrey Daniel
Thomas Conté

2
Présentation des intervenants
Rochdi Chakroun, WinWise
rochdi.chakroun@winwise.com
http://www.dotnetguru2.org/rochdichakroun
Geoffrey Daniel, WinWise
Geoffrey.Daniel@winwise.com
http://blogs.developpeur.org/neurocypher
Thomas Conté, Microsoft
tconte@microsoft.com
twitter.com/tomconte
blogs.msdn.com/tconte

3
Agenda
Présentation & Introduction
Rappel: la plateforme Windows Azure
Présentation de la brique Azure AppFabric
Présentation du projet de démo
Service Bus
Présentation
Démo & code
Access Control Service
Présentation
Démo & code
Conclusion

4
Windows Azure
Petits rappels:
Windows Azure
SQL Azure
Azure AppFabric

5
Plateforme Azure: vue d’ensemble

Compute Storage Management Relational data Management Connectivity Access control

6
Azure AppFabric
Service Bus
Access Control Service

7
Le problème
Comment utiliser les services « dans les nuages » pour connecter
applications et services, où qu’elle soient?
Établir une passerelle entre nuage, à demeure, hébergé
Faciliter et sécuriser la connexion réseau / sécurité
Gérer identité et contrôle d’accès
Interopérer avec différents langages, plateformes
La solution:

Connecter Contrôler & sécuriser

Service Bus Access Control


8
Connecter les services entre eux,
dans le nuage, à demeure, hébergés

Connecter

Service Bus

Service Bus Access Control Service


• Expose des services REST ou SOAP sur • Authorization management and
l’Internet à travers firewall et couches federation infrastructure 0
1
0

de NAT • Provides internet-scope federated firewall


firewall
1

identity integration for distributed NAT


1 011
1 1
010 001 1
• Communique de façon bi- 001 1
011 1
011 1001 1
011 1
1 011 1
010 1

applications 011 1
1
010 0 1
0

directionnelle entre apps et services de • Use it to


1
1

façon interopérable • Secure Service Bus communications


1
1
1

• Différents choix de types et modèles


• Manage user-level access to apps
de message: Relai, Message Buffers… across organizations and ID providers
• Montée en charge naturelle et
automatique
Votre application Application “partenaire”

9
Gérer l’identité et
les contrôles d’accès

Contrôler & sécuriser

Access Control Service


Service Bus Access Control Service
• Network abstraction and virtualization
Règles de contrôle Transformation des • Intègre les autorisations aux apps pour
d’accès assertions
infrastructure contrôler “qui peut faire quoi”
• Enables many common shapes of • Fédère de multiples systèmes
communication in an efficient and
ts
fica

d’identités: organisations, fournisseurs


Tok rtions
erti

interoperable manner
Ass
en
ec

d’ID
e
d

• Use it to
ge
an

• Appliquer facilement des règles de


Éch

Vérification des
• Connect applications across any
assertions
network topology, including firewalls contrôle d’accès fines
and NAT boundaries • Sécuriser les communications du SB
• Exchange data between loosely • Montée en charge naturelle et
coupled applications
Message + Token
automatique
Votre application Application “partenaire”

10
Service Bus

11
Le principe du relais
http://myapp.servicebus.windows.net/a/b/
Backend
Naming
Routing
Fabric
Service Bus
Frontend
Nodes Ctrl
NLB 2

3
Ctrl
ou
nd tb
1 ou re soc oun
u tb ket ct Forwarder nd ke d
o soc ne ez t
n vo
co us

Sender 4 Receiver
12
Traversée NAT & Firewall

Service Bus

Connexions sortantes uniquement


•Pas de ports entrants à ouvrir
•Connexions sortantes en TCP par défaut
•Se rabat sur du HTTP si nécessaire
Protégé par le Firewall du Data Center
•« DMZ externalisée »
Sécurisé par le Access Control Service
•Flexibilité au niveau des contrôles d’accès
Receiver
13
Service Registry
http://project.servicebus.windows.net/
Root

apps docs media info


Découverte via Atom 1.0 et GET

URLs activés/gérés
crm hr script fldrs TV automatiquement
vault via
listeners WCF

sfo nyc dus stgB stgA share pics video

14
Extension du modèle WCF
Application Service
WCF 3.5 Service Bus
WebHttpBinding WebHttpRelayBinding

Service
HTTP.SYS
Bus

80

Offre des bindings correspondant aux principaux bindings WCF


Securité, Binaire, Streaming, Reliable Sessions
Pas besoin de NAT ou d’ouvrir des ports sur l’extérieur
15
Application pratique!
Un site de vente de ticket de concerts, hébergé dans Azure
Ce qui lui permet de faire face aux pics de trafic
La base de données client (CRM) ainsi que la base des commandes
(ERP) sont critiques et restent hébergées « à demeure »
Comment exposer ces bases à l’application Web, de façon
simple, compte tenu des problématique de sécurité réseau?
Mes commandes doivent être auditées par une société tierce
Comment peut-elle les recevoir facilement?
J’ai des partenaires externes qui gèrent la logistique (impression et
expédition des billets)
Comment peuvent-ils interagir avec mon système, de façon
sécurisée, et sans leur imposer une technologie particulière?

16
Démo
Utilisation du NetTCPRelayBinding:
Identification de l’utilisateur

17
Schéma fonctionnel
re

o le
zu

bR
LA

We
SQ

Site Web: Login / Mot de passe


Catalogue E-Commerce

Profile de l’utilisateur

Membership
Services

CRM

Réseau entreprise

18
Liste (non exhaustive) des bindings

WCF Binding New Service Bus Binding


BasicHttpBinding BasicHttpRelayBinding
WebHttpBinding WebHttpRelayBinding
WSHttpBinding WSHttpRelayBinding
WS2007HttpBinding WS2007HttpRelayBinding
WSHttpContextBinding WSHttpRelayContextBinding
NetTcpBinding NetTcpRelayBinding
n/a NetOnewayRelayBinding
n/a NetEventRelayBinding

19
WebHttpRelayBinding

NetTcp(Relay)Binding WebHttp(Relay)Binding
• Efficacité maximale • Style RESTful
• Sécurisé • POX (Plain Old XML)
• WS-Reliable • Interopérabilité
Messaging maximale
• Encodage binaire • Extrêmement
• Mais spécifique WCF flexible: streaming,
proxy…

20
Démo
Utilisation du WebHttpRelayBinding:
Streaming vidéo

21
Schéma fonctionnel

Site Web: Regarder Extrait


Catalogue E-Commerce

0101010010101010101111

Membership Streaming
Services Services

CRM

Réseau entreprise

22
NetEventRelayBinding
sb://project.windows.net/a/b/
Backend
Naming
Route Subscribe
Routing
Fabric
Service Bus
Frontal
tcp

ou

ou
et.

tb

tb
n
ay

ou

ou
-w

n
dc

dc
e
on

on

on
ct

n
ne

ect

ect
on

bi d

bi d
dc

Msg Msg
un

i so

i so
Msg
tbo

cke

cke
ou

t
Sender Receiver Receiver
23
Démo
Utilisation du NetEventRelayBinding:
Passage de commande

24
Schéma fonctionnel
Nouvelle
commande

Site Web: Application


Catalogue E-Commerce Order d’audit
Services

Audit des commandes

Membership Order
Services Services

CRM

Partenaires
Réseau entreprise

25
Message Buffers
sb://solution.servicebus.windows.net/a/b/
Backend
Naming
Routing
Fabric
Service Bus
Frontend
Nodes

ExpiresAfter
MaxMessageCount

HT
UT

TP
T/P

(S
OS

)G
Message
P

ET/
(S)

Buffer
TP

DE
Policy
HT

LE
Msg Msg

TE
Sender Manager Receiver
26
Démo
Utilisation des Message Buffers:
Récupération de commande par partenaire

27
Schéma fonctionnel
Nouvelle
commande

Site Web:
E-Commerce Application
Catalogue Order d’audit
Services

Commande

MessageBuffer
Audit des commandes
HTTP

Traitement des commandes

Membership Order
Services Services

CRM Logistique

Réseau entreprise Partenaires

28
Access Control Service

29
ACS: vue d’ensemble
Contrôle d’accès fondé sur les assertions (ou revendications)
== Claims-Based Access Control
Protocole complètement RESTful
Utilisable sur n’importe quelle plateforme (SDK PHP, Java)
Implémente OAuth WRAP & SWT
WRAP = Web Resource Authorization Protocol
SWT = Simple Web Tokens
http://groups.google.com/group/oauth-wrap-wg
Intégration avec ADFS v2
Permet la délégation simple

30
ACS: les grands principes
3. Transformer revendications
sur la base des règles de
1. Définir les contrôle d’accès
règles de
contrôle d’accès
ACS

4. ta
(ré
Re t d
su
to e l
l
ur ’ét
2. ven ide

ne ap
0. confiance

En d nti
(re e.g.

to e 3
établie:

vo ica té)

ke )
6. Vérifier les secrets +

ye tio

n
Revendications

r t ns
certs

ok ;
(token)

en
Service 5. Envoyer le token Utilisateur
(Relying Party) avec la requête ou Application

31
ACS: en termes WRAP…
Chapitre 1.1, v0.9.7.2
3. Transformer revendications
sur la base des règles de
1. Définir les contrôle d’accès
règles de
contrôle d’accès Authorizaton

4. ta
(ré
Server

Re t d
su
to e l
l
ur ’ét
2. ven ide

ne ap
0. confiance

En d nti
(re e.g.

to e 3
établie:

vo ica té)

ke )
6. Vérifier les secrets +

ye tio

n
Revendications

r t ns
certs

ok ;
(token)

en
Protected 5. Envoyer le token
Resource Client
avec la requête

32
Requêtes de Tokens ACS
Trois méthodes possibles pour demander un Token
Simple text (Plaintext)
Le plus simple à implémenter, pas de crypto
Token signé (Signed Token)
Permet la délégation simple, HMAC SHA 256 nécessaire
Token SAML émis par un AD FS v2 (SAML bearer token)
Permet l’intégration avec le SI entreprise
ACS renvoie toujours le même type de token: SWT

33
C’est quoi un SWT?

role=Admin%2cUser&
customerName=Contoso%20Corporation&
Issuer=https%3a%2f
%2fadatum.accesscontrol.windows.net%2f&
Audience=http%3a%2f%2fadatum%2fbillprint&
ExpiresOn=1255912922&
HMACSHA256=yuVO%2fwc58%2ftYP36%2fDM1mS
%2fHr0hswpsGTWwgfvAbpL64%3d

34
Comment demander un SWT?
(version Plaintext, section 5.1 de la spec)

POST /WRAPv0.9/ HTTP/1.1


Host:adatum.accesscontrol.windows.net

wrap_scope=http%3A%2F%2Fadatum.com
%2Fservices%2F&
wrap_name=adatumcustomer1&
wrap_password=5znwNTZDYC39dqhFOTDtnaikd1
hiuRa4XaAj3Y9kJhQ%3D

35
Comment demander un SWT?
(version Signed Token, section 5.2 de la spec)

POST /WRAPv0.9/ HTTP/1.1


Host:adatum.accesscontrol.windows.net

wrap_scope=http%3A%2F%2Fadatum.com%2Fservices%2F&
wrap_assertion_format=SWT
wrap_assertion=role%3DAdmin%252cUser%26Issuer
%3Dadatumcustomer1%26ExpiresOn
%3D1255912922%26HMACSHA256%3DyuVO
%252fwc58%252ftYP36%252fDM1mS
%252fHr0hswpsGTWwgfvAbpL64%253d

36
Comment demander un SWT?
(version SAML Token, section 5.2 de la spec)

POST /WRAPv0.9/ HTTP/1.1


Host:adatum.accesscontrol.windows.net

wrap_scope=http%3A%2F%2Fadatum.com
%2Fservices%2F&
wrap_assertion_format=SAML
wrap_assertion=<…SAML Bearer Token…>

37
Les différentes briques d’ACS
Windows Azure

ACS
ACSToken
TokenIssuing
Issuing ACS
ACS
ACS
ACS Token Issuing Management
Management
Endpoint
Endpoint Management Portal
Endpoint Endpoint
Endpoint
Endpoint

ACM.exe
SDK
Mgmt Browser

38
Démo
Portail de gestion
acm.exe et AcmBrowser
Protection d’un service par ACS:
Mise à jour de la commande

39
Schéma fonctionnel
Nouvelle
commande

Site Web:
E-Commerce Application
Catalogue Order d’audit
Services

Commande

MessageBuffer
Audit des commandes
HTTP

Traitement des commandes


Mise à jour du
Membership Order Order
statut
Services Services Processing

CRM Logistique

Réseau entreprise Partenaires

40
ACS & intégration entreprise
ACS accepte des tokens SAML signés pour les requêtes de
tokens SWT
AD FS v2 peut générer ces tokens SAML
WIF est la façon la plus simple de requêter un token SAML de
la part de AD FS v2
Windows Identity Framework
ACS doit connaître la clé de signature pour valider le token
SAML
ACS publie et comprend les métadonnées WS-Fed
Cela permet d’automatiser l’établissement de la relation de
confiance

41
Intégration AD FS v2

ACS
Service Namespace AD FS
V2

REST Web
Service Client

42
Démo
Intégration AD FS v2:
Mise à jour de la commande, authentifiée

43
Conclusion

44
Tout Azure aux TechDays
Titre Heure Session
Introduction à Windows Azure Lundi 8, 16h à 17h CLO202
Azure: comment migrer une application Lundi 8, 17h30 à 18h30 CLO301
Gestion et stratégie storage sous Azure Mardi 9, 13h à 14h PAR105
Windows Azure AppFabric Mardi 9, 13h à 14h CLO305
Azure et les technologies non Microsoft Mercredi 10, 11h à 12h INT301
SQL Azure & Azure Storage Mercredi 10, 16h à 17h CLO304

Ateliers encadrés Heure Heure


Lundi 8 14h30 – 15h30 17h30 – 18h30
Mardi 9 14h30 – 15h30 17h30 – 18h30
Mercredi 10 14h30 – 15h30

Ateliers assurés par Wygwam

45

Das könnte Ihnen auch gefallen