Kategorien
Allgemein Cloud Infrastruktur Security Server Services Verschlüsselung

Was ist Cloudflare und warum ist es wichtig?

Letzte Woche war es wieder soweit. Ein weiterer Fall von sensiblen Daten, die im Internet zugänglich waren, wurde bekannt. Die Firma Cloudflare verteilte ungewollt, durch einen Fehler in der Programmierung, sensible Daten von unzähligen Nutzern im Internet. Das Interessante an diesem Fall ist zum einen, dass es sich nicht um einen Angriff von Hackern handelte und zum anderem die Erkenntnis, wie viel Internet Traffic weltweit über Cloudflare abgewickelt wird. Da viele Leser vermutlich den Namen dieser Firma noch nie gehört haben, möchte ich in diesem Artikel auch eine Antwort auf die Frage geben, was das Geschäftsmodell der Firma Cloudflare ist und wessen Daten da öffentlich im Netz standen und teilweise noch stehen.

Die Firma Cloudflare

Cloudflare betreibt ein Netz regional verteilter und über das Internet verbundener Server, mit denen Inhalte ausgeliefert werden. So eine Dienstleistung nennt sich Content Delivery oder Content Distribution Network, kurz CDN. Bei dieser Art der Auslieferung von Inhalten geht es um eine Verbesserung der Geschwindigkeit beim Aufbau der Website und oft auch um eine Reduzierung der Bandbreite.

Wenn deine Website beispielsweise für Besucher aus China gedacht ist, dein Server aber hier in der Schweiz steht, so lässt sich durch den Einsatz eines CDN tatsächlich die Zugriffsgeschwindigkeit für chinesische Benutzer erheblich steigern.

Kategorien
Content Management Systeme Frameworks Infrastruktur Server Services

Single Sign On mit OpenID Connect

Wenn die Firma grösser wird, hat sie oft mehrere Websites. Eine für den Shop, eine für die Community, ein paar Marketing Websites und vielleicht noch einen Blog. Auf einigen Sites wird ein Login benötigt, auf anderen nicht.

Das Szenario lässt sich beliebig verkomplizieren. Im Prinzip geht es um eine einheitliche Benutzerverwaltung im Unternehmen.

Mit Facebook, Google und Twitter kam das Thema wieder auf, weil es plötzlich so einfach war, sich mit einem Facebook, Google oder Twitter Konto bei einer anderen Website einzuloggen. Die Firmen hatten einfach das OAuth Protokoll proprietär erweitert und boten diesen komfortablen Service.

Mit OAuth2und OpenID Connect gibt es seit 2 Jahren eine Authentifizierungmöglichkeit, aufbauend auf dem weit verbreiteten OAuth 2.0 Framework. Das Motto des Projektes ist:

Einfache Dinge sollten einfach und komplizierte Dinge sollten möglich sein.

OpenID selbst ist ein dezentrales Authentifizierungssystem für webbasierte Dienste. Es kümmert sich um die Verwaltung von Identitäten und die Authentifizierung von Benutzern. Da beide Begriffe oft missverstanden werden:

  • Identität = „Sag mir etwas über dich!
  • Authentifizierung = „Beweise mir, dass du es bist!“

Das System kann für verteilte Anmeldeprozesse benutzt werden.

Bestandteile des Systems

Wenn OpenID Connect genutzt wird, gibt es mindesten einen Server, viele Clients, viele Benutzer und unterschiedliche Workflows.

OpenID OAuth 2.0 Provider (Server)

Auf diesem System wird der Identitäts- und Authentifizierungsdienst bereitgestellt.
Hier werden die Identitäten und optional zusätzliche Felder, wie die postalische Adresse, vom Benutzer selbst verwaltet.

OpenID Connect (Client)

Der Client kann eine Website oder eine App sein, die mit dem OpenID Server „fest verdrahtet“ ist.

Benutzer

Der Benutzer muss sich einmal beim OpenID Server registrieren. Danach kann er sich bei einem der OpenID Clients und dem OpenID Provider mit seinem Benutzernamen und Passwort anmelden.

Workflow

Der Benutzer besucht eine Client Website und klickt auf den Anmeldebutton. Der Client leitet weiter zum OpenID Server. Nach erfolgreicher Anmeldung dort leitet der OpenID Server ihn wieder an die anfragende Website zurück.
Per Definition vertrauen die OpenID Clients dem OpenID Server und fragen ihn nach Identität und Authentifizierung. Der OpenID Server antwortet und liefert seine Daten zurück. Falls der Benutzer auf der Client Website noch nicht existiert, wird er erstellt und angemeldet.

