Autenticazione e Autorizzazione Principal (Security Constraint)
In precedenza, relativamente alla configurazione del controllo degli accessi, ed in particolare del meccanismo di autenticazione, si è indicata anche la possibilità di utilizzare il tipo principal. Questa configurazione richiede che l’autenticazione sia delegata all’application server o qualunque altra modalità che permetta a GovWay di accedere al principal tramite la api HttpServletRequest.getUserPrincipal().
In precedenza, relativamente all’autorizzazione, si è descritta la possibilità di utilizzare ruoli con fonte esterna. Questa fonte richiede che la gestione dei ruoli sia delegata all’Application Server o a qualunque altra modalità che permetta a GovWay di accedere ai ruoli tramite la api HttpServletRequest.isUserInRole().
Le modalità di configurazione di utenti e ruoli sull’application server variano in funzione della versione utilizzata e pertanto si rimanda alla documentazione del prodotto.
È inoltre richiesto che l’applicazione utente sia protetta tramite un security-constraint.
Per abilitare la protezione è necessario intervenire all’interno dell’archivio govway.ear, editando il file definito nel war “govway.war/WEB-INF/web.xml”, dove è presente una configurazione di security constraint di default progettata per le url dei servizi esposti da GovWay nei vari profili di interoperabilità. Il metodo di autenticazione impostato per default è HTTP-BASIC. Per abilitare la protezione è sufficiente scommentare l’intera sezione che viene riportata di seguito.
<!-- start Security Constraint Authentication Container
<security-constraint>
<web-resource-collection>
<web-resource-name>AuthenticationContainer</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>*</role-name>
</auth-constraint>
</security-constraint>
<security-constraint>
<web-resource-collection>
<web-resource-name>AuthenticationContainer</web-resource-name>
<url-pattern>/IntegrationManager/PD</url-pattern>
<url-pattern>/IntegrationManager/MessageBox</url-pattern>
<url-pattern>/check</url-pattern>
<url-pattern>/api/IntegrationManager/PD</url-pattern>
<url-pattern>/api/IntegrationManager/MessageBox</url-pattern>
<url-pattern>/api/check</url-pattern>
<url-pattern>/modipa/IntegrationManager/PD</url-pattern>
<url-pattern>/modipa/IntegrationManager/MessageBox</url-pattern>
<url-pattern>/modipa/check</url-pattern>
<url-pattern>/soap/IntegrationManager/PD</url-pattern>
<url-pattern>/soap/IntegrationManager/MessageBox</url-pattern>
<url-pattern>/soap/check</url-pattern>
<url-pattern>/rest/IntegrationManager/PD</url-pattern>
<url-pattern>/rest/IntegrationManager/MessageBox</url-pattern>
<url-pattern>/rest/check</url-pattern>
<url-pattern>/spcoop/IntegrationManager/PD</url-pattern>
<url-pattern>/spcoop/IntegrationManager/MessageBox</url-pattern>
<url-pattern>/spcoop/check</url-pattern>
<url-pattern>/sdi/IntegrationManager/PD</url-pattern>
<url-pattern>/sdi/IntegrationManager/MessageBox</url-pattern>
<url-pattern>/sdi/check</url-pattern>
<url-pattern>/as4/IntegrationManager/PD</url-pattern>
<url-pattern>/as4/IntegrationManager/MessageBox</url-pattern>
<url-pattern>/as4/check</url-pattern>
<http-method>GET</http-method>
</web-resource-collection>
</security-constraint>
<security-constraint>
<web-resource-collection>
<web-resource-name>AuthenticationContainer</web-resource-name>
<url-pattern>/IntegrationManager/PD</url-pattern>
<url-pattern>/IntegrationManager/MessageBox</url-pattern>
<url-pattern>/check</url-pattern>
<url-pattern>/api/IntegrationManager/PD</url-pattern>
<url-pattern>/api/IntegrationManager/MessageBox</url-pattern>
<url-pattern>/api/check</url-pattern>
<url-pattern>/modipa/IntegrationManager/PD</url-pattern>
<url-pattern>/modipa/IntegrationManager/MessageBox</url-pattern>
<url-pattern>/modipa/check</url-pattern>
<url-pattern>/soap/IntegrationManager/PD</url-pattern>
<url-pattern>/soap/IntegrationManager/MessageBox</url-pattern>
<url-pattern>/soap/check</url-pattern>
<url-pattern>/rest/IntegrationManager/PD</url-pattern>
<url-pattern>/rest/IntegrationManager/MessageBox</url-pattern>
<url-pattern>/rest/check</url-pattern>
<url-pattern>/spcoop/IntegrationManager/PD</url-pattern>
<url-pattern>/spcoop/IntegrationManager/MessageBox</url-pattern>
<url-pattern>/spcoop/check</url-pattern>
<url-pattern>/sdi/IntegrationManager/PD</url-pattern>
<url-pattern>/sdi/IntegrationManager/MessageBox</url-pattern>
<url-pattern>/sdi/check</url-pattern>
<url-pattern>/as4/IntegrationManager/PD</url-pattern>
<url-pattern>/as4/IntegrationManager/MessageBox</url-pattern>
<url-pattern>/as4/check</url-pattern>
<http-method>TRACE</http-method>
<http-method>HEAD</http-method>
<http-method>DELETE</http-method>
<http-method>POST</http-method>
<http-method>CONNECT</http-method>
<http-method>OPTIONS</http-method>
<http-method>PUT</http-method>
</web-resource-collection>
<auth-constraint>
<role-name>*</role-name>
</auth-constraint>
</security-constraint>
<security-role>
<role-name>*</role-name>
</security-role>
<login-config>
<auth-method>BASIC</auth-method>
</login-config>
end Security Constraint Authentication Container -->