of 46 /46

TechDays 2010 (CLO305) : Windows Azure App Fabric

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: TechDays 2010 (CLO305) : Windows Azure App Fabric
Page 2: TechDays 2010 (CLO305) : Windows Azure App Fabric

22

Windows Azure AppFabric

Rochdi ChakrounGeoffrey DanielThomas Conté

Page 3: TechDays 2010 (CLO305) : Windows Azure App Fabric

33

Présentation des intervenants

Rochdi Chakroun, [email protected]://www.dotnetguru2.org/rochdichakroun

Geoffrey Daniel, [email protected]://blogs.developpeur.org/neurocypher

Thomas Conté, [email protected]/tomconteblogs.msdn.com/tconte

Page 4: TechDays 2010 (CLO305) : Windows Azure App Fabric

44

Agenda

Présentation & IntroductionRappel: la plateforme Windows AzurePrésentation de la brique Azure AppFabricPrésentation du projet de démoService Bus

PrésentationDémo & code

Access Control ServicePrésentationDémo & code

Conclusion

Page 5: TechDays 2010 (CLO305) : Windows Azure App Fabric

55

Windows AzurePetits rappels:

Windows AzureSQL AzureAzure AppFabric

Page 6: TechDays 2010 (CLO305) : Windows Azure App Fabric

66

Plateforme Azure: vue d’ensemble

Page 7: TechDays 2010 (CLO305) : Windows Azure App Fabric

77

Azure AppFabricService BusAccess Control Service

Page 8: TechDays 2010 (CLO305) : Windows Azure App Fabric

88

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èsInteropérer avec différents langages, plateformes

La solution:

Service BusService Bus Access ControlAccess Control

Page 9: TechDays 2010 (CLO305) : Windows Azure App Fabric

99

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

ConnecterConnecter

firewall NATfirewall

Votre application Application “partenaire”

Service Bus

Page 10: TechDays 2010 (CLO305) : Windows Azure App Fabric

1010

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

Contrôler & sécuriser Contrôler & sécuriser

Token

TokenAssertions

Assertions

Transformation desassertions

Message + TokenMessage + Token

Écha

nge

de ce

rtific

ats

Écha

nge

de ce

rtific

ats

Règles de contrôled’accès

Vérification desassertions

Votre application Application “partenaire”

Access Control Service

Page 11: TechDays 2010 (CLO305) : Windows Azure App Fabric

1111

Service Bus

Page 12: TechDays 2010 (CLO305) : Windows Azure App Fabric

1212

Le principe du relais

Service BusService Bus

SenderSender ReceiverReceiver

http://myapp.servicebus.windows.net/a/b/BackendNamingRoutingFabric

Frontend Nodes

CtrlCtrl

33

Forwarder11outbound

socket

connect

44

outbound socket

rendezvous

22CtrlCtrl

NLB

Page 13: TechDays 2010 (CLO305) : Windows Azure App Fabric

1313

Traversée NAT & Firewall

Service BusService Bus

ReceiverReceiver

Page 14: TechDays 2010 (CLO305) : Windows Azure App Fabric

1414

Service Registryhttp://project.servicebus.windows.net/

Page 15: TechDays 2010 (CLO305) : Windows Azure App Fabric

1515

Extension du modèle WCF

Offre des bindings correspondant aux principaux bindings WCFSecurité, Binaire, Streaming, Reliable SessionsPas besoin de NAT ou d’ouvrir des ports sur l’extérieur

Page 16: TechDays 2010 (CLO305) : Windows Azure App Fabric

1616

Application pratique!

Un site de vente de ticket de concerts, hébergé dans AzureCe 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é tierceComment 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?

Page 17: TechDays 2010 (CLO305) : Windows Azure App Fabric

1717

DémoUtilisation du NetTCPRelayBinding:Identification de l’utilisateur

Page 18: TechDays 2010 (CLO305) : Windows Azure App Fabric

1818

Schéma fonctionnel