Hinweis:

  • Der beschriebene Anmeldevorgang hat nichts mit Benutzerberechtigungen und -rollen zu tun! Das wird im jeweiligen Client selbst geregelt und heißt Autorisierung.
  • Der Anmeldevorgang mit OpenID Connect ist kein Single Sign On sondern eine verteilte Authentifizierung. Es ist vergleichbar mit LDAP oder ActiveDirectory. 

SSL Verschlüsselung

Die Kommunikation zwischen den Clients und dem Server muss SSL/TLS verschlüsselt sein (Zertifikate).

Single Sign On (SSO)

Beim Single Sign On (einmaliges Anmelden) meldet sich der Benutzer einmal an und ist dann automatisch bei allen verbundenen Clients eingeloggt. Bei einem Wechsel des Clients (der Website) ist kein zusätzlicher Anmeldevorgang notwendig.

OpenID Connect allein ist kein Single Sign On, kann aber mit entsprechenden Erweiterungen dazu gemacht werden!

Verteilte Authentifizierung mit Drupal

Das CMS Drupal kann beide Rollen einnehmen. Es kann ein OpenID Connect Provider und/oder ein OpenID Connect Client sein. Beim OpenID Provider können außer Benutzername, E-Mail und Passwort auch weitere personenbezogene Daten, beispielsweise die postalische Adresse, gespeichert werden. Wenn der Benutzer zu einem anderen Client (Website) wechselt, muss er sich dort erneut anmelden, hat aber die gleichen Zugangsdaten (Name, Passwort) bei allen Clients.

Verteilte Authentifizierung am Beispiel Drupal
Verteilte Authentifizierung am Beispiel Drupal

Implementierung in Drupal und anderen CMS

In Drupal werden die folgenden Module und Bibliotheken benötigt:

Für den Server

Für den Client

  • openid_connect
    • erzeugt einen neuen Login Block, der auf die Zusammenhänge hinweist “melde dich an mit …”.
    • verarbeitet die Daten des OpenID Providers
    • jeder OpenID Provider kann genutzt werden
    • Es gibt keine „Benutzer bearbeiten“ Seite mehr (Die ist auf der OpenID Server Seite und betrifft die Felder, die auf dem Server gespeichert sind)
  • openid_connect_sso
    • konfiguriert das OpenID Connect für Single Sign On.
    • übernimmt den Redirect sowie den An- und Abmeldevorgang

Auch eine WordPress Site könnte den Drupal OpenID Server nutzen. Dazu wird beispielsweise das Plugin Generic OpenID Connect benötigt.

Wenn alles installiert und konfiguriert ist, läuft die Anmeldung folgendermaßen ab. Hier ein Beispiel in Drupal 7:

Anmeldung mit OpenID Connect
Anmeldung mit OpenID Connect

Links


tl;dr: Single Sign On mit OpenID Connect schafft Übersicht bei den Benutzer

Kategorien
Tools Wunschthema

Newsletter und E-Mail Marketing mit phpList

Mit einem Newsletter kannst du einen direkten Kontakt zu deinen Kunden herstellen und pflegen.

Ein Besucher oder Kunde, der seine E-Mail Adresse freiwillig im Formular des Anbieters einträgt, weil er an den Informationen, Dienstleistungen oder Produkten interessiert ist, wird sich über regelmässige E-Mails im Posteingang freuen. Wenn er die Nachrichten nicht mehr haben will, bestellt er sie ab. So einfach ist das.

Anders sieht es aus, wenn der Kunde auf allerlei Wegen dazu gebracht werden soll, den Newsletter zu abonnieren, obwohl er das gar nicht wirklich will oder zumindest noch nicht so richtig darüber nachgedacht hat. Dann fühlt er sich vielleicht gestört und der Newsletter kommt nicht so gut an.

Interessant ist auch, wenn Firmen E-Mail Adressen erwerben oder in der eigenen Firma „finden“, beispielsweise in einem Shop, einem Blog, einer Microsite, dem Ticketsystem, einem Gewinnspiel, einer Community oder anderen Datenbanken, in denen personenbezogene Daten so „liegen“ und diese dann nutzen wollen, um die Besitzer der E-Mail Adresse mit Newslettern zu „bespielen“. Auch hier kann es zu Abwehrreaktionen beim Kunden kommen.

Solange sich der Kunde freundlich angesprochen fühlt und nicht bedrängt wird, funktionieren sogar die beiden letzten Möglichkeiten. Die Rechtmäßigkeit der Verwendung der Daten lasse ich hier bewusst außen vor da dies in unterschiedlichen Ländern unterschiedlich geregelt wird.

