Identitätsprovider für eine Website einrichten

Identitätsprovider für eine Website einrichten

  • Besucher, die sich an einer Scrivito-basierten Website angemeldet haben, können Seiten öffnen, die als eingeschränkt markiert wurden.

    Redakteure müssen sich anmelden, um Zugang zu Scrivitos Benutzerschnittstelle zu erhalten. Sie können sich mit Hilfe eines Identitätsproviders au­then­ti­fi­zie­ren.

Mit Scrivito kann den Besuchern Ihrer Website – und optional auch Redakteuren – die Möglichkeit gegeben werden, sich über einen Identitätsprovider anzumelden, der OpenID Connect unterstützt, etwa Auth0 oder Google.

In dieser Anleitung zeigen wir Ihnen, wie Sie einen Identitätsprovider einrichten und ihn über das Dashboard zu Ihrem Scrivito-CMS hinzufügen können. Obwohl Authentifizierung seitens der Besucher und der Redakteure unterschiedliche Anwendungsfälle sind, ist die Einrichtung beider Verfahren nahezu gleich, weshalb sie hier zusammen behandelt werden.

Sollten auf dem Reiter „Settings“ in Ihrem Scrivito-Dashboard die Bereiche „Visitor Identity Providers“ und „Editor Identity Provider” nicht verfügbar sein, lassen Sie sie bitte von unserem Kundensupport aktivieren.

Was sind Identitätsprovider?

Ein Identitätsprovider (IdP) bietet Benutzerauthentifizierung als einen Dienst an. Für einen Diensteanbieter hat der Einsatz von IdPs den großen Vorteil, dass er keine Accounts und Passwörter speichern und verwalten muss, um es den Nutzern seiner Dienste zu ermöglichen, sich zu authentifizieren.

Den meisten Nutzern dürften Identitätsprovider dadurch vertraut sein, dass sie bei der Anmeldung Buttons wie „Mit Google anmelden“ sehen und auch verwenden. Wer viel im Internet unterwegs ist, weiß es zu schätzen, Anmeldeformulare auf Webseiten nicht ausfüllen und keine separaten Zugangsdaten für einen weiteren Dienst pflegen zu müssen.

Scrivito funktioniert mit allen Identitätsprovidern, die OpenID Connect unterstützen. Auch, wenn Sie Active Directory or LDAP nutzen, können Ihre Benutzer sich an einem Scrivito-CMS anmelden, vorausgesetzt, Ihre Benutzerverwaltung ist für OpenID Connect konfiguriert.

Weshalb OpenID Connect?

OpenID Connect ist ein häufig genutzter Authentifizierungsdienst, der von zahlreichen großen Cloud-Plattform-Anbietern wie Google, Microsoft, und Yahoo unterstützt wird. Daher kann jeder mit einem Konto bei einem dieser Anbieter sich als Website-Besucher anmelden oder als Redakteur zu einem Scrivito-CMS hinzugefügt werden.

OpenID Connect basiert auf den Protokollen OpenID 2.0 and OAuth 2.0 und beinhaltet selbst auch Funktionalität von OAuth 2.0. Sämtliche genannten Komponenten sind offene Standards, so dass Sie darauf vertrauen können, dass Ihre Besucher und Redakteure sicher angemeldet werden.

Allgemeine Vorgehensweise

Damit ein Besucher sich auf Ihrer Website über einen Identitätsprovider anmelden kann, sind drei Schritte erforderlich:

  1. Registrieren Sie Ihre Website bei dem IdP.
  2. Tragen Sie den IdP in Ihrem Scrivito-Dashboard ein (bis zu 20 sind möglich).
  3. Integrieren Sie ein Anmeldeformular in Ihre Website, mit dem sich Besucher über den IdP authentifizieren können.

Danach erhalten nur angemeldete Benutzer Zugriff auf Inhalte, die als eingeschränkt gekennzeichnet wurden. Weiter unten werden wir auf die ersten beiden Schritte eingehen, die Registrierung beim IdP und im Scrivito-Dashboard. Die Website kann dann mit Hilfe der API-Dokumentation 🇺🇸 so erweitert werden, dass Besucher sich über den IdP anmelden können.

Was Identitätsprovider für Redakteure betrifft, so stellt bereits das Scrivito-Dashboard einen solchen IdP dar. Um einen anderen IdP für Redakteure zu verwenden, sind nur zwei Schritte erforderlich:

  1. Registrieren Sie Ihre Website bei dem IdP.
  2. Tragen Sie den IdP in Ihrem Dashboard ein.