Site Web: E-CommerceCatalogue

CRM

Membership Services

Réseau entreprise

SQL A

zure

Web

Rol

e

Login / Mot de passe

Profile de l’utilisateur

Page 19: TechDays 2010 (CLO305) : Windows Azure App Fabric

1919

Liste (non exhaustive) des bindings

Page 20: TechDays 2010 (CLO305) : Windows Azure App Fabric

2020

WebHttpRelayBinding

Page 21: TechDays 2010 (CLO305) : Windows Azure App Fabric

2121

DémoUtilisation du WebHttpRelayBinding:Streaming vidéo

Page 22: TechDays 2010 (CLO305) : Windows Azure App Fabric

2222

Schéma fonctionnel

Site Web: E-CommerceCatalogue

CRM

Membership Services

StreamingServices

Réseau entreprise

0101010010101010101111

Regarder Extrait

Page 23: TechDays 2010 (CLO305) : Windows Azure App Fabric

2323

NetEventRelayBinding

Service BusService Bus

SenderSender ReceiverReceiver

sb://project.windows.net/a/b/

outbound connect bidi socketoutb

ound

conn

ect o

ne-w

ay n

et.tc

p

BackendNamingRoutingFabric

Frontal

MsgMsg

SubscribeSubscribeRouteRoute

ReceiverReceiver

outbound connect bidi socket

Msg

Page 24: TechDays 2010 (CLO305) : Windows Azure App Fabric

2424

DémoUtilisation du NetEventRelayBinding:Passage de commande

Page 25: TechDays 2010 (CLO305) : Windows Azure App Fabric

2525

Schéma fonctionnel

Site Web: E-CommerceCatalogue

Membership Services

Réseau entreprisePartenaires

Order Services

Order Services

Audit des commandes

Application d’audit

CRM

Nouvelle commande

Page 26: TechDays 2010 (CLO305) : Windows Azure App Fabric

2626

Message Buffers

Service BusService Bus

SenderSender ReceiverReceiver

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

HTTP

(S) P

OST/

PUT

BackendNamingRoutingFabric

Frontend Nodes

HTTP(S) GET/DELETEMsgMsg MsgMsg

ManagerManager

MessageMessageBufferBufferPolicyPolicy

MessageMessageBufferBufferPolicyPolicy

ExpiresAfterMaxMessageCoun

t…

ExpiresAfterMaxMessageCoun

t…

Page 27: TechDays 2010 (CLO305) : Windows Azure App Fabric

2727

DémoUtilisation des Message Buffers:Récupération de commande par partenaire

Page 28: TechDays 2010 (CLO305) : Windows Azure App Fabric

2828

Schéma fonctionnel

Site Web: E-CommerceCatalogue

Membership Services

Réseau entreprise Partenaires

Order Services

Order Services

Application d’audit

CRM

Nouvelle commande

MessageBuffer

Commande

Audit des commandes

Logistique

Traitement des commandes

HTTP

Page 29: TechDays 2010 (CLO305) : Windows Azure App Fabric

2929

Access Control Service

Page 30: TechDays 2010 (CLO305) : Windows Azure App Fabric

3030

ACS: vue d’ensemble

Contrôle d’accès fondé sur les assertions (ou revendications)== Claims-Based Access Control

Protocole complètement RESTfulUtilisable sur n’importe quelle plateforme (SDK PHP, Java)Implémente OAuth WRAP & SWT

WRAP = Web Resource Authorization ProtocolSWT = Simple Web Tokenshttp://groups.google.com/group/oauth-wrap-wg

Intégration avec ADFS v2Permet la délégation simple

Page 31: TechDays 2010 (CLO305) : Windows Azure App Fabric

3131

ACS: les grands principes

ACSACS

ServiceService(Relying Party)(Relying Party)

2. Envoyer token

(revendications;

e.g. identité)

4. Retourne token

(résultat de l’étape 3)

5. Envoyer le tokenavec la requête

0. confiance établie:secrets +certs