Um eine E-Mail zu verschicken, benötigt man grundsätzlich nicht viel. Viele E-Mails zu verschicken kann aufwendiger werden. Der Newsletter muss erstellt, versendet und ausgewertet werden. Daher gibt es zahlreiche Services, die die Dienstleistung „Newsletter versenden“ für mehr oder weniger große Geldbeträge anbieten. Eine gute Übersicht, der kaum etwas hinzuzufügen ist, findet sich hier:
Die wichtigsten deutschen und US-Anbieter fürs E-Mail-MarketingStand 3/2016.

In unserem Blog geht es oft um selbst gehostete Open Source Lösungen und daher möchte ich ein Projekt vorstellen, das es seit 16 Jahren gibt – phpList.

phpList

Das Programm ist dafür gemacht, Newsletter, Presseerklärungen, Marketingschreiben oder einfach Nachrichten an eine Liste von Abonnenten zu schicken. Es ist in PHP geschrieben und benötigt eine MySQL Datenbank.

phpList verfügt über ein Web Interface mit Verwaltungsfunktionen für den „Campaign Manager“ (oder Admin) und für den Abonnenten. Das Abonnement Management funktioniert automatisiert. Wer phpList nicht selbst hosten möchte, kann es auf phplist.com als Service nutzen.

Installation

phpList ist, wie der Name schon vermuten lässt, eine Sammlung von PHP Scripts, die auf einen Webserver geladen und mit einem Webinstaller installiert werden müssen.
Eine ausführliche Beschreibung des Vorgangs hält das phpList Manual bereit – Installing phpList manually.

Als Novatrend Kunde hast du es einfacher und kannst phpList per Installatron installieren.

ACHTUNG: Seit November 2017 benutzen wir das Tool Softaculous. Im Beitrag Automatisierte Installation mit Softaculous beschreibe ich die grundlegenden Vorgehensweisen.

phpList im Installatron
phpList im Installatron

Ich wähle die Subdomain http://lists.seafolly.ch aus, lege den Admin Zugang fest und überlasse dem Installatron die Installation.

Installatron - phpList - Konfiguration
Installatron – phpList – Konfiguration

Unter http://lists.seafolly.ch können sich nun Benutzer in den standardmäßig vorhandenen Newsletter ein- und austragen.

Newsletter abonnieren
Newsletter abonnieren

Nach der Eintragung wird eine E-Mail mit einem Bestätigungslink an die eingetragene E-Mail Adresse verschickt.

Anfrage zur Bestätigung
Anfrage zur Bestätigung

Erst durch einen Klick auf diesen Link abonniert der Benutzer den Newsletter.

Unter http://lists.seafolly.ch/admin kann der Admin die Daten verwalten. Zum Beispiel könnte er die Anmeldeseite so bearbeiten, dass Text und E-Mail auf Deutsch erscheinen (Navigation -> Anmeldeseiten).

Abonnenten Übersicht

Die Abonnenten einer Liste können gefiltert, exportiert, gelöscht und verschoben werden.

Abonnenten Liste
Abonnenten Liste

Newsletter versenden

Nachrichten können in einem fünfstufigen Dialog erstellt werden. Dabei wird zunächst der Inhalt erstellt (Textvorlagen können definiert werden). Danach wird das Format festgelegt (HTML, Text). Im Anschluss wird der Versendezeitpunkt und der gewünschte Empfängerkreis ausgewählt. Während der Bearbeitung können Test Nachrichten an definierte E-Mail Adressen zur Kontrolle versendet werden.

Newsletter erstellen
Newsletter erstellen

Die erstellten Newsletter erscheinen in einer Liste und können jederzeit bearbeitet werden.

Newsletter Liste
Newsletter Liste

Der eigentliche Versand erfolgt zum festgelegten Zeitpunkt. Umfangreiche Statistiken können nach dem Versenden des Newsletters in CSV Dateien exportiert werden. Es gibt eine Statistik Übersicht, die Klicks pro URL, die Klicks pro Nachricht, die Anzahl der geöffneten Nachrichten und Domainstatistiken.

Integration in andere Systeme

Auch wenn ein Link zur Abonnement Seite meines Erachtens ausreicht, besteht doch immer ein Bedarf dem Besucher das Abonnieren eines Newsletters zu erleichtern. Daher kann phpList in andere Systeme integriert werden, zum Beispiel hier:

Links


tl;dr: phpList ist ein vollwertiges Open Source Newsletter- und E-Mail Marketing System. Es ist über Plugins erweiterbar, sehr flexibel und stabil.

#ffffff; background: #bd081c no-repeat scroll 3px 50% / 14px 14px; position: absolute; opacity: 1; z-index: 8675309; display: none; cursor: pointer; top: 3205px; left: 50px;">Save

#ffffff; background: #bd081c no-repeat scroll 3px 50% / 14px 14px; position: absolute; opacity: 1; z-index: 8675309; display: none; cursor: pointer;">Save

Kategorien
Content Management Systeme Webdesign

