Messbarer Erfolg «10 Punkte-Checkliste für ein zukunftssicheres CMS» White Paper
Messbarer Erfolg - White Paper

Gruppen zur Steuerung der Sichtbarkeit von Inhalten einrichten

Mit Sichtbarkeitskategorien können Administratoren steuern, auf welche Inhalte angemeldete Benutzer (Besucher oder Redakteure) Zugriff haben, im Gegensatz zu nicht angemeldeten Besuchern der Website. Hierfür lassen sich Benutzergruppen beim Identitätsprovider (IdP) einrichten und in den Sichtbarkeitskategorien als Unterscheidungskriterium verwenden. Sichtbarkeitskategorien sind in Tarifen verfügbar, die Leserechte beinhalten.

Im Zusammenhang mit Sichtbarkeitskategorien entspricht eine Gruppe einer Menge von Benutzern, etwa Mitarbeiter von Partnerunternehmen oder Händlern, denen es gestattet ist, in ihnen vorbehaltenen Websitebereichen Inhalte aufzurufen, zu aktualisieren oder einzustellen.

Bevor Gruppen jedoch in Sichtbarkeitskategorien angegeben werden können, müssen sie natürlich in der Konfiguration beim Identitätsprovider eingerichtet und Benutzern zugewiesen worden sein. Beachten Sie bitte, dass die Namen solcher Gruppen für Scrivito lediglich Bezeichner ohne jede Bedeutung sind. Auch kann Scrivito implizite, d.h. auf Regeln basierende Gruppenzuweisungen nicht berücksichtigen. Folglich müssen solche impliziten Zuweisungen (wie „alle Sales-Mitglieder sind auch Marketing-Mitglieder“) explizit gemacht werden. Aus naheliegenden Gründen ist es wichtig, Gruppennamen konsistent zu vergeben und zu verwenden.

Meldet sich ein Benutzer bei einer auf Scrivito basierenden Website an, erzeugt der IdP ein OAuth-ID-Token, mit dem Scrivito den Benutzer identifiziert. Wenn Gruppen eingerichtet wurden, enthält das ID-Token einen groups-Claim, mit dem Scrivito feststellt, ob und welche Gruppen dem Benutzer zugewiesen sind. Auf der Grundlage dieser Gruppen ermittelt Scrivito dann die auf den Benutzer anwendbaren Sichtbarkeitskategorien und gestattet oder unterbindet dessen Zugriff auf geschützte Inhalte.

Die Struktur eines ID-Tokens mit einem groups-Claim sieht in etwa so aus:

{
  "iss": "https://my.idp.com",
  "sub": "...",
  "aud": "...",
  "iat": ...,
  "exp": ...,
  "https://scrivito.com/groups": [
    "Partner Companies",
    "Vendors",
    ...
  ]
}

Gruppen bei Auth0 definieren

Wenn Sie die Identität Ihrer Benutzer mit Auth0 verwalten, haben Sie mindestens zwei Möglichkeiten, den Benutzern Gruppen zuzuweisen. Eine besteht darin, Gruppen mittels Rollen nachzubilden, eine andere wäre es, die „Authorization“-Erweiterung zu installieren, die zwar besser geeignet erscheint, jedoch etwas mehr Aufwand für die Einrichtung erfordert. Aus Gründen der Einfachheit verwenden wir hier die erstgenannte Methode, den groups-Claim zu definieren, d.h. über Auth0-Rollen. Im ersten Schritt definieren wir die gewünschten Rollen:

Beachten Sie, dass Gruppennamen nicht mit einem Unterstrich beginnen dürfen, da Scrivito dieses Zeichen intern verwendet. Sind die Rollen eingerichtet, können Sie ihnen Benutzer zuweisen oder umgekehrt den Benutzern Rollen.

Legen Sie abschließend eine Regel (in Form von JavaScript-Code) an, die die Gruppen programmatisch zum jeweiligen ID-Token hinzufügt. Hierfür können Sie das „Empty rule“-Template verwenden und den unten aufgeführten JS-Code eintragen.

function(user, context, callback) {
  let groups = context.authorization.roles;
  context.idToken['https://scrivito.com/groups'] = groups;
  callback(null, user, context);
}

Um sich zu vergewissern, dass die Gruppennamen tatsächlich ins ID-Token aufgenommen werden, melden Sie sich bitte zunächst von Scrivito ab und löschen Sie alle scrivito.com-Cookies. Melden Sie sich anschließend wieder an, so dass Ihr Identitätsprovider ein neues ID-Token generiert, und versuchen Sie nun, auf eine Seite zuzugreifen, deren Sichtbarkeitskategorie Ihren Gruppen (und sonst niemandem) Zugriff gewährt.