Skip to Content

WordPress-Plugin (auris-sso)

auris-sso v1.0.0

Das auris-sso-WordPress-Plugin fügt Auris-basiertes Single Sign-On zu jeder WordPress-Website hinzu. Wenn ein Besucher auf den Auris-Login-Button klickt, wird er zur Auris-gehosteten Login-Seite weitergeleitet. Nach erfolgreicher Authentifizierung erstellt das Plugin automatisch ein WordPress-Benutzerkonto (JIT-Provisionierung) und ordnet Auris-Rollen WordPress-Rollen zu.

Das Plugin basiert auf der auris/sdk-PHP-Bibliothek und fügt keine weiteren Abhängigkeiten hinzu.


Voraussetzungen

  • WordPress 5.0 oder höher
  • PHP 7.4 oder höher
  • auris/sdk (PHP SDK) — im vendor/-Verzeichnis des Plugins gebündelt
  • Eine in der Auris Console registrierte Anwendung mit der WordPress-Callback-URL als erlaubter Callback-URL

Installation

Aus einer ZIP-Datei

  1. Die Distributionsdatei auris-sso.zip herunterladen.
  2. Im WordPress-Admin zu Plugins → Hinzufügen → Plugin hochladen navigieren.
  3. Die ZIP-Datei hochladen und auf Jetzt installieren klicken.
  4. Auf Plugin aktivieren klicken.

Mit Composer (Fortgeschrittene)

{ "repositories": [ { "type": "path", "url": "packages/auris-sso" } ], "require": { "auris/auris-sso": "*" } }
composer install

Dann das Plugin unter Plugins → Installierte Plugins aktivieren.


Konfiguration

WordPress-Anwendung in der Auris Console registrieren

  1. Zu Console → Anwendungen → Anwendung erstellen navigieren.
  2. Typ Web auswählen.
  3. Unter Erlaubte Callback-URLs folgendes hinzufügen:
    https://yourwordpresssite.com/wp-admin/admin-ajax.php?action=auris_callback
  4. Die Client-ID notieren — sie wird im nächsten Schritt benötigt.

Plugin in WordPress konfigurieren

Zu Einstellungen → Auris SSO im WordPress-Admin navigieren und ausfüllen:

