Drupal SSO genera sessioni utente errate

Salve,
stiamo utilizzando l’SSO da Drupal e un comportamento involontario è che tutti gli utenti vedono il nostro server Drupal come connesso, oltre alla loro sessione corrente. Questo sta causando molta preoccupazione e confusione nella nostra comunità, poiché vedono un altro dispositivo connesso che non è il loro.

È possibile disabilitare questa funzionalità, o meglio ancora, possiamo escludere determinati indirizzi IP per nascondere il nostro server dall’elenco dei dispositivi utilizzati di recente?

L’utilizzo di un provider SSO esterno non ne causa la visualizzazione in questo elenco.

Ciò che vedi potrebbe essere un artefatto di qualcos’altro, come la creazione di chiavi API per gli utenti, ecc.

Ho già incontrato questo problema in passato quando un sito Drupal fungeva da provider SSO per Discourse. Non ho mai riscontrato problemi simili con altri provider SSO. Stai utilizzando un modulo Drupal per l’SSO? Se sì, puoi indicarci dove trovarlo?

Puoi nascondere la sezione “Dispositivi utilizzati di recente” tramite CSS. Potrebbe essere una buona soluzione temporanea per il problema.

.control-group.pref-auth-tokens {
    display: none;
}

Stiamo utilizzando il modulo contrib Discourse Forum Integration https://www.drupal.org/project/discourse

Grazie per il suggerimento, l’abbiamo temporaneamente nascosto usando CSS. Ma sarebbe bello sapere se è configurabile in modo da nascondere solo il nostro server dall’elenco, permettendo agli utenti di continuare a vedere i loro dispositivi usati di recente.

Ti suggerisco di contattare lo sviluppatore di Drupal: l’ultimo aggiornamento di quel modulo sembra risalire al 2015, con il supporto indicato per la versione 1.2.0.beta5 di Discourse (rilasciata da noi nel gennaio 2015). Anche se sono contento di vedere che funziona ancora, non sorprende che ci siano alcuni piccoli problemi.

Vale anche la pena aggiungere che il modulo Drupal collegato sopra è disponibile solo per Drupal 7, che raggiungerà la fine del ciclo di vita nel novembre 2021. (Non è domani, ma è abbastanza presto.)

Sì, grazie, ne siamo a conoscenza (e non siamo entusiasti, dato che il nostro sito è stato lanciato di recente :disappointed_relieved: )

Ho dato un’occhiata veloce al modulo Drupal Discourse. Non è chiaro cosa stia causando il problema, ma per qualche motivo l’User Agent e l’IP del client vengono impostati sui valori del server Drupal invece che sull’IP e sull’User Agent dell’utente durante l’accesso SSO. Ciò potrebbe essere correlato al funzionamento del metodo drupal_goto.

Una cosa che ho notato nel modulo è che offre alcune funzionalità per visualizzare contenuti di Discourse su Drupal. Per fare ciò, invia richieste API a Discourse includendo le credenziali API nella stringa di query. Questo tipo di autenticazione API è stato deprecato da Discourse. In un futuro prossimo, questo tipo di richieste smetterà di funzionare. Se stai utilizzando il modulo per visualizzare contenuti di Discourse sul tuo sito Drupal, potrebbe essere necessario approfondire la questione.

Questo modulo è stato aggiornato per l’ultima volta nel 2015. Esiste un modulo Drupal Discourse SSO aggiornato più recentemente: https://www.drupal.org/project/discourse_sso. Penso che offra solo funzionalità SSO. Non sembra avere alcun codice che aggiunga contenuti di Discourse a un sito Drupal.

Grazie per le informazioni aggiuntive, Simon. Stiamo effettivamente facendo esattamente questo: la sezione dei commenti del nostro blog utilizza un argomento di Discourse per le discussioni degli utenti, e il contenuto di questo argomento viene poi visualizzato anche nell’articolo del blog su Drupal.

Sarebbe questo il posto giusto per saperne di più sulla deprecazione dell’autenticazione API? Discourse REST API Documentation

Grazie ancora!

Sì, l’esempio di richiesta POST fornito all’inizio di quell’argomento contiene le informazioni di cui hai bisogno. Per modificare il modulo Drupal Discourse in modo che utilizzi l’autenticazione basata su intestazioni, sarebbe necessaria solo una piccola modifica al suo codice.

Assumendo che il tuo sito Discourse sia aggiornato, è probabile che ci sia un avviso sull’uso di metodi di autenticazione deprecati per le richieste API nella tua dashboard di amministrazione di Discourse.