CMS-Administratoren und Chefredakteure können mit Hilfe des Dashboards oder über den Menüpunkt „Benutzerverwaltung“ weitere Benutzer als Redakteure in eine Arbeitskopie einladen. Wenn Sie einen IdP für Redakteure konfiguriert haben, beachten Sie bitte Folgendes:

  • Hinzugefügte Benutzer können sich auf der betreffenden Website über diesen IdP anmelden.
  • Wir empfehlen, Benutzer nur über den „Benutzerverwaltung“-Menüpunkt und nicht über das Dashboard einzuladen.
  • Benutzer, die bereits über das Dashboard eingeladen wurden, können weder gelöscht noch kann deren Rolle geändert werden.

Nachdem ein Benutzer sich über den IdP angemeldet hat, leitet dieser zurück zur Scrivito-Anwendung. Die zur Einrichtung eines IdP erforderlichen Schritte sind bei IdPs für Besucher und Redakteure fast dieselben.

Schritt 1: GSuite oder Auth0 als Identitätsprovider einrichten

GSuite als Identitätsprovider

In diesem Abschnitt setzen wir Google GSuite als unseren Identitätsprovider für Redakteure ein. Bitte entnehmen Sie weitere Details dem Google OpenID Connect Guide. Im Anschluss daran gehen wir dieselbe Einrichtung noch einmal mit Auth0 als IdP durch.

Öffnen Sie zunächst die Seite „Credentials“ in der Google API Console. Füllen Sie das Formular unter „OAuth consent screen“ aus, und tragen Sie „scrivito.com“ in das Eingabefeld „Authorized domains“ ein.

Klicken Sie dann „Create credentials“ und wählen Sie „OAuth client ID“.

GSuite: Eine OAuth-Client-ID für Scrivito anlegen

Wählen Sie auf der nächsten Seite „Web Application“ als den Applikationstyp, den „Application Type“, geben Sie Ihrem neuen Google-OAuth-Client einen Namen, und tragen Sie die Scrivito-Callback-URL für die Authentifizierung ein. Diese URL können Sie für Ihre Website Ihrem Scrivito-Dashboard unter „Settings“ entnehmen:

Scrivito-Dashboard: Reiter „Settings“ enthält die „Authentication Callback URLs“ zum Kopieren

Kopieren Sie diese Callback-URLs zur Authentifizierung und fügen Sie sie bei Google ins Eingabefeld „Authorized redirect URIs“ ein.

Google-OAuth-Client: Scrivito's Callback-URLs als „authorized redirect URLs“ angeben

Klicken Sie als Nächstes „Create“ auf der Seite für die Einrichtung des Google-OAuthClients. Notieren Sie sich die Client ID und das Secret für Schritt 2:

  • Client ID, z.B. JLSyTv8ReKff8zxz2PdNqkfUpJ37qg6u.apps.googleusercontent.com
  • Client Secret, z.B. 2Tz9kqRaTLLAgTh8m8YAMN6P

Sie können nun mit Schritt 2 Ihren Identitätsprovider in Ihr Scrivito-CMS eintragen.

Auth0 als Identitätsprovider

Hier werden wir Auth0 als unseren Identitätsprovider mit OpenID-Connect-Unterstützung einsetzen.

Um Auth0 als Identitätsprovider zu nutzen, öffnen Sie zuerst das Auth0-Dashboard und legen eine „Application“ an. Wählen Sie den Typ „Single Page App“ für Besucher-Authentifizierung und „Regular Web App“ für die Authentifizierung von Redakteuren. Notieren Sie sich dann vom „Settings“-Reiter der neuen Applikation die folgenden Daten, die Sie in Schritt 2 benötigen, um den IdP zu Ihrem Scrivito-CMS hinzuzufügen:

  • Domain, z.B foobar.eu.auth0.com
  • Client ID, z.B. JLSyTv8ReKff8zxz2PdNqkfUpJ37qg6u
  • Client Secret …
Auth0s Reiter „Settings“ liefert „Domain“, „Client ID“ und „Client Secret“

Bei der Einrichtung eines IdP für Redakteure benötigt Auth0 die URL des Callbacks zur Authentifizierung beim ursprünglichen Diensteanbieter, also Scrivito. Sie finden diese URL im Scrivito-Dashboard Ihrer Website auf dem Reiter „Settings“. Kopieren Sie bitte diese URLs und fügen Sie sie unter „Allowed Callback URLs“ bei Auth0 ein.

Scrivito-Dashboard: Reiter „Settings“ zeigt „Authentication Callback URLs“ zum Kopieren

Schritt 2: Den Identitätsprovider im Scrivito-CMS eintragen

Bis hierher haben Sie eine „Application” bei Ihrem IdP eingerichtet. Um den Vorgang abzuschließen, lassen Sie uns nun das Scrivito-CMS so konfigurieren, dass dieser IdP bei der Authentifizierung von Benutzern verwendet werden kann.

