Zum Hauptinhalt springen

Wordpress

Es ist möglich, das Single Sign-On mit Wordpress zu verwenden.

Voraussetzungen

  • eine geeignete WordPress-Installation
  • OneLogin SAML SSO-Plugin
  • 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 WordPress 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.

Plugin konfigurieren

Status

Enable

Hier muss ein Häckchen gesetzt werden.

Identity Provider Settings

OptionBeschreibung
Idp Entity IdHier trägt man die Entity ID des Identity Providers ein, bspw. https://sso.schulit.de/
Single Sign On Service UrlHier trägt man https://sso.schulit.de/idp/saml ein, wobei sso.schulit.de durch die Domain des Single Sign-Ons zu ersetzen ist.
Single Sign Out Service UrlFeld bleibt leer, da nicht unterstützt.
X.509 CertificateHier wird der Inhalt von certs/idp.crt (Single Sign-On Ordner) eingetragen.

Options

OptionBeschreibung
Create user if not exists✔️ Häckchen setzen
Update user data✔️ Häckchen setzen
Force SAML loginoptional
Single Log Out❌ Häckchen nicht setzen
Keep Local loginoptional
Alternative ACS endpoint❌ Häckchen nicht setzen
Match Wordpress account byE-mail

Attribute mapping

OptionBeschreibung
Usernamehttp://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress
E-mailhttp://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress
First Namehttp://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname
Last Namehttp://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname
Nicknameleer
Roleurn:roles
Remember Meleer

Role mapping

OptionBeschreibung
AdministratorROLE_ADMIN
EditorROLE_EDITOR
AuthorROLE_AUTHOR
ContributorROLE_CONTRIBUTOR
SubscriberROLE_SUBSCRIBER
BackWPUp*leer
Multiple role values in one saml attribute value❌ Häckchen nicht setzen
Regular expression for multiple role valuesleer

Role precendence

Hier können alle Felder leer gelassen werden.

Hier ist es sinnvoll, die Häckchen bei den Prevent ...-Optionen zu setzen.

Advanced settings

OptionBeschreibung
Service Provider Entity IdEntity ID der Wordpress-Installation, bspw. https://www.schulit.de/
Sign AuthnRequest✔️ Häckchen setzen
NameIDFormaturn:oasis:names:tc:SAML:1.1:nameid-format:unspecified
requestAuthnContextkeine Option auswählen
Service Provider X.509 CertificateInhalt des vorhin erzeugten Zertifikats (cert.pem)
Service Provider Private KeyInhalt des vorhin erzeugten privaten Schlüssels (key.pem)
Signature Algorithmhttp://www.w3.org/2001/04/xmldsig-more#rsa-sha256
Digest Algorithmhttp://www.w3.org/2001/04/xmlenc#sha256

Single Sign-On konfigurieren

Dienst erstellen

Unter Verwaltung ➜ Dienste einen neuen SAML-Dienst erstellen.

OptionWert
URLDie Anmelde URL zum Wordpress, also bspw. https://www.schulit.de/wp-login.php
Entity IDDie Entity ID der Wordpress-Installation, bspw. https://www.schulit.de/
Namebeliebig
Beschreibungbeliebig
Iconbeliebig
Assertion Customer URLhttps://www.schulit.de/wp-login.php?saml_acs, wobei www.schulit.de durch die Wordpress-Domain auszutauschen ist.
ZertifikatZertifikat der Wordpress-Installation (Inhalt von cert.pem)

Attribut für Rollen erstellen

Unter Verwaltung ➜ Attribute ein neues Attribut erstellen.

OptionWert
Namewp-roles
AnzeigenameWordpress-Rolle
Beschreibungbeliebig
Benutzer können dieses Attribut ändern❌ Häckchen nicht setzen
SAML Attribut-Nameurn:roles
TypAuswahlfeld
DiensteHier den Wordpress-Dienst auswählen

Unter Optionen kann die Option Mehrfach-Auswahl möglich aktiviert oder nicht aktiviert werden (je nach Anwendungswunsch).

Folgende Optionen eintragen:

SchlüsselWert
ROLE_ADMINAdministrator
ROLE_EDITOREditor
ROLE_AUTHORAuthor
ROLE_CONTRIBUTORContributor
ROLE_SCUBSCRIBERSubscriber
Fertig

Der Dienst ist nun eingerichtet und kann Benutzern zugewiesen werden.