italia / spid-cie-php

Software Development Kit for easy SPID/CIE access integration with simplesamlphp - developed and mantained by Michele D'Amico @damikael
https://italia.github.io/spid-cie-php/
Apache License 2.0
82 stars 39 forks source link

abilitare l'accesso admin a simplesamlphp #17

Closed simevo closed 4 years ago

simevo commented 6 years ago

se dall'interfaccia di gestione si simplesamlphp: https://spid.example.com/myservice/module.php/core/frontpage_config.php si clicca su "Login as administrator" si ottiene:

immagine

Il messaggio di errore è:


SimpleSAML_Error_Error: UNHANDLEDEXCEPTION

Backtrace:
0 /srv/spid-php/vendor/simplesamlphp/simplesamlphp/www/module.php:180 (N/A)
Caused by: SimpleSAML_Error_Exception: Cannot find "admin" auth source, and admin privileges are required.
Backtrace:
2 /srv/spid-php/vendor/simplesamlphp/simplesamlphp/lib/SimpleSAML/Utils/Auth.php:69 (SimpleSAML\Utils\Auth::requireAdmin)
1 /srv/spid-php/vendor/simplesamlphp/simplesamlphp/modules/core/www/login-admin.php:10 (require)
0 /srv/spid-php/vendor/simplesamlphp/simplesamlphp/www/module.php:137 (N/A)

si tratta dello stesso problema menzionato qui: https://groups.google.com/d/topic/simplesamlphp/6hzYIElDUhg/discussion

simevo commented 6 years ago

una fix è aggiungere una authentication source in ./vendor/simplesamlphp/simplesamlphp/config/authsources.php:

 <?php

 $config = array(
+    'admin' => array(
+        'core:AdminPassword',
+    ),

segue PR ...

damikael commented 6 years ago

Quale potrebbe essere la necessità di abilitare di default l'accesso come amministratore? L'obiettivo di spid-php è scaricare e configurare automaticamente simplesamlphp per utilizzarlo esclusivamente come libreria, con l'obiettivo di avere un ambiente preconfigurato per l'integrazione con spid. Piuttosto invece, direi di nascondere completamente tutte le pagine di simplesamlphp "frontend" o personalizzarle (es. la pagina di presentazione metadata).

@alexrj che ne pensi?

simevo commented 6 years ago

in questa fase anche noi che sviluppiamo per teamdigiitale dobbiamo fare troubleshooting, a maggior ragione un utente X che si approccia a SPID.

L'accesso admin a simplesamlphp permette di fare proprio questo:

immagine

Si potrebbe rendere opzionale con un un opportuno settaggio nel config.yaml ...

damikael commented 6 years ago

D'accordo per inserire l'opzione nel config.yaml configurabile in fase di installazione. Di default l'accesso come amministratore sarà disabilitato.

simevo commented 6 years ago

mi sono chiesto: chissà come l'hanno risolta quei SP basati su simplesamplphp che sono già attivi e presenti nel registro ufficiale agid ?

Solo ACI si è premurata di customizzare il template e nascondere le pagine di configurazione simplesamlphp: https://login.aci.it/simplesaml/module.php/saml/sp/metadata.php/default-sp?output=xhtml https://login.aci.it/simplesaml/module.php/core/frontpage_welcome.php così facendo tuttavia hanno rotto il tema come si vede se si causa un errore https://login.aci.it/simplesaml/module.php/nonexistimgmodule (dove tra l'altro si vede che hanno installato la libreria in /var/simplesamlphp/www/module.php)

Questi due richiedeno subito la password di admin: https://www.prefettura.it/saml2/module.php/core/frontpage_welcome.php https://wifi.comune.borgo-san-lorenzo.fi.it/auth/module.php/core/frontpage_welcome.php

Infine gli altri lasciano visibili tutto: https://istanzeonline.comune.como.it/simplesaml/module.php/core/frontpage_welcome.php https://www.icugofoscolo.it/simplespidphp/www/module.php/core/frontpage_welcome.php https://www.icmantova3.gov.it/sites/all/libraries/simplesamlphp/www/module.php/core/frontpage_welcome.php https://servizionline.comune.fi.it/spidsimplesaml/module.php/core/frontpage_welcome.php

In conclusione, nella modalità "development" possiamo lasciare il tema di difetto, tutti i moduli abilitati e l'accesso amministratore abilitato.

Nella modualità "production" oltre a disabilitare l'accesso come amministratore, bisogna:

di difetto ha questi moduli abilitati:

find vendor/simplesamlphp/simplesamlphp/modules/ | grep enable
vendor/simplesamlphp/simplesamlphp/modules/authorize/default-enable
vendor/simplesamlphp/simplesamlphp/modules/consent/default-enable
vendor/simplesamlphp/simplesamlphp/modules/core/default-enable
vendor/simplesamlphp/simplesamlphp/modules/ldap/default-enable
vendor/simplesamlphp/simplesamlphp/modules/multiauth/default-enable
vendor/simplesamlphp/simplesamlphp/modules/negotiate/templates/enable.php
vendor/simplesamlphp/simplesamlphp/modules/negotiate/www/enable.php
vendor/simplesamlphp/simplesamlphp/modules/portal/default-enable
vendor/simplesamlphp/simplesamlphp/modules/saml/default-enable
vendor/simplesamlphp/simplesamlphp/modules/sanitycheck/default-enable
vendor/simplesamlphp/simplesamlphp/modules/sqlauth/default-enable
vendor/simplesamlphp/simplesamlphp/modules/mymodule/default-enable

ad es. per disabilitare core basta:

rm vendor/simplesamlphp/simplesamlphp/modules/core/default-enable
damikael commented 6 years ago

Ottima analisi, concordo.

damikael commented 4 years ago

Inserita possibilità di configurare la password in fase di installazione. Rif. https://github.com/italia/spid-php/commit/97e560998e0bc3f352d02c71ee2bbadf0056670c