UtilisateurUtilisateurou Applicationou Application

1. Définir les règles de

contrôle d’accès

6. Vérifier lesRevendication

s (token)

3. Transformer revendicationssur la base des règles de contrôle d’accès

Page 32: TechDays 2010 (CLO305) : Windows Azure App Fabric

3232

ACS: en termes WRAP…Chapitre 1.1, v0.9.7.2

Authorizaton Authorizaton ServerServer

Protected Protected ResourceResource

2. Envoyer token

(revendications;

e.g. identité)

4. Retourne token

(résultat de l’étape 3)

5. Envoyer le tokenavec la requête

0. confiance établie:secrets +certs

ClientClient

1. Définir les règles de

contrôle d’accès

6. Vérifier lesRevendication

s (token)

3. Transformer revendicationssur la base des règles de contrôle d’accès

Page 33: TechDays 2010 (CLO305) : Windows Azure App Fabric

3333

Requêtes de Tokens ACS

Trois méthodes possibles pour demander un TokenSimple text (Plaintext)

Le plus simple à implémenter, pas de cryptoToken signé (Signed Token)

Permet la délégation simple, HMAC SHA 256 nécessaireToken SAML émis par un AD FS v2 (SAML bearer token)

Permet l’intégration avec le SI entrepriseACS renvoie toujours le même type de token: SWT

Page 34: TechDays 2010 (CLO305) : Windows Azure App Fabric

3434

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

Page 35: TechDays 2010 (CLO305) : Windows Azure App Fabric

3535

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=5znwNTZDYC39dqhFOTDtnaikd1hiuRa4XaAj3Y9kJhQ%3D

Page 36: TechDays 2010 (CLO305) : Windows Azure App Fabric

3636

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=SWTwrap_assertion=role%3DAdmin%252cUser%26Issuer%3Dadatumcustomer1%26ExpiresOn%3D1255912922%26HMACSHA256%3DyuVO%252fwc58%252ftYP36%252fDM1mS%252fHr0hswpsGTWwgfvAbpL64%253d

Page 37: TechDays 2010 (CLO305) : Windows Azure App Fabric

3737

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=SAMLwrap_assertion=<…SAML Bearer Token…>

Page 38: TechDays 2010 (CLO305) : Windows Azure App Fabric

3838

Windows AzureWindows Azure

Les différentes briques d’ACS

Page 39: TechDays 2010 (CLO305) : Windows Azure App Fabric

3939

DémoPortail de gestionacm.exe et AcmBrowserProtection d’un service par ACS:Mise à jour de la commande

Page 40: TechDays 2010 (CLO305) : Windows Azure App Fabric

4040

Schéma fonctionnel

Site Web: E-CommerceCatalogue

Membership Services

Réseau entreprise Partenaires

Order Services

Order Services

Application d’audit

CRM

MessageBufferAudit des commandes

Logistique

Traitement des commandes

HTTP

Order Processing

Commande

Nouvelle commande

Mise à jour du statut

Page 41: TechDays 2010 (CLO305) : Windows Azure App Fabric

4141

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 SAMLWIF est la façon la plus simple de requêter un token

SAML de la part de AD FS v2Windows Identity Framework

ACS doit connaître la clé de signature pour valider le token SAMLACS publie et comprend les métadonnées WS-Fed

Cela permet d’automatiser l’établissement de la relation de confiance

Page 42: TechDays 2010 (CLO305) : Windows Azure App Fabric

4242

Intégration AD FS v2

ACSService Namespace

ACSService Namespace

REST Web Service

REST Web Service ClientClient

Page 43: TechDays 2010 (CLO305) : Windows Azure App Fabric

4343

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

Page 44: TechDays 2010 (CLO305) : Windows Azure App Fabric

4444

Conclusion

Page 45: TechDays 2010 (CLO305) : Windows Azure App Fabric

4545

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

Page 46: TechDays 2010 (CLO305) : Windows Azure App Fabric