1. Go to this page and download the library: Download intervieweb/spid-php-lib library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
intervieweb / spid-php-lib example snippets
$settings = array(
'sp_entityid' => SP_BASE_URL, // preferred: https protocol, no trailing slash, example: https://sp.example.com/
'sp_key_file' => '/path/to/sp.key',
'sp_cert_file' => '/path/to/sp.crt',
'sp_comparison' => 'exact', // one of: "exact", "minimum", "better" or "maximum"
'sp_assertionconsumerservice' => [
// order is important ! the 0-base index in this array will be used as ID in the calls
SP_BASE_URL . '/acs',
...
],
'sp_singlelogoutservice' => [
// order is important ! the 0-base index in this array will be used as ID in the calls
[SP_BASE_URL . '/slo', 'POST'],
[SP_BASE_URL . '/slo', 'REDIRECT']
...
],
'sp_org_name' => 'your organization full name',
'sp_org_display_name' => 'your organization display name',
'sp_key_cert_values' => [ // Optional: remove this if you want to generate .key & .crt files manually
'countryName' => 'Your Country',
'stateOrProvinceName' => 'Your Province or State',
'localityName' => 'Locality',
'commonName' => 'Name',
'emailAddress' => '[email protected]',
]
'idp_metadata_folder' => '/path/to/idp_metadata/',
'sp_attributeconsumingservice' => [
// order is important ! the 0-base index in this array will be used as ID in the calls
["fiscalNumber"],
["name", "familyName", "fiscalNumber", "email", "spidCode"],
...
],
// Time in seconds of skew that is acceptable between client and server when checking OnBefore and NotOnOrAfter
// assertion condition validity timestamps, and IssueInstant response / assertion timestamps. Optional.
// Default is 0. Acceptable range: 0-300 (inclusive)
'accepted_clock_skew_seconds' => 100
);
$sp = new Italia\Spid\Sp($settings);
// $autoconfiguration skips .key/.crt generation if set to false
$sp = new Italia\Spid\Sp($settings, null, $autoconfiguration = false);
// shortname of IdP, same as the name of corresponding IdP metadata file, without .xml
$idpName = 'testenv';
// index of assertion consumer service as per the SP metadata (sp_assertionconsumerservice in settings array)
$assertId = 0;
// index of attribute consuming service as per the SP metadata (sp_attributeconsumingservice in settings array)
$attrId = 1;
// Generate the login URL and redirect to the IdP login page
$sp->login($idpName, $assertId, $attrId);
$sp->isAuthenticated();
$userAttributes = $sp->getAttributes();
// index of single logout service as per the SP metadata (sp_singlelogoutservice in settings array)
$sloId = 0;
$sp->logout($sloId);
sh
sudo apt install composer make openssl php-curl php-zip php-xml
composer
sh
mkdir idp_metadata
php vendor/italia/spid-php-lib/bin/download_idp_metadata.php ./idp_metadata
sh
cd vendor/italia/spid-php-lib
sh
composer install
bin/download_idp_metadata.php example/idp_metadata
./vendor/bin/phpcs --standard=PSR2 xxx.php
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.