Zum Hauptinhalt springen

BookStack

BookStack ist eine Software zum Erstellen von Dokumentationen.

Voraussetzungen

  • eine BookStack-Installation
  • ein SAML-Zertifikat (dafür wird OpenSSL benötigt)

SAML-Zertifikat generieren

In einer Shell folgenden Befehl ausführen:

$ openssl req -nodes -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -sha256 -days 3650
tip

Als Common Name trägt man die Domain ein, unter der BookStack läuft.

Damit wird ein Zertifikat erzeugt, was 10 Jahre gültig ist. Der Schlüssel wird in key.pem und das Zertifikat in cert.pem abgespeichert.

Konfiguration

Die grundsätzliche Konfiguration ist in der Dokumentation von BookStack beschrieben.

Folgende Werte sind zu setzen:

VariableWert
AUTH_AUTO_INITIATEtrue
SAML2_NAMESchulIT Single Sign-On (oder ein beliebiger anderer Name)
SAML2_EMAIL_ATTRIBUTEhttp://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress
SAML2_EXTERNAL_ID_ATTRIBUTEurn:id
SAML2_DISPLAY_NAME_ATTRIBUTEShttp://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname\|http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname
SAML2_IDP_ENTITYIDEntity ID des Identity Providers, also bspw. https://sso.schulit.de
SAML2_AUTOLOAD_METADATAfalse
SAML2_IDP_SSOhttps://sso.schulit.de/idp/saml, wobei sso.schulit.de durch die URL des Single Sign-Ons zu ersetzen ist.
SAML2_IDP_x509Hier trägt man das Zertifikat des Single Sign-Ons (zu finden unter certs/idp.crt) ein. Da es sich um mehrere Zeilen handelt, muss der Inhalt in doppelten Anführungszeichen stehen.
SAML2_IDP_AUTHNCONTEXTtrue
SAML2_SP_x509Hier trägt man den Inhalt des vorhin erzeugten Zertifikats (cert.pem) ein. Da es sich um mehrere Zeilen handelt, muss der Inhalt in doppelten Anführungszeichen stehen.
SAML2_SP_KEYHier trägt man den Inhalt des vorhin erzeugten privaten Schlüssels (key.pem) ein. Da es sich um mehrere Zeilen handelt, muss der Inhalt in doppelten Anführungszeichen stehen.
SAML2_USER_TO_GROUPStrue
SAML2_GROUP_ATTRIBUTEurn:role
SAML2_REMOVE_FROM_GROUPStrue

Single Sign-On konfigurieren

Dienst erstellen

Unter Verwaltung ➜ Dienste einen neuen SAML-Dienst erstellen.

Einige Metadaten lassen sich automatisiert laden, indem man zunächst die Metadaten-XML https://bookstack.schulit.de/saml2/metadata (bookstack.schulit.de durch die BookStack-Domain ersetzen) einträgt und auf Herunterladen klicken.

Fast fertig

Die Felder Entity ID, Assertion Customer Service URL und Zertifikat sind bereits ausgefüllt.

Folgende Werte setzen bzw. ändern:

OptionWert
URLDie URL zur BookStack-App, bspw. https://bookstack.schulit.de/
Entity IDnicht ändern
Namebeliebig
Beschreibungbeliebig
Iconbeliebig
Assertion Customer URLnicht ändern
Zertifikatnicht ändern

Attribut für Rolle erstellen

Unter Verwaltung ➜ Attribute ein neues Attribut erstellen.

OptionWert
Namebookstack-roles
AnzeigenameBookStack-Rolle
Beschreibungbeliebig
Benutzer können dieses Attribut ändern❌ Häckchen nicht setzen
SAML Attribut-Nameurn:role
TypAuswahlfeld
DiensteHier den BookStack-Dienst auswählen

Unter Optionen muss die Option Mehrfach-Auswahl möglich deaktiviert bleiben.

Folgende Optionen eintragen:

SchlüsselWert
adminAdministrator
editorEditor
viewerViewer
publicPublic
Fertig

Der Dienst ist nun eingerichtet und kann Benutzern zugewiesen werden.