Thunder – Ein Online Magazin out of the Box

Im Frühjahr 2016 veröffentlichte der deutsche Verlag Hubert Burda GmbH eine Drupal 8 Distribution mit dem unbescheidenen Namen Thunder. Thunder ist ein fertig konfiguriertes Online Magazin „out of the Box“ und ist 100% freie Software unter der GNU Public License. Thunder steht auf Drupal.org zum freien Download zur Verfügung.

  • Eine Channel Taxonomie (News, Events) ist bereits konfiguriert, Artikel und Events mit einigen Feldern erweitert (beispielsweise ein separates Bild für Facebook).
  • Die Inhalte werden mit dem Paragraphs Modul strukturiert (siehe auch Strukturierte Artikel mit dem Paragraphs Modul für Drupal 8). Die Veröffentlichung kann zeitgesteuert geplant werden. Meta Tags können über Variable (Tokens) pro Artikel konfiguriert werden. Viele nützliche Dinge sind vorkonfiguriert. Es gibt Paragraphs-Typen für Einzelbilder, Galerien, Instagram, Twitter, Video und natürlich Text.
  • Alles, was mit Medien zu tun hat, wird über das Modul media_entity organisiert.
  • Ein schlichtes, aber ansprechendes Theme (Infinite) mit „endlos scrollen“ bei Listen ist integriert, inklusive SASS & Compass Dateien zur Individualisierung
  • Third-Party Services können bei Bedarf aktiviert werden werden (Google Adsense, Google Analytics, Riddle, IVW, Nexx Video, Facebook Instant Articles, …) 

Die Entwicklung der Distribution geht weiter, da Burda das System für viele eigene Sites nutzt und die Verbreitung durch die freie Verfügbarkeit generell zunimmt. Im Laufe des Jahres 2016 sind bereits viele Neuerungen eingeflossen, die letzte Version, die auf Drupal.org zum Download steht, ist vom 21.12.2016.

Sichtbare Beispiele von Thunder Websites sind Mein schöner Garten, Elle,  mylife,  InStyle, Harpers Bazaar und natürlich playboy.de.

Beispiel: Mein schöner Garten
Beispiel: mein-schoener-garten.de

Die Zeitschrift Bunte hat im Oktober 2016 Drupal/Thunder in einer Headless Version eingeführt. In dieser Kombination wird Drupal/Thunder als Backend und Datenlieferant genutzt, das Frontend der Website läuft jedoch auf Amazon Web Services mit selbst geschriebenen Node.js Apps in Docker Containern. Durch diese Trennung wird eine Geschwindigkeitssteigerung beim Seitenaufbau um das Zweieinhalbfache erreicht. Websites wie Bunte haben mehr als 30 Millionen Seitenaufrufe pro Monat und da rechtfertigt Schnelligkeit jeden Aufwand.

Der Grund für diese offene Art der Software Entwicklung ist die Annahme, dass du beispielsweise ein Restaurant nicht wegen der tollen Küchengeräte besuchst sondern wegen des guten Essens und einem guten Service. Für Online Magazine gilt das ebenso. Du liest sie nicht wegen des tollen Content Management Systems das dahinter steckt, sondern wegen der Inhalte.

In der Zukunft sind für Thunder Verbesserungen der User Experience und im Bereich der Inhaltsmoderation geplant. Googles Accelerated Mobile Pages (AMP) Projekt wird unterstützt werden und eine eCommerce Anbindung soll kommen.

Die Installation der Distribution ist sehr einfach möglich. Der Quellcode kann mit dem Befehl

drush dl thunder

in das gewünschte Verzeichnis geladen und dann per Webinstaller installiert werden. Du kannst es auch online testen. Einfach auf den Link https://simplytest.me/project/thunder klicken und danach auf Launch Sandbox.

Installation Drupal Thunder
Installation Drupal Thunder

Nach der Installation kannst du sofort loslegen und Artikel schreiben (/node/add/article).

Artikel bearbeiten
Artikel bearbeiten

Durch das Paragraphs Modul kann ein Artikel aus beliebig vielen Text-, Medien- und Individualelementen (Links, Twitter, Instagram, …) bestehen.

Artikel Elemente
Artikel Elemente

Auf der responsiven Website sieht der Artikel dann sehr professionell aus. Hier als Screenshot die Listansicht der Startseite.

Artikel Übersicht
Artikel Übersicht

Fazit

Thunder ist eine professionelle Basis für ein Online Magazin und kommt als Open Source Software daher. Es kann erweitert und verändert werden und besteht zu 100% aus freien Drupal Modulen. Mehr kann man sich als Webentwickler oder Agentur nicht wünschen.

Links


tl;dr: Die Drupal Distribution Thunder bietet ein Online Magazin als Open Source Software.