FeldWert
Auris-Domainauth.yourdomain.com (ohne https://)
Client-IDDie Client-ID deiner Anwendung aus der Console
Redirect-URIhttps://yourwordpresssite.com/wp-admin/admin-ajax.php?action=auris_callback
TenantDein Tenant-Bezeichner (leer lassen für default)
Client-SecretOptional — nur für vertrauliche Apps erforderlich

Auf Änderungen speichern klicken.

Login-Flow testen

Die Login-Seite deiner Website (/wp-login.php) oder eine Seite mit dem Shortcode [auris_login_button] besuchen. Auf den Auris-Login-Button klicken und den gehosteten Login-Flow abschließen. Beim ersten Login wird automatisch ein neues WordPress-Benutzerkonto erstellt.

Die Redirect-URI muss exakt mit dem in der Auris Console registrierten Wert übereinstimmen. Eine Nichtübereinstimmung führt zum Fehler invalid_redirect_uri.


JIT-Benutzerbereitstellung

Wenn sich ein Benutzer zum ersten Mal über Auris authentifiziert, erstellt das Plugin automatisch ein neues WordPress-Benutzerkonto. Bei nachfolgenden Anmeldungen wird das bestehende Konto mit den neuesten Profildaten aus Auris aktualisiert.

Von Auris zu WordPress synchronisierte Felder:

Auris-FeldWordPress-Feld
user.idAls Benutzer-Meta auris_user_id gespeichert
user.emailuser_email
user.usernameuser_login (mit Eindeutigkeits-Suffix wenn bereits vergeben)
user.firstNamefirst_name (Benutzer-Meta)
user.lastNamelast_name (Benutzer-Meta)
user.rolesAuf WordPress-Rolle gemappt (siehe Rollenzuordnung)

Wenn die E-Mail-Adresse bereits in WordPress existiert, verknüpft das Plugin die Auris-Identität mit dem bestehenden Konto, anstatt ein Duplikat zu erstellen.


Rollenzuordnung

Konfiguriere, wie Auris-Rollen auf WordPress-Rollen gemappt werden, unter Einstellungen → Auris SSO → Rollenzuordnung.

Die Standardzuordnung:

Auris-RolleWordPress-Rolle
adminadministrator
editoreditor
authorauthor
(alles andere)subscriber

Einträge können in der Einstellungstabelle angepasst werden. Rollen werden der Reihe nach ausgewertet — die erste übereinstimmende Auris-Rolle bestimmt die WordPress-Rolle.

Beispiel benutzerdefinierte Zuordnung:

Auris-RolleWordPress-Rolle
super_adminadministrator
content_managereditor
contributorauthor
membersubscriber

Wenn keine Zuordnung übereinstimmt, erhält der Benutzer die Standard-WordPress-Rolle aus Einstellungen → Allgemein → Standard-Rolle neuer Benutzer.


Login-Button

Shortcode

Den Auris-Login-Button über den Shortcode zu jeder Seite oder jedem Beitrag hinzufügen:

[auris_login_button]

Optionale Attribute:

[auris_login_button label="Mit Firmenkonto anmelden" class="meine-benutzerdefinierte-klasse"]
AttributStandardBeschreibung
label"Mit Auris anmelden"Schaltflächentext
class"auris-login-btn"Zusätzliche CSS-Klassen
redirectAktuelle URLWeiterleitungsziel nach dem Login

Template-Funktion

Den Login-Button in Theme-Template-Dateien einfügen:

<?php if (function_exists('auris_sso_login_button')) { auris_sso_login_button([ 'label' => 'Mit Auris anmelden', 'class' => 'button button-primary', 'redirect' => home_url('/dashboard'), ]); }

WordPress-Standardformular ersetzen

Um das Standard-wp-login.php-Formular vollständig zu ersetzen, WordPress-Login-Formular ersetzen unter Einstellungen → Auris SSO aktivieren. Wenn aktiviert, leitet der Besuch von /wp-login.php automatisch zur Auris-gehosteten Login-Seite weiter.

Wenn das WordPress-Login-Formular ersetzt wird, können Administratorkonten sich weiterhin mit Benutzername und Passwort anmelden, indem sie /wp-login.php?fallback=true besuchen. Diese Umgehung ist nur für Wiederherstellungsszenarien gedacht.


Action-Hooks

Das Plugin löst WordPress-Action-Hooks an wichtigen Punkten im Authentifizierungsflow aus.

auris_sso_user_created

Wird ausgelöst, wenn ein neuer WordPress-Benutzer über JIT-Provisionierung erstellt wird.

add_action('auris_sso_user_created', function (int $wpUserId, array $aurisUser) { // $wpUserId — die neue WordPress-Benutzer-ID // $aurisUser — das Auris-Benutzer-Array: id, email, firstName, lastName, roles, metadata // Beispiel: Willkommens-E-Mail senden wp_mail( $aurisUser['email'], 'Willkommen bei ' . get_bloginfo('name'), 'Dein Konto wurde erstellt.' ); // Beispiel: Benutzerdefinierte User-Meta setzen update_user_meta($wpUserId, 'auris_tenant', $aurisUser['tenant'] ?? ''); }, 10, 2);

auris_sso_user_updated

Wird ausgelöst, wenn das Profil eines bestehenden WordPress-Benutzers beim Login aktualisiert wird.

add_action('auris_sso_user_updated', function (int $wpUserId, array $aurisUser) { // $wpUserId — die bestehende WordPress-Benutzer-ID // $aurisUser — die aktualisierten Auris-Benutzerdaten // Beispiel: Login-Ereignis protokollieren error_log(sprintf( '[Auris SSO] Benutzer %s (WP-ID: %d) hat sich angemeldet.', $aurisUser['email'], $wpUserId )); }, 10, 2);

auris_sso_login_failed

Wird ausgelöst, wenn der Auris-Callback empfangen wird, aber die Authentifizierung fehlschlägt.

add_action('auris_sso_login_failed', function (string $errorCode, string $errorMessage) { error_log('[Auris SSO] Anmeldung fehlgeschlagen: [' . $errorCode . '] ' . $errorMessage); });

Filter-Hooks

auris_sso_map_role

Ermöglicht benutzerdefinierte PHP-Logik für die Rollenzuordnung.

add_filter('auris_sso_map_role', function (string $wpRole, array $aurisRoles): string { if (in_array('billing_admin', $aurisRoles, true)) { return 'shop_manager'; // WooCommerce-Rolle } return $wpRole; }, 10, 2);

auris_sso_user_data

Ermöglicht das Ändern der Benutzerdaten, bevor ein WordPress-Benutzer erstellt oder aktualisiert wird.

add_filter('auris_sso_user_data', function (array $userData, array $aurisUser): array { // display_name auf Vor- + Nachname setzen $userData['display_name'] = trim( ($aurisUser['firstName'] ?? '') . ' ' . ($aurisUser['lastName'] ?? '') ); return $userData; }, 10, 2);

Fehlerbehebung

Redirect-URI-Konflikt

Die in der Auris Console registrierte URI muss zeichengenau mit der in den Plugin-Einstellungen konfigurierten übereinstimmen. Häufige Ursachen:

  • Unterschied beim abschließenden Schrägstrich (/callback vs. /callback/)
  • http vs. https
  • Eine Staging-Domain, die sich von der Produktion unterscheidet

SSL erforderlich

Auris erfordert HTTPS für alle Redirect-URIs in der Produktion. Für die lokale Entwicklung ein lokales SSL-Zertifikat verwenden.

Sitzung bleibt nach dem Login nicht bestehen

WordPress speichert das Sitzungs-Cookie für die Domain der Website. Bei einem Load Balancer oder Reverse Proxy sicherstellen, dass der X-Forwarded-Proto-Header weitergeleitet wird und is_ssl() in WordPress true zurückgibt.

Bei Bedarf zu wp-config.php hinzufügen:

if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https') { $_SERVER['HTTPS'] = 'on'; }

Benutzer erhalten die falsche WordPress-Rolle

Die Rollenzuordnungstabelle unter Einstellungen → Auris SSO → Rollenzuordnung prüfen. Rollen werden von oben nach unten ausgewertet. Die erste übereinstimmende Auris-Rolle gewinnt. Wenn keine übereinstimmt, wird die WordPress-Standardrolle verwendet.


Verwandte Seiten