1. Contrôle d'accès avec
Varnish Plus
Un coup d'oeil sur certains défis et considérations
Carlos Abalde, Roberto Moreda
{cabalde,moreda}@allenta.com
Paris, Varnish Summit 2015
2. Agenda
๏ Notre voyage particulier pour la conception et
le déploiement de solutions de contrôle d'accès
basé sur Varnish Plus
๏ Contenu
‣ Varnish Paywall
‣ Défis et considérations
‣ Conclusions
3. Qui sommes nous?
๏ Allenta Consulting
‣ http://www.allenta.com
๏ Partenaire d’intégration Varnish Software
๏ Spécialisée sur Varnish Paywall
‣ Projets en Italie, Irlande et Argentine
7. Qui est Theo?
๏ Selon Wikipedia, Théophraste Renaudot est le nom du
fondateur de la publicité et de la presse française
๏ Il est aussi le héros de cette présentation
๏ Theo est encore un autre éditeur inquiet de la baisse
des revenus publicitaires dans les médias en ligne
‣ Evolution des modèles traditionnels basés sur des
annonces?
‣ Instrument alternatif de monétisation de contenu en
ligne?
8. Theo a quelques souhaits
๏ Transition vers un modèle par abonnement
‣ Modèle d'abonnement flexible / extensible
- Abonnements au compteur (metered
subscriptions)
- Abonnements partiels (partial subscriptions)
๏ Modèle freemium
๏ Contenu propre (owned contents)
9. … beaucoup de souhaits!
๏ Composants Plug & Play séparés
‣ Des changements minimes au backend existant
๏ Solution haute performance et évolutive
‣ Ne dégradez pas UX courante
๏ Solution sur site
‣ Un contrôle complet du produit
10.
11.
12. Qu’est ce que c’est
Varnish Paywall?
๏ Une partie de Varnish Plus
‣ Logique de contrôle d'accès déplacée au niveau de
la mise en cache
‣ Livraison du contenu payant rapide et flexible
๏ Solution double “boîte à outils”
‣ Puissant niveau de contrôle d'accès
‣ Technologie de mise en cache avancée
13. Qu’est ce que c’est
vraiment Varnish Paywall?
๏ Certaines sous-routines VCL , quelques VMODs
OSS et un VMOD spécifique de contrôle d'accès
๏ En option,
‣ Certain stockage haute performance
‣ Certains compteurs Varnish Custom Statistics
‣ Certains atouts JavaScript
14.
15. Au-delà des journaux
๏ Varnish Paywall n’est pas un produit spécifique aux
médias traditionnels
๏ Varnish Paywall signifie le déplacement du contrôle
d'accès à la limite du niveau de la mise en cache
‣ Exécuter la logique de contrôle d'accès à la vitesse
Varnish Plus
‣ Améliorer le hit-ratio
‣ Simplifier la logique de backend
16. Varnish Paywall est aussi
pour…
๏ Alice, qui gère un site qui offre certains rapports
seulement aux clients premium
๏ Bob, qui a été demandé d'accélérer un service
payant de streaming de musique
๏ Emma, qui dirige un site de photos limité à 5
téléchargements par jour et par utilisateur
authentifié
๏ …
19. Qui est Cosme?
๏ Cosme est un ingénieur travaillant chez Allenta
๏ Il a travaillé sur des solutions de contrôle d'accès
basé sur Varnish Plus depuis quelques années
๏ Cosme discute avec Theo de certains défis et
considérations habituels lors de l'ajout d'une
paywall à un site existant
‣ Comptage anonyme, des options de stockage,
SEO…
20. Comptage anonyme
๏ “Je ne veux pas déranger mes lecteurs
occasionnels. Faisons le NYT style. Exiger
l’authentification seulement après que 10 articles
aient été consultés pendant le mois en cours”
๏ “J'ai lu que le paywall du NYT n’est pas resistant,
utilisant un bookmarklet simple. Est-ce le cas?”
๏ “Que pensez-vous de l'aide des empreintes
digitales du navigateur pour identifier les
utilisateurs anonymes ?”
“Faisons le NYT style”
21. Comptage anonyme
๏ Comptage basé sur les cookies n’est pas resistant
‣ Est-ce un réel problème du point de vue de
l'entreprise?
‣ Limiter le contenu éligible pour l'accès anonyme
- Accent sur l'engagement des clients
๏ Sauvegardes de cookies dans le stockage local,
DOM…
- https://github.com/samyk/evercookie
Comptage basé sur les cookies
22. Comptage anonyme
๏ Comptage côté serveur
‣ https://github.com/Valve/fingerprintjs2
๏ Pas une vraie solution
‣ Aussi facilement contournable
‣ Collisions
- Appareils mobiles, ordinateurs clonés…
Empreintes digitales du navigateur
23. État du paywall
๏ “Où sont stockées les données de comptage?”
๏ “L'équipe de systèmes a posé des questions sur
l'évolutivité du stockage pour l'état du paywall.
Est ce le cas or qu’en est-il de ça?”
๏ “Et que dire de HA? Quelles sont les
options ici?”
“Où sont stockées les données de comptage?”
24. État du paywall
๏ Memcached
‣ https://github.com/varnish/libvmod-memcached
๏ Redis
‣ https://github.com/carlosabalde/libvmod-redis
‣ Persistance
‣ API plus riche et puissance de script LUA
Memcached vs. Redis
25. État du paywall
๏ Twemproxy
‣ https://github.com/twitter/twemproxy
‣ Proxy avec sharding léger pour MC et Redis
๏ Redis Sentinel
‣ http://redis.io/topics/sentinel
‣ Surveillance, notifications et basculement
automatique
Évolutivité et des options HA
26. État du paywall
๏ Redis Cluster
‣ http://redis.io/topics/cluster-tutorial
‣ Sharding et réplication automatique pour Redis
๏ Dynomite
‣ https://github.com/Netflix/dynomite
‣ Mise en œuvre de Dynamo pour MC et Redis
Évolutivité et des options HA
27. SEO
๏ “Google devrait être capable d'indexer tout le
contenu de mon site”
๏ “Il suffit de détecter le robot par la lecture du
header HTTP User Agent, vous vérifiez l'adresse
IP en utilisant le DNS VMOD, et laissez
l'accès à tous les contenus”
“Autoriser l'accès à Google à tous les contenus”
28. SEO
๏ Google punit la dissimulation de contenu
๏ FCF exige que tous les utilisateurs qui cliquent sur un
résultat de recherche de Google devraient être
autorisés à voir le texte intégral du contenu qu'ils
essaient d'accéder
‣ Ce texte doit être identique au contenu qui a été
montré au robot Google le temps d'indexation
‣ Les éditeurs sont autorisés à limiter le nombre
d'accès en vertu de la politique FCF à 5 accès par
utilisateur chaque jour
“First Click Free Policy” de Google pour la recherche Web
29. SEO
๏ Les utilisateurs peuvent avoir accès , même lorsque
leurs quotas sont épuisés ou ils ne se sont même pas
authentifiés
๏ Exclusion contournable basée sur header Referrer
‣ Problème bien connu de FT et d'autres journaux
‣ Qu'en est-il des teasers?
- Même URL réécrite en interne par Varnish
- Pas utile pour des contenus freemium
Implications de FCF
30. Et bien plus…
๏ Exclusions de contrôle d'accès
๏ Détection de la fraude
๏ Stratégie d’essai et déploiement
๏ Paywall API et agent
๏ Statistiques d'utilisation
๏ …
32. Conclusions
๏ Varnish Paywall est un puissant kit de paywall
‣ Grande flexibilité
‣ Contrôle d'accès fonctionnant à une vitesse
Varnish
๏ Double solution
‣ Technologie de la mise en cache avancée
‣ Puissant niveau de contrôle d'accès
34. Comment fonctionne
Varnish Paywall ?
๏ Headers HTTP personnalisées
‣ X-Pw-Access-Control…
๏ Services API
‣ Service d'autorisation…
๏ Cookies avec signature cryptographique
๏ Stockage haute performance
35. Exclusions
๏ “Les adresses IP de ces sociétés devraient
complètement contourner le paywall. Nous
avons des accords B2B avec eux”
๏ “Les vues web utilisées par nos applications
mobiles officielles devraient également
contourner le paywall”
๏ “Tout clic sur le contenu paywalled fait de
Facebook ou Twitter devrait également
contourner le paywall”
“Et maintenant quelques exceptions”
36. Exclusions
๏ Il est tout à fait raisonnable de contourner la
logique du paywall basé sur:
‣ Une ACL Varnish
‣ Certains HTTP headers ad-hoc avec une signature
HMAC générée en utilisant un secret partagé entre
Varnish et les applications mobiles
๏ Contourner la logique du paywall basée sur le
header referrer HTTP est faible et doit être
analysée avec soin
Méfiez-vous des faux HTTP headers
37. Détection de la fraude
๏ “Que faire si un certain client achète un
abonnement illimité, puis partage avec tous ses
amis sur Facebook?”
๏ “Que faire si un bureau utilisant un proxy NAT
achète un seul abonnement illimité à tous les
employés dans le bâtiment?”
“Partage d’abonnements au compteur”
38. Détection de la fraude
๏ Vous pouvez être en mesure de détecter la fraude dans
votre composant de gestion des utilisateurs
‣ Limite du nombre / taux de sessions par utilisateur
‣ Forcer des validations supplémentaires / bloquer des
utilisateurs quand un comportement suspect est détecté
๏ Varnish Paywall peut aider si vous n'êtes pas capable
de faire cela
‣ Redis “sorted set” pourrait limiter le nombre de SIDs et
IPs par utilisateur pendant un certain laps de temps
Limitation du taux