Java  »  Articoli  »  JSP e servlet 

Java Authentication and Authorization Service

di: Pasquale Congiustì     19 Maggio 2008

L'aspetto della sicurezza di un sistema informatico, sia esso in ambiente distribuito, sia esso un'applicazione desktop, viene troppo spesso trascurato da chi si dovrebbe occupare di implementare servizi che siano efficienti e sicuri. Tante volte si sottovaluta l'impatto, tante volte ci si occupa in maniera sommaria della questione adottando tecniche difficilmente manutenibili. Molto spesso vengono alla ribalta notizie di violazione dei sistemi informatici e la questione della sicurezza viene apprezzata tantissimo dalle aziende soprattutto in termini di investimenti. Portare informazioni sensibili su un media come Internet e non preoccuparsi di gestire efficientemente le autorizzazioni diventa una situazione altamente rischiosa, soprattutto considerando che si moltiplicano il numero di persone che attentano ai sistemi informatici, non più per semplice diletto, come avveniva un tempo, ma per rubare e rivendere dati sensibili.

Quando parliamo di autenticazione, soprattutto in ambito di applicazioni Web based, ci viene in mente l'associazione login e password e al limite un certificato per criptare i dati in ingresso e uscita dall'applicazione. In un semplice applicativo gestionale la gestione customizzata di questa funzione potrebbe essere sufficiente; ma come comportarsi in situazioni più complesse, dove, accanto all'autenticazione esistono diversi livelli di autorizzazione? Nell'articolo su SSL abbiamo imparato a criptare le informazioni, mantenendo quindi un grado di confidenzialità elevato all'esterno dell'applicazione. Ma come gestire in maniera efficiente i livelli interni di autorizzazione?

A partire dalla versione 1.4 della piattaforma Java, un prezioso strumento è stato integrato per rispondere alle domande poste in precedenza. Con JAAS (Java Authentication and Authorization Service) viene gestita la realizzazione di componenti adibiti esclusivamente alla gestione degli accessi alle risorse, rimanendo interamente indipendente dalla realizzazione concreta.

Questo servizio è alla base della gestione della sicurezza degli application server e dei componenti di logica applicativa (EJB in particolare) su di esso installati. Vedremo in questo primo articolo la parte dedicata all'autenticazione, mentre ci occuperemo della gestione delle autorizzazioni in un secondo momento.

Autenticazione e autorizzazione sono due differenti concetti che è bene distinguere. Seppure piuttosto semplice da capire, l'implementazione di JAAS è abbastanza criptica. Il perché è legato al fatto che JAAS vuole mantenere l'indipendenza tra la funzione da effettuare e la reale implementazione concreta.

Significa che i concetti di sicurezza sono astratti e l'implementazione è legata al particolare meccanismo di sicurezza che si utilizzerà di volta in volta. In questo modo, JAAS, si presenta come un modulo "pluggable" che permette di modificare e di utilizzare diversi meccanismi di sicurezza mantenendo intatto il codice client utilizzato.

Vediamo il set di API che utilizzeremo con l'aiuto del diagramma: le classi in bianco rappresentano quelle facenti parte del set di JAAS.

Figura 1. Architettura JAAS

Architettura JAAS

Guide Java

Guida Apache Struts

Il primo e più utilizzato tra i framework MVC del mondo Java,...

Guida Java Spring

Scoprire il lightweight container più famoso del mondo Java....

Guida Java 6

Prendendo le mosse dalla guida Java, già presente su HTML.it,...

Altre guide

Newsletter @Programmazione

Ogni mese, direttamente nella tua e-mail: articoli, script e guide su Java, Visual Basic, VB.Net ed i più diffusi linguaggi di programmazione.

Iscriviti alla newsletter

Altre newsletter

Corsi in aula

Corso Google AdWords Base

25 Giugno 2012 a Milano
Disponibilità: 7 Posti

Corso Google AdWords Base

05 Giugno 2012 a Roma
Disponibilità: 7 Posti