custom:development:authentications

Differenze

Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.

Link a questa pagina di confronto

Entrambe le parti precedenti la revisione Revisione precedente
Prossima revisione
Revisione precedente
custom:development:authentications [2020/07/02 15:47]
giorgio.scali
custom:development:authentications [2020/07/02 15:55] (versione attuale)
giorgio.scali
Linea 1: Linea 1:
 ======Guida ai diversi tipi di autenticazione====== ======Guida ai diversi tipi di autenticazione======
 +
  
 =====Autenticazione con Utente Anonimo===== =====Autenticazione con Utente Anonimo=====
Linea 5: Linea 6:
 Per accedere tramite utente anonimo è necessario impostare, lato webclient, determinate porzioni di codice che attivino il riconoscimento di tale utente da parte del sistema di autenticazione di Geoweb. Per accedere tramite utente anonimo è necessario impostare, lato webclient, determinate porzioni di codice che attivino il riconoscimento di tale utente da parte del sistema di autenticazione di Geoweb.
  
-\\  +===Procedure di configurazione===
-**Procedure di configurazione**+
  
 In Geoweb, il sistema di riconoscimento di un utente anonimo è già configurato,​ sebbene sia disabilitato di default. Perciò, per abilitare questo tipo di autenticazione,​ è necessario semplicemente commentare e decommentare alcune porzioni di codice all'​interno di uno specifico file. In Geoweb, il sistema di riconoscimento di un utente anonimo è già configurato,​ sebbene sia disabilitato di default. Perciò, per abilitare questo tipo di autenticazione,​ è necessario semplicemente commentare e decommentare alcune porzioni di codice all'​interno di uno specifico file.
Linea 15: Linea 15:
   * GwAnonymousAccessService.java   * GwAnonymousAccessService.java
  
-\\  +===Commentare e decommentare il codice===
-**Commentare e decommentare il codice**+
  
 Il primo passo è il più importante: //​spring-security.xml//​ è il file in cui viene configurata la gestione degli accessi e delle autenticazioni. Al suo interno basterà cercare il tag ''​@@@ANONYMOUS_USER@@@''​ e seguire quanto riportato nei commenti a seguito di esso, poiché questi contengono tutte le informazioni necessarie su quali parti di codice è necessario commentare e quali decommentare. Il primo passo è il più importante: //​spring-security.xml//​ è il file in cui viene configurata la gestione degli accessi e delle autenticazioni. Al suo interno basterà cercare il tag ''​@@@ANONYMOUS_USER@@@''​ e seguire quanto riportato nei commenti a seguito di esso, poiché questi contengono tutte le informazioni necessarie su quali parti di codice è necessario commentare e quali decommentare.
Linea 27: Linea 26:
   scelto tra quelli già presenti o semplicemente creato ad-hoc per l'​utente anonimo (scelta consigliata).   scelto tra quelli già presenti o semplicemente creato ad-hoc per l'​utente anonimo (scelta consigliata).
  
-\\  +===Abilitare o disabilitare servizi di interoperabilità per autenticazione anonima===
-**Abilitare o disabilitare servizi di interoperabilità per autenticazione anonima**+
  
 All'​interno del file //​configuration.properties//,​ sotto la sezione //ANONYMOUS USER//, è presente una proprietà chiamata ''​anonymousUser.interoperabilityServicesAllowed''​. Tramite questa proprietà è possibile abilitare o disabilitare l'​accesso ai servizi di interoperabilità da parte di un utente anonimo. Ciò avviene attraverso un controllo effettuato dalla funzione ''​getInteroperabilityServicesAllowed()''​ fornito dal servizio //​GwAnonymousAccessService.java//​. All'​interno del file //​configuration.properties//,​ sotto la sezione //ANONYMOUS USER//, è presente una proprietà chiamata ''​anonymousUser.interoperabilityServicesAllowed''​. Tramite questa proprietà è possibile abilitare o disabilitare l'​accesso ai servizi di interoperabilità da parte di un utente anonimo. Ciò avviene attraverso un controllo effettuato dalla funzione ''​getInteroperabilityServicesAllowed()''​ fornito dal servizio //​GwAnonymousAccessService.java//​.
  
-\\  +===Versioni di Geoweb precedenti alla 4.4.0===
-**Versioni di Geoweb precedenti alla 4.4.0**+
  
 Nelle versioni precedenti di Geoweb, l'​abilitazione dell'​utente anonimo può risultare più complessa a causa dell'​assenza del suddetto tag. Nonostante ciò, le informazioni necessarie sono le stesse: di seguito saranno elencate le porzioni di codice che devono essere decommentate o (se assenti) inserite all'​interno del file //​spring-security.xml//​ per abilitare l'​autenticazione anonima. Nelle versioni precedenti di Geoweb, l'​abilitazione dell'​utente anonimo può risultare più complessa a causa dell'​assenza del suddetto tag. Nonostante ciò, le informazioni necessarie sono le stesse: di seguito saranno elencate le porzioni di codice che devono essere decommentate o (se assenti) inserite all'​interno del file //​spring-security.xml//​ per abilitare l'​autenticazione anonima.
