User Tools

Site Tools


Sidebar

cn:ccr:aai:howto:authz:home

Authz (Gestione delle Autorizzazioni)

INFN-AAI mette a disposizione sia via protocollo LDAP che via protocollo SAML, alcuni strumenti per la gestione delle autorizzazioni, tutti conformi alla sua architettura, basata sul modello RBAC (Role Based Authorization Control).

Questo è reso possibile grazie ad alcuni automatismi implementati in GODiVA (il sistema di gestione delle Identità Digitali dell'INFN) il cui DataBase è ormai l'unico autoritativo nell'INFN.

Ruoli Istituzionali

In GODiVA sono gestiti i vari ruoli istituzionali relativi a Dipendenti, Associati, Ospiti e Visitatori. Le Nomine, le afferenze scientifiche, le mansioni, l'organigramma, ecc. ecc. insomma qualunque ruolo legato allo stato giuridico di una persona, all'interno dell'INFN.

Tutto questo viene gestito in GODiVA attraverso una struttura dati "RuoloAnagrafica" nella quale ogni ruolo è legato alla corrispondente Identità Digitale. Tali strutture sono strutture ad albero (i Domini di GODiVA) nelle quali hanno privilegi di scrittura solo gli uffici che sono istituzionalmente preposti alla gestione delle relative informazioni

Gruppi Logici

Per poter gestire gruppi di persone, indipendentemente dal loro stato giuridico all'interno dell'INFN, la struttura descritta nel precedente paragrafo è stata estesa anche alla gestione dei "Gruppi Logici" che non sono altro che un ulteriore albero di RuoliAnagafica (o semplicemente dominio dei Gruppi" in GODiVA) nel quale è possibile delegare la gestione dei nodi o rami o domini.

Una guida dettagliata su come gestire i gruppi logici è in Gruppi logici

Ereditarietà

E' possibile associare una Identità Digitale ad un dominio (ovvero assegnare ad essa un ruolo) anche in modo indiretto, ossia associando al dominio un gruppo di Identità Digitali, opportunamente selezionate. Ad esempio è possibile associare al dominio "Accessi –> INFN –> LNF –> EPS Tornello Stazione" tutte le Identità Digitali che hanno un ruolo attivo di "Dipendente in Amministrazione Centrale"

isMemberOf

Qualunque Ruolo associato ad una Identità Digitale presente in GODiVA viene trasformato in un opportuno valore dell'attributo isMemberOf che può essere quindi utilizzato per gestire il processo di Autorizzazione.

Ad esempio il ruolo di responsabile nazionale del progetto AAI di Commissione Calcolo e Reti (Commissione Scientifica Nazionale 7) si traduce nel valore

isMemberOf: s:csn7:ccr_aai::resp:nazionale

Nel caso di ruoli ereditati, al relativo valore dell'attributo isMemberOf viene agganciato (@) anche l'origine del ruolo ereditato (inserito tra parentesi quadre []).

isMemberOf: accessi:infn:lnf:eps_tornello_stazione::acc_dip:acc_dip_norm@[i:infn:ac::d:tecnico|collaboratore_tecnico_e.r.|liv-5_fascia-0]

Gruppi LDAP

Ad ogni ruolo definito in GODiVA corrisponde un Gruppo LDAP il cui DN è formato concatenando i codici numerici che identificano i nodi dei vari alberi di RuoloAnagrafica in GODiVA e non è quindi "human-readable". Il nome che ha senso per noi umani si trova nell'attributo "description" del relativo Gruppo LDAP. Questo rende i Gruppi LDAP facilmente utilizzabili solo da software per i quali è possibile configurare su quale attributo effettuare la ricerca.

Oltre ai Gruppi LDAP, per accessi attraverso il protocollo SAML, l'IdP definisce dei "gruppi" aggiuntivi concatenando la stringa "infn.it:ismemberof=" al valore dell'attributo isMemberOf

Entitlement

Nell'architettura di INFN-AAI sono utilizzati due attributi di tipo entitlement:

  • schAcUserStatus (definito nello SCHema for ACademia SCHAC)
  • eduPersonEntitlement (definito nello schema eduPerson di Internet2)

Per entrambi gli attributi è previsto un valore del tipo URN, con delega dello spazio dei nomi. Per il primo, la delega è implicita ed è definita dal nome a dominio dell'entità che definisce il valore dell'URN, che deve essere inserita dopo la "sezione" che individua la nazione, come definito nello SCHema for ACademia SCHAC

Ad esempio:

schacUserStatus: urn:schac:userStatus:it:infn.it:godiva-role:dipendente:attivo+ttl=nolimit
                                            ^
                                            |__  Delega implicita all'INFN

Il valore di URN da assegnare ad eduPersonEntitlement, come da specifiche di Internet2, deve essere un URN che dello spazio dei nomi definito da MACE. INFN-AAI ha la delega alla gestione dello spazio dei nomi definito a partire da urn:mace:infn.it

I valori di eduPersonEntitlement vengono assegnati dai processi di provisioning di GODiVA e possono essere sia "statici" che "dinamici" ossia il cui valore è calcolato in base ad opportuni parametri.

Un esempio di assegnazione statica sono i valori di eduPersonEntitlement che autorizano alla richiesta di certificati TCS Terena, rilasciati da DigiCert

eduPersonEntitlement: urn:mace:terena.org:tcs:personal-user
eduPersonEntitlement: urn:mace:terena.org:tcs:escience-user

che sono assegnati a tutte le Identità Digitali con un ruolo attivo di Dipendente o Associato. Il valore di schacUserStatus evidenziato nell'esempio precedente è calcolato in funzione del ruolo di dipendente e della scadenza del contratto ed è quindi dinamico.

RBEA (Role Based Entitlement Assignment)

Dominio con gestione di entitlement

Gli script Groovy eseguibili all'interno di GODiVA permettono di definire dinamicamente il valore degli attributi da assegnare ad una Identità Digitale ed in questo caso, lo script che implementa l'RBEA assegna a tutte le Identità Digitali che compaiono all'interno di un qualunque nodo il cui codice sia "ENTITLEMENTS" un valore di eduPersonEntitlement ottenuto dalla concatenazione di "urn:mace:infn.it:" e dal percorso del nodo in questione.

A tutte le Identità Digitali con un ruolo definito nel nodo mostrato in figura, verrà assegnato il valore di eduPersonEntitlement

eduPersonEntitlement: urn:mace:infn.it:g:infn:le:wp:admin

Il vantaggio nell'uso di entitlement di questo tipo rispetto ai valori dell'attributo isMemberOf è evidente in quanto il valore dell'entitlement non dipende dal motivo che ha portato l'assegnazione di un ruolo (o, detta in altri termini, dall'assegnazione diretta o ereditata).

SP SAML ed Utilizzo degli Entitlement

Gli attributi eduPersonEntitlement sono accessibili a chiunque attraverso query LDAP autenticate. Affinchè un SP SAML possa utilizzarli, è necessario richiederli esplicitamente in fase di registrazione dei metadati del SP, attraverso una opportuna regular-expression.

Nel caso relativo all'esempio in figura nella registrazione, per poter ricevere tutti i valori di eduPersonEntitlement definiti per i ruoli di WprdPress definiti per l'installazine presso la sezione di Lecce, sarà necessario che nella registrazione dei metadati del servizio sia indicata la seguente regular-expression

.*:infn:le:wp:.*
cn/ccr/aai/howto/authz/home.txt · Last modified: 2019/05/13 17:42 by enrico@infn.it