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
83 stars 39 forks source link

spid-saml-check Request Error #118

Closed alessandrobozo closed 3 years ago

alessandrobozo commented 3 years ago

Salve, ho installato il tool SPID SAML Check e l'ho impostato come nuovo local Test IDP durante la configurazione di spid-php. Quando andiamo a selezionare "IDP LOCAL" in fase di Login vengo correttamente reindirizzato in localhost:8080. Inserite le credenziali e andando a controllare la Request effettuata:

<samlp:AuthnRequest xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion" ID="spid-php_16bc8a4f0ac18471afaad839595e074bf6a6ad67a4" Version="2.0" IssueInstant="2021-06-01T15:23:19Z" Destination="http://localhost:8080" ForceAuthn="true" AssertionConsumerServiceURL="http://localhost/spid/module.php/saml/sp/saml2-acs.php/service" ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" AttributeConsumingServiceIndex="0">
    <saml:Issuer NameQualifier="http://localhost" Format="urn:oasis:names:tc:SAML:2.0:nameid-format:entity">
        http://localhost
    </saml:Issuer>
    <samlp:NameIDPolicy Format="urn:oasis:names:tc:SAML:2.0:nameid-format:transient"/>
    <samlp:RequestedAuthnContext Comparison="minimum">
        <saml:AuthnContextClassRef>
            https://www.spid.gov.it/SpidL2
        </saml:AuthnContextClassRef>
    </samlp:RequestedAuthnContext>
</samlp:AuthnRequest>

il file risulta incompleto come suggerisce anche il tool SPID SAML Check nella sezione response.

Immagine 2021-06-01 173414

Questo sono le impostazioni che ho utilizzato in fase di configurazione, chiaramente sono dati di test:

Please insert path for current directory (C:\xampp\htdocs\odmeo\spid-php-master): C:\xampp\htdocs\odmeo\spid-php-master
Please insert path for web root directory (C:\Users\Atipico/public_html): C:\xampp\htdocs\odmeo
Please insert name for service endpoint (myservice): spid
Please insert your EntityID, must start with http:// or https:// (https://localhost): http://localhost
Please insert your Service Provider Domain, without www. (localhost): localhost
Please insert your Service Provider Name (Service Provider Name): odmeo
Please insert your Service Provider Description (Service Provider Description): odmeo
Please insert your Organization Name (Organization Name): odmeo
Please insert your Organization Display Name (Organization Display Name): odmeo
Please insert your Organization URL (https://www.organization.org): https://www.odmeo.re.it
Is your Organization a Public Administration (Y): y
Please insert your Organization's IPA Code (): 80070021789
Please insert your Organization's Country ISO 3166-1 code (IT): IT
Please insert your Organization's Locality Name (): Reggio Emilia
Please insert your Attribute Consuming Service Index (0): 0
Request attribute spidCode (Y): y
Request attribute name (Y): y
Request attribute familyName (Y): y
Request attribute placeOfBirth (Y): n
Request attribute countyOfBirth (Y): n
Request attribute dateOfBirth (Y): n
Request attribute gender (Y): n
Request attribute companyName (Y): n
Request attribute registeredOffice (Y): n
Request attribute fiscalNumber (Y): y
Request attribute ivaCode (Y): n
Request attribute idCard (Y): n
Request attribute expirationDate (Y): n
Request attribute mobilePhone (Y): n
Request attribute email (Y): y
Request attribute address (Y): n
Request attribute digitalAddress (Y): n
Request attribute domicileStreetAddress (Y): n
Request attribute domicilePostalCode (Y): n
Request attribute domicileMunicipality (Y): n
Request attribute domicileProvince (Y): n
Request attribute domicileNation (Y): n
Add configuration for Public Test IDP idp.spid.gov.it ? (Y): y
Optional URI for local Test IDP metadata (leave empty to skip) ? (): http://localhost:8080/metadata.xml
Add configuration for AgID Validator validator.spid.gov.it ? (Y): y
Add example php files login-spid.php to www ? (Y): y
Add proxy example php files proxy-spid.php, proxy-sample.php to www ? (N): n
Please insert password for SimpleSAMLphp (admin): admin
Please insert secretsalt for SimpleSAMLphp (e8ef57efce26327f09e9c1ac4a812f0b): e8ef57efce26327f09e9c1ac4a812f0b
Please insert Organization Contact Email Address (info@organization.org): test@spid.it
Please insert Organization Contact Telephone Number (12345678): 1234567890

Current directory: C:\xampp\htdocs\odmeo\spid-php-master
Web root directory: C:\xampp\htdocs\odmeo
Service Name: spid
Entity ID: http://localhost
Service Provider Domain: localhost
Service Provider Name: odmeo
Service Provider Description: odmeo
Organization Name: odmeo
Organization Display Name: odmeo
Organization URL: https://www.odmeo.re.it
Attribute Consuming Service Index: 0
Add configuration for Test IDP idp.spid.gov.it: Y
Add configuration for local test IDP: http://localhost:8080/metadata.xml
Add configuration for AgID Validator validator.spid.gov.it: Y
Add example php files: Y
Add proxy example php files: N
SimpleSAMLphp Password: admin
SimpleSAMLphp secretsalt: e8ef57efce26327f09e9c1ac4a812f0b
Organization Contact Email Address: test@spid.it
Organization Contact Telephone Number: 1234567890
Is organization a Public Administration: Y
Organization Code Type: IPACode
Organization Code: 80070021789
Organization Identifier: PA:IT-80070021789
Certificate CountryName: IT
Certificate LocalityName: Reggio Emilia

Quello che mi chiedo è, sto sbagliando qualcosa in fase di configurazione?

Grazie mille. Buon lavoro.

alepap commented 3 years ago

Salve, anch'io riscontro lo stesso problema. Uso la versione https://github.com/italia/spid-php/releases/tag/v.3.7.4 Inoltre, rispetto alle versioni recedenti, ho notato che per scaricare i metadati devo per forza inserire la password inserita durante lo script di installazione

gpannullo commented 3 years ago

X @alepap... La password va tolta per l'accesso al metadati altrimenti poi Agid non accede per poter validare... vai nel file vendor/simplesamlphp/simplesamlphp/config/config.php troverai due parametri

'auth.adminpassword' => 'latuapassword', 'admin.protectindexpage' => false, 'admin.protectmetadata' => false,

verifica che siano entrambi a false, poi in produzione li metterai a true come indicato in qualche post che trovi su questo progetto.

damikael commented 3 years ago

Salve @alessandrobozo , dopo aver inviato la request al Validator di spid-saml-check, se non è già stato fatto, occorre effettuare il download del metadata del proprio SP. Il metadata del proprio SP è scaricabile alla URL: /myservice/module.php/saml/sp/metadata.php/service

Come suggerito da @gpannullo per permettere di accedere a tale url occorre disabilitare la password, oppure suggerisco di scaricare autonomamente il metadata accedendo alla url di default con la password e caricarlo su altro path accessibile da web all'interno del server, così da mantenere isolata l'installazione di simpleSAMLphp.

alessandrobozo commented 3 years ago

Grazie @damikael per la risposta. Come da te suggerito ho fatto il download del metadata e l'ho posizionato su una casella accessibile come qui sotto:

odmeo/ ├─ spid/ ├─ assets/ ├─ metadata/ │ ├─ metadata.php │ ├─ sp-metadata.xml ├─ spid-php-master/ ├─ index.php ├─ login-spid.php

Il file metadata.php non è altro che un file che effettua un download automatico del file sp-metadata.xml Fatto ciò ho provato ad effettuare il download dal Validator di spid-saml-check, questo è il messaggio che mi esce:

Immagine 2021-06-14 122454

L'installazione di spid-saml-check è situato sulla porta 8080 mentre l'applicativo di spid-php è posizionato tramite Xampp sulla porta 80. Se visito la url inserita http://127.0.0.1:80/metadata/metadata.php scarico correttamente il file.

Immagine 2021-06-14 122549

Deve essere posizionato in maniera diversa o con un nome diverso il file?

Saluti, Grazie mille. Buon lavoro.

damikael commented 3 years ago

Prova ad effettuare su spid-saml-check direttamente il download del file sp-metadata.xml