WordPress-Plugin (auris-sso)
auris-sso v1.0.0Das 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) — imvendor/-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
- Die Distributionsdatei
auris-sso.zipherunterladen. - Im WordPress-Admin zu Plugins → Hinzufügen → Plugin hochladen navigieren.
- Die ZIP-Datei hochladen und auf Jetzt installieren klicken.
- Auf Plugin aktivieren klicken.
Mit Composer (Fortgeschrittene)
{
"repositories": [
{
"type": "path",
"url": "packages/auris-sso"
}
],
"require": {
"auris/auris-sso": "*"
}
}composer installDann das Plugin unter Plugins → Installierte Plugins aktivieren.
Konfiguration
WordPress-Anwendung in der Auris Console registrieren
- Zu Console → Anwendungen → Anwendung erstellen navigieren.
- Typ Web auswählen.
- Unter Erlaubte Callback-URLs folgendes hinzufügen:
https://yourwordpresssite.com/wp-admin/admin-ajax.php?action=auris_callback - 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:
| Feld | Wert |
|---|---|
| Auris-Domain | auth.yourdomain.com (ohne https://) |
| Client-ID | Die Client-ID deiner Anwendung aus der Console |
| Redirect-URI | https://yourwordpresssite.com/wp-admin/admin-ajax.php?action=auris_callback |
| Tenant | Dein Tenant-Bezeichner (leer lassen für default) |
| Client-Secret | Optional — 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-Feld | WordPress-Feld |
|---|---|
user.id | Als Benutzer-Meta auris_user_id gespeichert |
user.email | user_email |
user.username | user_login (mit Eindeutigkeits-Suffix wenn bereits vergeben) |
user.firstName | first_name (Benutzer-Meta) |
user.lastName | last_name (Benutzer-Meta) |
user.roles | Auf 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-Rolle | WordPress-Rolle |
|---|---|
admin | administrator |
editor | editor |
author | author |
| (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-Rolle | WordPress-Rolle |
|---|---|
super_admin | administrator |
content_manager | editor |
contributor | author |
member | subscriber |
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"]| Attribut | Standard | Beschreibung |
|---|---|---|
label | "Mit Auris anmelden" | Schaltflächentext |
class | "auris-login-btn" | Zusätzliche CSS-Klassen |
redirect | Aktuelle URL | Weiterleitungsziel 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 (
/callbackvs./callback/) httpvs.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
- PHP SDK — Die zugrunde liegende PHP-Bibliothek des Plugins
- Hosted Login Guide — PKCE-Flow-Übersicht
- Enterprise SSO — SAML 2.0 und OIDC für B2B