Skip to Content

Plugin WordPress (auris-sso)

auris-sso v1.0.0

Il plugin WordPress auris-sso aggiunge il Single Sign-On powered by Auris a qualsiasi sito WordPress. Quando un visitatore clicca il pulsante di login Auris, viene reindirizzato alla pagina di login ospitata da Auris. Al completamento dell’autenticazione, il plugin crea o aggiorna automaticamente un account utente WordPress (provisioning just-in-time) e mappa i ruoli Auris nei ruoli WordPress.

Il plugin è costruito sopra la libreria PHP auris/sdk e non aggiunge altre dipendenze.


Requisiti

  • WordPress 5.0 o superiore
  • PHP 7.4 o superiore
  • auris/sdk (PHP SDK) — incluso nella directory vendor/ del plugin
  • Un’applicazione registrata nella Console Auris con il callback URL di WordPress aggiunto come Allowed Callback URL

Installazione

Da File ZIP

  1. Scarica il file di distribuzione auris-sso.zip.
  2. Nell’admin WordPress, vai a Plugin → Aggiungi nuovo → Carica plugin.
  3. Carica il file zip e clicca Installa ora.
  4. Clicca Attiva plugin.

Usando Composer (Avanzato)

Se il tuo progetto WordPress usa Composer per la gestione delle dipendenze:

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

Poi attiva il plugin in Plugin → Plugin installati.


Configurazione

Registra un’applicazione WordPress nella Console Auris

  1. Vai a Console → Applicazioni → Crea applicazione.
  2. Seleziona il tipo Web.
  3. Sotto Allowed Callback URLs, aggiungi:
    https://tuosito-wordpress.com/wp-admin/admin-ajax.php?action=auris_callback
  4. Annota il Client ID — ti servirà nel passo successivo.

Configura il plugin in WordPress

Vai a Impostazioni → Auris SSO nell’admin WordPress e compila:

CampoValore
Dominio Aurisauth.tuodominio.com (senza https://)
Client IDIl Client ID della tua applicazione dalla Console
Redirect URIhttps://tuosito-wordpress.com/wp-admin/admin-ajax.php?action=auris_callback
TenantIl tuo identificativo tenant (lascia vuoto per default)
Client SecretOpzionale — necessario solo per app confidenziali

Clicca Salva modifiche.

Testa il flusso di login

Visita la pagina di login del tuo sito (/wp-login.php) o qualsiasi pagina con lo shortcode [auris_login_button]. Clicca il pulsante di login Auris e completa il flusso di login ospitato. Al primo login, un nuovo utente WordPress viene creato automaticamente.

Il Redirect URI deve corrispondere esattamente al valore registrato nella Console Auris. Una discrepanza causa il fallimento dell’autorizzazione con invalid_redirect_uri.


Provisioning Just-in-Time degli Utenti

Quando un utente si autentica tramite Auris per la prima volta, il plugin crea automaticamente un nuovo account utente WordPress. Ai login successivi, l’account esistente viene aggiornato con i dati del profilo più recenti da Auris.

Campi sincronizzati da Auris a WordPress:

Campo AurisCampo WordPress
user.idMemorizzato come user meta auris_user_id
user.emailuser_email
user.usernameuser_login (con suffisso univoco se già preso)
user.firstNamefirst_name (user meta)
user.lastNamelast_name (user meta)
user.rolesMappato al ruolo WordPress (vedi Mappatura Ruoli sotto)

Se l’indirizzo email esiste già in WordPress, il plugin collega l’identità Auris all’account esistente invece di crearne un duplicato.


Mappatura Ruoli

Configura come i ruoli Auris vengono mappati ai ruoli WordPress in Impostazioni → Auris SSO → Mappatura Ruoli.

La mappatura predefinita è:

Ruolo AurisRuolo WordPress
adminadministrator
editoreditor
authorauthor
(qualsiasi altro)subscriber

Per personalizzare la mappatura, aggiungi voci nella tabella delle impostazioni. I ruoli vengono valutati in ordine — il primo ruolo Auris corrispondente determina il ruolo WordPress. Se l’utente ha più ruoli Auris, la prima corrispondenza nella tabella vince.

Esempio di mappatura personalizzata:

Ruolo AurisRuolo WordPress
super_adminadministrator
content_managereditor
contributorauthor
membersubscriber

Se nessuna mappatura corrisponde, all’utente viene assegnato il ruolo WordPress predefinito configurato in Impostazioni → Generali → Ruolo predefinito dei nuovi utenti.


Pulsante di Login

Shortcode

Aggiungi il pulsante di login Auris a qualsiasi pagina o articolo usando lo shortcode:

[auris_login_button]

Attributi opzionali:

[auris_login_button label="Accedi con il tuo account aziendale" class="mia-classe-personalizzata"]
AttributoDefaultDescrizione
label"Accedi con Auris"Testo del pulsante
class"auris-login-btn"Classi CSS aggiuntive
redirectURL correnteDove reindirizzare dopo il login

Funzione Template

Aggiungi il pulsante di login ai file template del tuo tema:

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

Sostituire il Form di Login WordPress Predefinito

Per sostituire completamente il form standard wp-login.php, abilita Sostituisci form di login WordPress in Impostazioni → Auris SSO. Quando abilitato, visitare /wp-login.php reindirizza automaticamente i visitatori alla pagina di login ospitata da Auris.

Quando il form di login WordPress viene sostituito, gli account amministratore possono ancora accedere con nome utente e password visitando /wp-login.php?fallback=true. Questo bypass è destinato solo a scenari di recupero.


Action Hook

Il plugin lancia action hook WordPress nei momenti chiave del flusso di autenticazione. Usali per eseguire codice personalizzato dopo gli eventi SSO.

auris_sso_user_created

Scatta quando un nuovo utente WordPress viene creato tramite provisioning JIT.

add_action('auris_sso_user_created', function (int $wpUserId, array $aurisUser) { // $wpUserId — il nuovo ID utente WordPress // $aurisUser — l'array utente Auris: id, email, firstName, lastName, roles, metadata // Esempio: invia email di benvenuto wp_mail( $aurisUser['email'], 'Benvenuto su ' . get_bloginfo('name'), 'Il tuo account è stato creato.' ); // Esempio: assegna user meta personalizzato update_user_meta($wpUserId, 'auris_tenant', $aurisUser['tenant'] ?? ''); }, 10, 2);

auris_sso_user_updated

Scatta quando il profilo di un utente WordPress esistente viene aggiornato al login.

add_action('auris_sso_user_updated', function (int $wpUserId, array $aurisUser) { // $wpUserId — l'ID utente WordPress esistente // $aurisUser — i dati utente Auris aggiornati // Esempio: registra l'evento di login error_log(sprintf( '[Auris SSO] L\'utente %s (WP ID: %d) ha effettuato l\'accesso.', $aurisUser['email'], $wpUserId )); }, 10, 2);

auris_sso_login_failed

Scatta quando viene ricevuto il callback Auris ma l’autenticazione fallisce (state non valido, errore scambio token, ecc.).

add_action('auris_sso_login_failed', function (string $errorCode, string $errorMessage) { // $errorCode — codice di errore leggibile dalla macchina // $errorMessage — descrizione dell'errore leggibile dall'uomo error_log('[Auris SSO] Login fallito: [' . $errorCode . '] ' . $errorMessage); });

auris_sso_before_redirect

Scatta appena prima che il plugin reindirizzi l’utente alla pagina di login ospitata da Auris. Permette di modificare le opzioni dell’URL di login.

add_filter('auris_sso_login_options', function (array $options): array { // Forza il locale italiano per tutti i login SSO da questo sito $options['locale'] = 'it'; return $options; });

Filter Hook

auris_sso_map_role

Permette logica PHP personalizzata per la mappatura dei ruoli invece di (o in aggiunta a) la tabella delle impostazioni.

add_filter('auris_sso_map_role', function (string $wpRole, array $aurisRoles): string { // $wpRole — ruolo determinato dalla tabella delle impostazioni (o predefinito) // $aurisRoles — array di tutti i nomi dei ruoli Auris dell'utente if (in_array('billing_admin', $aurisRoles, true)) { return 'shop_manager'; // Ruolo WooCommerce } return $wpRole; // Passa al predefinito }, 10, 2);

auris_sso_user_data

Permette di modificare l’array dei dati utente prima che un utente WordPress venga creato o aggiornato.

add_filter('auris_sso_user_data', function (array $userData, array $aurisUser): array { // $userData — array di dati wp_insert_user / wp_update_user // $aurisUser — dati utente Auris grezzi // Esempio: imposta display_name come nome + cognome $userData['display_name'] = trim( ($aurisUser['firstName'] ?? '') . ' ' . ($aurisUser['lastName'] ?? '') ); return $userData; }, 10, 2);

Risoluzione dei Problemi

Redirect URI non corrispondente

L’URI registrato nella Console Auris deve essere identico carattere per carattere a quello configurato nelle impostazioni del plugin. Cause comuni:

  • Differenza di slash finale (/callback vs /callback/)
  • http vs https
  • Un dominio di staging diverso da quello di produzione

HTTPS richiesto

Auris richiede HTTPS per tutti i redirect URI in produzione. Per lo sviluppo locale, usa un certificato SSL locale o l’eccezione http://localhost (consulta la documentazione del tuo piano Auris per questa opzione).

Sessione non persistente dopo il login

WordPress salva il cookie di sessione nel dominio del sito. Se il tuo sito è dietro un load balancer o reverse proxy, assicurati che l’header X-Forwarded-Proto venga inoltrato e che is_ssl() restituisca true all’interno di WordPress.

Aggiungi a wp-config.php se necessario:

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

Loop di login degli utenti

Se gli utenti vengono reindirizzati alla pagina di login subito dopo l’autenticazione, verifica:

  1. L’URL del sito WordPress in Impostazioni → Generali corrisponde all’URL che l’utente sta visitando.
  2. Le costanti COOKIEPATH e COOKIE_DOMAIN in wp-config.php non sono impostate a valori troppo restrittivi.
  3. Il Redirect URI del plugin corrisponde esattamente alla registrazione nella Console Auris.

Gli utenti ottengono il ruolo WordPress errato

Controlla la tabella di mappatura dei ruoli in Impostazioni → Auris SSO → Mappatura Ruoli. I ruoli vengono valutati dall’alto verso il basso. Il primo ruolo Auris corrispondente vince. Se nessuno corrisponde, viene usato il ruolo predefinito WordPress.


Correlati