Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Django Session & Multi Tenant

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.

Django Session & Multi Tenant

Come sfruttare le potenzialità della session auth di Django in un progetto Multi Tenant

Avatar for Matteo Vitali

Matteo Vitali

June 06, 2022
Tweet

Other Decks in Programming

Transcript

  1. Matteo Vitali Python Django backend developer Sociologo di formazione con

    una smodata passione per l'informatica. Utente Gnu/Linux per scelta e sostenitore del software libero e open source. In 20tab ricopro la posizione di backend developer e sviluppare in Python e Django è quello che prediligo. 20tab.com
  2. Agenda 1 2 3 Multi Tenant e Django session auth

    Use case (esempi di codice) Conclusioni
  3. Multi tenant La “letteratura” sull’argomento multi tenant è abbastanza varia

    a approfondita e come del resto lo sono anche i metodi e gli approcci alla gestione a tenant multipli.
  4. “Con il termine Multi tenant ci si riferisce ad una

    architettura software in cui una sua singola istanza è eseguita da un server ed è fruita da diverse organizzazioni che, ciascuna con le sue peculiarità ambientali, costituiscono concettualmente uno specifico tenant”. Fonte: https://it.wikipedia.org/wiki/Multi-tenant Multi tenant # Definizione
  5. Multi tenant # Definizione, metodi e approcci “Le applicazioni multi-tenant

    consentono di servire più clienti con un'unica installazione dell'applicazione. Ogni cliente (tenant) ha i propri dati completamente isolati in tale architettura”. • Database condiviso e schema condivisi • Database condiviso e schema isolati • Database isolato e schema isolati • Tenant completamente isolati Fonte: https://books.agiliq.com/projects/django-multi-tenant/en/latest/index.html
  6. Use case # Gestionale ad uso scolastico Percorsi Competenze Trasversali

    e Orientamento (PCTO) • Ogni Scuola (“Dominio” del progetto) ha una grafica personalizzata (logo e paletta dei colori) • Ogni utente può assumere più profili/ruoli: switch user profile (Studente <> Tutor <> Insegnante <> Scuola <> Genitore)
  7. Use case Tecnologie e framework utilizzati • Django • Django

    Rest Framework (API RESTful) • ReactJS • PostgreSQL (database condiviso e schema condivisi) ogni risorsa presente a database ha una relazione diretta o indiretta con il tenant.
  8. Django - How to use sessions # Definizioni Il session

    framework di Django consente di archiviare e recuperare dati del visitatore del sito. Memorizza i dati server side e astrae l'invio e la ricezione di cookie, i quali contengono un ID di sessione. Il cookie della sessione di autenticazione memorizzato nel browser, per impostazione predefinita, è denominato sessionid. Volendo, lo si può modificare impostando il SESSION_COOKIE_NAME
  9. Django - How to use sessions Esaminando l’header della request

    di un utente autenticato in Django, vedremo qualcosa di simile: { 'Cookie': 'sessionid=g9eflhxbeih1lgmslnybt5dn21zgk28t'; csrftoken=D3DtmfPKxriKMoy70eYikf8pUEVMTy3bDTczk8Ni0BNFVArAWg9oGat5V8PfKQW1 } L'utente che effettua questo tipo di richiesta, per Django, risulterà autenticato. Fonte: https://www.valentinog.com/blog/django-session-graphql/
  10. Conclusioni 1 2 Ottimo lavoro di squadra Tanta esperienza #

    Cosa ci portiamo a casa (e non) 3 4 Sicurezza (?) Django admin multi tenant