TechDays 2010 (CLO305) : Windows Azure App Fabric

Post on 12-Dec-2014

1.292 views 1 download

description

 

Transcript of TechDays 2010 (CLO305) : Windows Azure App Fabric

22

Windows Azure AppFabric

Rochdi ChakrounGeoffrey DanielThomas Conté

33

Présentation des intervenants

Rochdi Chakroun, WinWiserochdi.chakroun@winwise.comhttp://www.dotnetguru2.org/rochdichakroun

Geoffrey Daniel, WinWiseGeoffrey.Daniel@winwise.comhttp://blogs.developpeur.org/neurocypher

Thomas Conté, Microsofttconte@microsoft.comtwitter.com/tomconteblogs.msdn.com/tconte

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

55

Windows AzurePetits rappels:

Windows AzureSQL AzureAzure AppFabric

66

Plateforme Azure: vue d’ensemble

77

Azure AppFabricService BusAccess Control Service

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

99

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

ConnecterConnecter

firewall NATfirewall

Votre application Application “partenaire”

Service Bus

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

1111

Service Bus

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

1313

Traversée NAT & Firewall

Service BusService Bus

ReceiverReceiver

1414

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

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

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?

1717

DémoUtilisation du NetTCPRelayBinding:Identification de l’utilisateur

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

1919

Liste (non exhaustive) des bindings

2020

WebHttpRelayBinding

2121

DémoUtilisation du WebHttpRelayBinding:Streaming vidéo

2222

Schéma fonctionnel

Site Web: E-CommerceCatalogue

CRM

Membership Services

StreamingServices

Réseau entreprise

0101010010101010101111

Regarder Extrait

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

2424

DémoUtilisation du NetEventRelayBinding:Passage de commande

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

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…

2727

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

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

2929

Access Control Service

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

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

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

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

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

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

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

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…>

3838

Windows AzureWindows Azure

Les différentes briques d’ACS

3939

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

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

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

4242

Intégration AD FS v2

ACSService Namespace

ACSService Namespace

REST Web Service

REST Web Service ClientClient

4343

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

4444

Conclusion

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