Öffnen Sie das Scrivito -Dashboard in Ihrem Browser und wählen Sie bei Ihrer Website den Reiter „Settings“. Tragen Sie die Details im Bereich „Visitor Identity Providers“ oder „Editor Identity Providers“ ein, je nachdem, ob Sie Besuchern oder Redakteuren die Anmeldung über den IdP ermöglichen möchten.

In jedem dieser beiden Bereiche können bis zu 20 Identitätsprovider eingetragen werden. Scrivito akzeptiert Anmeldungen von allen angegebenen Providern. Für jeden einzelnen werden die folgenden Daten benötigt:

  • Provider URL: Dies ist die oben genannte „Domain“, angegeben als vollständige URL, einschließlich des HTTPS-Schemas. Für beispielsweise „foobar.eu.auth0.com“ wäre die Provider-URL „https://foobar.eu.auth0.com/“. Für Google als IdP, lautet sie immer „https://accounts.google.com“.
  • Hosted Domain: Mit Auth0 als Ihr IdP kann dieses Feld leer gelassen werden, weil die Provider-URL bereits Ihren eindeutigen Kontonamen („foobar“) in der Domain enthält. Bei Google muss hier jedoch Ihr GSuite-Domainname angegeben werden.
  • Client ID: Die Client-ID, die Sie im Verlauf der IdP-Einrichtung erhalten haben.
  • Client Secret: Das Client-Secret, das Sie erhalten haben.
  • Logout URL: (Nur verfügbar beim Identitätsprovider für Redakteure.) Nachdem ein Benutzer sich von Scrivito abgemeldet hat, bleibt er weiterhin beim IdP angemeldet und würde daher (wegen der automatischen Aushandlung zwischen Scrivito und dem IdP) beim nächsten Besuch der Website automatisch angemeldet werden. Wenn Sie befürchten, dass dies die Benutzer irritieren könnte, können Sie sie auch beim IdP abmelden, sobald sie sich bei Scrivito abmelden. Geben Sie hierfür eine Logout-URL an, zu der Scrivito weiterleiten soll, um Benutzer ebenfalls beim IdP abzumelden.

Scrivito-Dashboard: Reiter „Settings“, Abschnitt “Visitor Identity Providers”
Scrivito-Dashboard: Reiter „Settings“, Abschnitt “Editor Identity Provider”

Damit haben wir die Einrichtung der Authentifizierung für Redakteure abgeschlossen. Für Besucher benötigen Sie in Ihrer App eine Möglichkeit zur Authentifizierung, um auf eingeschränkte Inhalte zugreifen zu können 🇺🇸.

Einen Identitätsprovider bei der Anmeldung als Redakteur angeben

Wenn sich ein Redakteur bei einer Scrivito-basierten Website anmeldet, wird voreingestellt der erste im Dashboard hinterlegte Identitätsprovider für Redakteure verwendet.

Wenn Sie mehrere IdPs eingerichtet haben und ein Redakteur einen anderen als den ersten nutzen möchte, kann der zu verwendende mit dem URL-Parameter _scrivito_idp so angegeben werden:

https://my.website.com/scrivito?_scrivito_idp=https://my.website.idp.com

Enthält die IdP-URL nicht bereits den Kontonamen („hosted domain“), kann dieser ebenfalls angegeben werden, getrennt durch ein Semikolon:

https://my.website.com/scrivito?_scrivito_idp=https://my.idp.com;my_hosted_domain

Falls Sie mehrere Websites haben oder mehrere Identitätsprovider für Redakteure unterstützen, empfehlen wir den Redakteuren, Lesezeichen für die am häufigsten zur Anmeldung genutzten URLs anzulegen.

Zusätzliche Informationen für IdP-Admins

Es gibt zwei Algorithmen, die von Identitätsprovidern verwendet werden, um die Signatur eines JSON-Web-Tokens (JWT) zu erzeugen und zu validieren, HS256 and RS256. Der HS256-Algorithmus erfordert ein Client-Secret, RS256 dagegen nicht (weil er asymmetrisch ist), und daher kann das entsprechende Feld im Dashboard leer bleiben bei IdPs, die RS256 verwenden.

Damit ein OpenID-Connect-IdP mit Scrivito verwendet werden kann, muss er die Scopes openid, email und profile unterstützen. Von diesen nutzt Scrivito die folgenden Claims:

ScopeGenutzte Claims
openid
hd, iss, sub
email
email, email_verified
profile
name

Falls email, email_verified und name nicht bereits im ID-Token enthalten sind, ermittelt Scrivito diese Daten über den „userinfo“-Endpunkt des IdP. Die URL dieses Endpunkts ermittelt Scrivito über das Schlüsselwort „userinfo_endpoint“ in den Daten aus „.well-known/openid-configuration“, wie hier in der OpenID-Konfiguration bei Google.