Linea 50: Linea 47:
 **NOTA:** È fondamentale sapere che Geoweb funziona solo con la configurazione LDAP Active Directory! **NOTA:** È fondamentale sapere che Geoweb funziona solo con la configurazione LDAP Active Directory!
  
-\\  +===Ottenere le informazioni necessarie===
-**Ottenere le informazioni necessarie**+
  
 La prima cosa da fare per configurare l'​autenticazione tramite LDAP è ottenere i dati necessari allo stesso. Questi devono essere forniti dal cliente e comprendono un indirizzo LDAP ed eventuali numeri di porta configurati dal cliente, nel caso in cui egli non stia utilizzando le porte standard. La prima cosa da fare per configurare l'​autenticazione tramite LDAP è ottenere i dati necessari allo stesso. Questi devono essere forniti dal cliente e comprendono un indirizzo LDAP ed eventuali numeri di porta configurati dal cliente, nel caso in cui egli non stia utilizzando le porte standard.
  
-\\  +===Inserire le informazioni nella configurazione===
-**Inserire le informazioni nella configurazione**+
  
 Una volta ottenute le informazioni,​ queste andranno inserite nell'​apposita porzione di codice all'​interno del file //​spring-security.xml//​ di cui viene accennato sopra. Una volta ottenute le informazioni,​ queste andranno inserite nell'​apposita porzione di codice all'​interno del file //​spring-security.xml//​ di cui viene accennato sopra.
Linea 71: Linea 66:
 **NOTA:** Nel caso in cui l'​utente non stia utilizzando le porte standard, questo è il punto in cui vanno inseriti gli eventuali numeri di porta da lui forniti. **NOTA:** Nel caso in cui l'​utente non stia utilizzando le porte standard, questo è il punto in cui vanno inseriti gli eventuali numeri di porta da lui forniti.
  
-\\  +===Configurare riferimento per authentication manager===
-**Configurare riferimento per authentication manager**+
  
 Una volta inseriti i dati, un'​altra porzione di codice di cui occuparsi è quella relativa all'//​authentication manager//, tramite il quale il servizio di autenticazione troverà il riferimento al LDAP che è stato appena impostato. Una volta inseriti i dati, un'​altra porzione di codice di cui occuparsi è quella relativa all'//​authentication manager//, tramite il quale il servizio di autenticazione troverà il riferimento al LDAP che è stato appena impostato.
Linea 82: Linea 76:
  
 **NOTA:** La stringa che segue il parametro "​ref",​ in questo caso '​adAuthenticationProvider',​ fa riferimento al parametro ID del bean nel codice precedente. **NOTA:** La stringa che segue il parametro "​ref",​ in questo caso '​adAuthenticationProvider',​ fa riferimento al parametro ID del bean nel codice precedente.
 +
  
 =====Autenticazione con OAuth2===== =====Autenticazione con OAuth2=====
Linea 90: Linea 85:
   all'​interno della sezione di questa Wiki dedicata agli utenti.   all'​interno della sezione di questa Wiki dedicata agli utenti.
  
-\\  +===Recuperare dati di accesso===
-**Recuperare dati di accesso**+
  
 È importante sapere che, in Geoweb, le chiamate tramite OAuth2 funzionano tramite un sistema di token: utilizzando determinati parametri, l'​utente può effettuare una richiesta per un token, il quale verrà utilizzato per aggiornare un ticket di accesso, necessario per ottenere l'​autorizzazione ai servizi esterni di Geoweb. È importante sapere che, in Geoweb, le chiamate tramite OAuth2 funzionano tramite un sistema di token: utilizzando determinati parametri, l'​utente può effettuare una richiesta per un token, il quale verrà utilizzato per aggiornare un ticket di accesso, necessario per ottenere l'​autorizzazione ai servizi esterni di Geoweb.
Linea 102: Linea 96:
 **NOTA:** Per questioni di sicurezza, è sempre consigliabile fornire credenziali (username e password) relative ad un account di Geoweb espressamente creato per questo scopo. **NOTA:** Per questioni di sicurezza, è sempre consigliabile fornire credenziali (username e password) relative ad un account di Geoweb espressamente creato per questo scopo.
  
-\\  +===client_id e client_secret===
-**//client_id// //client_secret//**+
  
 //​client_id//​ e //​client_secret//​ sono due valori specifici (paragonabili ad una coppia //​username/​password//​) definiti all'​interno del file //​spring-security.xml//​. All'​interno di questo file bisognerà cercare il seguente tag: //​client_id//​ e //​client_secret//​ sono due valori specifici (paragonabili ad una coppia //​username/​password//​) definiti all'​interno del file //​spring-security.xml//​. All'​interno di questo file bisognerà cercare il seguente tag:
Linea 118: Linea 111:
  
 Ad ogni modo, l'​utente dovrebbe essere in grado di ottenere questi dati tramite le informazioni fornite dalla sezione per gli utenti di questa Wiki. Ad ogni modo, l'​utente dovrebbe essere in grado di ottenere questi dati tramite le informazioni fornite dalla sezione per gli utenti di questa Wiki.
 +
  
 =====Autenticazione con Header SM_USER===== =====Autenticazione con Header SM_USER=====
Linea 123: Linea 117:
 L'​autenticazione con l'​header SM_USER avviene sfruttando come credenziali di accesso dei dati preimpostati e specificatamente codificati per questo scopo. Viene tipicamente utilizzata per autorizzare chiamate rivolte a Web Service, che possono di volta in volta essere integrati nei vari progetti di commessa. Ma funziona per tutte le chiamate. L'​utilizzo ne è scoraggiato,​ in favore di altri tipi di autenticazine come OAuth2. Viene mantenuta in quei casi dove o ci siano difficoltà nell'​implementare altri tipi di autenticazione,​ o in fase di develop, per poter testare velocemente i web services, bypassando possibili problemi derivanti dall'​autenticazione,​ in ottica di affrontarli piu avanti. L'​autenticazione con l'​header SM_USER avviene sfruttando come credenziali di accesso dei dati preimpostati e specificatamente codificati per questo scopo. Viene tipicamente utilizzata per autorizzare chiamate rivolte a Web Service, che possono di volta in volta essere integrati nei vari progetti di commessa. Ma funziona per tutte le chiamate. L'​utilizzo ne è scoraggiato,​ in favore di altri tipi di autenticazine come OAuth2. Viene mantenuta in quei casi dove o ci siano difficoltà nell'​implementare altri tipi di autenticazione,​ o in fase di develop, per poter testare velocemente i web services, bypassando possibili problemi derivanti dall'​autenticazione,​ in ottica di affrontarli piu avanti.
  
-**Creazione credenziali**+===Creazione credenziali===
  
 Il primo passo è quello di creare le credenziali relative all'​utente SM_USER. Il primo passo è quello di creare le credenziali relative all'​utente SM_USER.
-Esse devono essere dichiarate all'​interno del file //​configuration.properties//​.+Esse devono essere dichiarate all'​interno del file //​configuration.properties// ​e sono le proprità ''​preAuthUser''​ e ''​preAuthKey''​.
 Per convenzione sotto la sezione ''​PRE AUTHENTICATION CREDENTIALS (optional)''​ del macro blocco ''​A U T H E N T I C A T I O N''​ Per convenzione sotto la sezione ''​PRE AUTHENTICATION CREDENTIALS (optional)''​ del macro blocco ''​A U T H E N T I C A T I O N''​
  
Linea 150: Linea 144:
 </​code>​ </​code>​
  
-\\  +===Codificare le credenziali===
-**Codificare le credenziali**+
  
 Una volta ottenute queste credenziali,​ sarà necessario codificare una concatenazione delle due stringhe, preAuthUser e preAuthKey, come nella formula seguente: Una volta ottenute queste credenziali,​ sarà necessario codificare una concatenazione delle due stringhe, preAuthUser e preAuthKey, come nella formula seguente:
Linea 162: Linea 155:
 </​code>​ </​code>​
 <​code>​ <​code>​
- SM_USER = 8f8ef642349a8b961cb588b0a92901676970415f60a9d6e6961346c0969390c4d0afc50bd144207106df2e57707dddbe81f3684b267abd706034495f06398495+ SM_USER = '8f8ef642349a8b961cb588b0a92901676970415f60a9d6e6961346c0969390c4d0afc50bd144207106df2e57707dddbe81f3684b267abd706034495f06398495'
 </​code>​ </​code>​
  
 Per codificare una stringa con ''​SHA512'',​ si può utilizzare uno dei tanti [[https://​emn178.github.io/​online-tools/​sha512.html|tool online free]]. Per codificare una stringa con ''​SHA512'',​ si può utilizzare uno dei tanti [[https://​emn178.github.io/​online-tools/​sha512.html|tool online free]].
  
-**Utilizzare il token**+===Utilizzare il token=== 
 Una volta ottenuta la stringa bisogna utlizzarla come valore dell'​header con nome ''​SM_USER''​ per ogni chiamata che necessita di essere autorizzata. Una volta ottenuta la stringa bisogna utlizzarla come valore dell'​header con nome ''​SM_USER''​ per ogni chiamata che necessita di essere autorizzata.
 +^ Header name ^ Header value ^
 +| SM_USER | 8f8ef642349a8b961cb588b0a92901676970415f60a9d6e6961346c0969390c4d0afc50bd144207106df2e57707dddbe81f3684b267abd706034495f06398495 |
  
  
  • custom/development/authentications.1593697620.txt.gz
  • Ultima modifica: 2020/07/02 15:47
  • da giorgio.scali