L’identity Management (IdM), rappresenta il risultato del lavoro congiuto del business e dell’IT per gestire i dati degli utenti su sistemi e applicazioni.
Fare IdM vuol dire considerare attributi, ruoli, risorse e autorizzazioni nel tentativo di rispondere in modo soddisfacente alle domande che più assillano gli amministratori di sistema:
Chi ha accesso a cosa? Quando? Come? Perché?
Tenere sotto controllo determinate informazioni è estremamente importante per una qualunque organizzazione aziendale: anni di esercizio potrebbero esporre l’azienda a considerevoli problemi di sicurezza, indipendentemente dalle dimensioni di questa.
Sfortunatamente oggi esistono ancora realtà aziendali, anche di grandi dimensioni, dove la gestione di tali informazioni è insufficiente o inefficace: la tendenza ad affidarsi troppo a supporti cartacei e ad operazioni manuali è estremamente pericolosa in quanto soggetta ad errori di tipo umano difficilmente controllabili.
La soluzione a questi problemi è un sistema automatico di supporto alla gestione del ciclo di vita delle identità digitali (soluzione IdM).
All’interno di una organizzazione una soluzione IdM si occupa fondamentalmente di:
- offrire le risorse e le informazioni giuste, al momento giusto, a chi ne ha i diritti;
- dare la possibilità di attivare processi di delega e approvazione delle autorizzazioni;
- proteggere l’infrastruttura IT da possibili furti di informazione;
- aiutare l’organizzazione a rispettare le norme vigenti;
- garantire il rispetto della privacy sui dati dei clienti, partner e dipendenti;
- semplificare la creazione e l’automatizzazione delle politiche di business, in modo tale da rafforzare la sicurezza, ridurre i costi di gestione e aumentare la produttività.
La costruzione di un’infrastruttura di Identity management spesso significa curare due aspetti distinti ma strettamente correlati: la gestione delle identità e la gestione degli accessi; per questa ragione il termine più indicato in questi contesti è IAM (Identity and Access Management).
Consideriamo la situazione descritta nella figura seguente: un tipico scenario aziendale in cui differenti gruppi di utenti (partner, impiegati, clienti..) hanno diverse strade per accedere ai vari servizi e applicazioni messe a disposizione dall’azienda. Ognuno di questi “sistemi” ha un proprio store e, di conseguenza, ognuno degli utenti avrà una propria credenziale di accesso e un proprio profilo su quel sistema. Il processo autorizzativo, completamente indipendente e delegato ad ogni singola applicazione, espone l’organizzazione al rischio concreto, come nel caso in questione, di avere accessi non autorizzati (ex dipendenti) ad informazioni riservate.
Attraverso l’introduzione di una soluzione completa di Identity and Access Management, la situazione vista precedentemente si trasforma completamente; come mostrato di seguito, il sistema centralizzato di IAM si prende in carico tutti gli aspetti legati alla sicurezza delle comunicazioni tra gli utenti e le applicazioni, sincronizza le informazioni tra i diversi sistemi e si occupa dell’auditing e del logging di tutte le transazioni richieste con diversi livelli di configurazione.
Syncope è una soluzione IdM, implementata con tecnologia J2EE e rilasciata sotto licenza Apache 2.0.
Syncope, per poter essere utilizzato, necessita soltanto di un container J2EE (Apache Tomcat, per esempio) e di un DBMS. La maggior parte dei DBMS disponibili sul mercato o nel mondo Open Source sono completamente supportati.
Il codice sorgente di Syncope è attualmente ospitato da GoogleCode, versionato con SVN e implementato, come progetto overlay, con Apache Maven 3. Gli artifacts Maven, stabili, sono regolarmente pubblicati nel repository centrale , mentre gli snapshot releases sono disponibili su sonatype.
Syncope è composto da due principali sottosistemi:
- core – L’applicazione web che implementa le principali caratteristiche di IdM. Essa offre un’interfaccia RESTful per le chiamate applicative, implementa il provisioning attraverso il suo motore di workflow e lo strato di propagazione, infine gestisce la persistenza dei dati.
- console – L’interfaccia web di gestione per configurare e amministrare il core di Syncope. Come ogni altra applicazione esterna, la console comunica con il core attraverso chiamate REST.
Il core è un componente centrale nell’architettura di Syncope e si occupa dell’orchestrazione dell’intero flusso di dati in tutto il sistema. Viene coinvolto dopo una chiamata RESTful, processa i dati al fianco del workflow definito, si occupa della persistenza e della propagazione di questi verso le risorse configurate.
Syncope supporta la definizione di un descrittore XML in cui definire il ciclo di vita di un identità. Questo aspetto rende il sistema molto malleabile e adattabile alle più disparate situazioni.
La comunicazione con le risorse su cui effettuare provisioning dei dati è affidata ai connettori implementati nel progetto ConnId.
Questo progetto è stato derivato dagli identityconnectors, parte integrante di Sun Identity Manager, leader del mercato fino all’aquisizione da parte di Oracle.
Su questo blog si comincia a parlare anche di Identity Management..
Bravo Andrea 🙂
Io ringrazierei intanto Fabio che ha scritto un post semplice per un argomento complesso 🙂
Mi auguro che anche questo spazio sia un buon canale per diffondere un po’ di informazioni su questi argomenti spesso ignorati in molti ambiti dove invece dovrebbero essere di primaria importanza.
Andrea, è stato un piacere.
Grazie a te per lo spazio offerto.