Salta al contenuto principale

Abilitare Entra con SPID e CIE in PHP: guida completa

Profile picture for user luca77king

L’autenticazione tramite SPID (Sistema Pubblico di Identità Digitale) e CIE (Carta d’Identità Elettronica) è oggi uno standard imprescindibile per qualsiasi servizio pubblico o privato che richieda accessi sicuri in Italia. Con la crescente diffusione dei servizi digitali della Pubblica Amministrazione e delle piattaforme online, garantire un accesso sicuro, affidabile e conforme alle normative è diventato fondamentale. SPID e CIE permettono di autenticare gli utenti senza gestire direttamente le loro credenziali, riducendo il rischio di violazioni e semplificando la vita agli sviluppatori.

Se sei uno sviluppatore PHP, puoi abilitare SPID e CIE in maniera relativamente semplice grazie all’ottima libreria spid-cie-php, mantenuta dalla comunità italiana e aggiornata per garantire compatibilità con tutti gli Identity Provider ufficiali. La libreria semplifica drasticamente l’integrazione, perché si occupa di tutta la complessa parte tecnica legata a SAML 2.0 e SimpleSAMLphp, gestendo in automatico la generazione dei certificati, la configurazione del Service Provider e la produzione dei metadata necessari per registrarsi presso gli Identity Provider SPID e CIE.

Ho avuto modo di utilizzare personalmente questa libreria recentemente, integrandola in un progetto WordPress. In quel caso, ho creato un plugin custom che richiama direttamente le classi della libreria, permettendo di esporre i pulsanti “Entra con SPID” e “Entra con CIE” all’interno del sito, gestendo la logica di autenticazione senza mai toccare la gestione manuale di certificati o configurazioni SAML. La libreria si è rivelata estremamente stabile e modulare: ho potuto configurare facilmente gli Identity Provider attivi, gestire le sessioni utente e collegare i dati ricevuti dall’assertion SAML a ruoli e permessi del mio plugin.

Questo approccio rende SPID e CIE integrabili in qualsiasi applicazione PHP, dai framework più strutturati come Laravel o Symfony, fino a siti basati su WordPress, mantenendo sempre alta la sicurezza e la conformità alle linee guida AgID. Inoltre, grazie al supporto completo per SimpleSAMLphp, puoi sfruttare funzionalità avanzate come il Single Logout (SLO), la gestione dei livelli di autenticazione SPID (L1, L2, L3) e la verifica automatica della firma digitale delle assertion SAML.

In sintesi, spid-cie-php trasforma un’integrazione che normalmente richiederebbe ore di configurazione manuale in un processo rapido e affidabile: installi con Composer, la libreria configura tutto da sola, genera certificati validi, espone i metadata e ti permette di concentrarti sulla logica della tua applicazione, risparmiando tempo e riducendo i rischi di errori tecnici.

Come funziona SAML

La libreria utilizza SAML 2.0, il protocollo standard per lo scambio di dati di autenticazione tra il tuo sito (Service Provider) e gli Identity Provider (IdP).

Il flusso tecnico è il seguente:

  1. L’utente clicca su Entra con SPID o Entra con CIE.

  2. La libreria genera una AuthnRequest SAML e reindirizza l’utente all’IdP scelto.

  3. L’IdP autentica l’utente tramite credenziali SPID (username/password, OTP o app) oppure tramite CIE (lettore NFC o app ufficiale).

  4. L’IdP restituisce un’assertion SAML, che contiene informazioni come nome, cognome, codice fiscale, email e livello SPID.

  5. La libreria valida l’assertion usando i certificati generati e restituisce i dati utente al tuo codice PHP, pronto per creare la sessione.

Il vantaggio di SAML è che non devi gestire le password degli utenti: tutta la sicurezza è delegata all’Identity Provider.

Installazione della libreria

Molti sviluppatori PHP scelgono di installare la libreria spid-cie-php in /opt, separando così i file sensibili della libreria dal codice dell’applicazione e dalla root pubblica del server web. Posizionare la libreria in /opt consente di isolare completamente SimpleSAMLphp, i certificati e tutte le configurazioni SAML, riducendo il rischio di esposizione accidentale. Questo approccio è particolarmente utile quando il progetto deve proteggere un servizio pubblico della PA, perché l’accesso tramite SPID o CIE richiede che l’infrastruttura sia sicura e conforme alle linee guida AgID.

Dopo aver installato la libreria in /opt, il post-install script incluso nel pacchetto si occupa automaticamente di creare un link simbolico verso la cartella pubblica del web server. Questo significa che soltanto gli endpoint necessari, come quello dei metadata XML e gli endpoint SAML, vengono esposti, mentre tutti i file di configurazione e i certificati rimangono protetti nella directory /opt. In pratica, lo script trasforma la libreria in un ambiente pronto all’uso, collegando in sicurezza la parte “pubblica” del servizio con la logica interna gestita da SimpleSAMLphp.

Ad esempio, l’installazione tipica prevede di clonare il repository in /opt/spid-cie-php e lanciare Composer:

sudo mkdir -p /opt/spid-cie-php
sudo git clone https://github.com/italia/spid-cie-php.git /opt/spid-cie-php
cd /opt/spid-cie-php
composer install

Al termine, il post-install script configura tutto, genera i certificati X.509 necessari per firmare le richieste e validare le assertion, e prepara il link simbolico verso la cartella pubblica del servizio della PA. In questo modo, il servizio web può essere protetto da SPID e CIE senza rischi, e l’installazione resta ordinata e facilmente manutenibile.

Configurazione durante l’installazione

Dopo aver completato l’installazione della libreria spid-cie-php, il passo successivo consiste nel configurare correttamente il Service Provider (SP) e l’Organization. Questa fase è fondamentale perché permette agli Identity Provider SPID e CIE di riconoscere il tuo servizio e l’ente che lo gestisce, garantendo autenticazioni sicure e conformi alle linee guida AgID.

Il Service Provider rappresenta il servizio web che l’utente sta utilizzando, ossia il portale o il sito che richiede l’autenticazione. Qui vanno inseriti dati come l’identificativo univoco, il dominio, il nome del servizio e una breve descrizione, visibili all’utente al momento del login.

L’Organization, invece, rappresenta l’ente o la società proprietaria del servizio, ossia l’entità legale dietro il Service Provider. Per le Pubbliche Amministrazioni, è essenziale che tutti i dati corrispondano esattamente a quanto riportato su IPA (indicepa.gov.it). Qualsiasi discrepanza, anche minima, può comportare il respingimento della procedura di registrazione presso gli Identity Provider. Questo include nome ufficiale, codice IPA, codice ISTAT, provincia e località. Per i privati, occorre invece inserire correttamente codice fiscale o partita IVA e codice ATECO/NACE2.

Per rendere più chiaro quali dati vanno inseriti, ecco una tabella riepilogativa:

Tipo Campo Esempio (PA) Descrizione
SP EntityID https://servizionline.milano.it Identificativo univoco del servizio (URL)
SP SP Domain servizionline.milano.it Dominio del servizio senza www
SP SP Name Servizi Online Milano Nome del servizio visibile all’utente
SP SP Description Accesso ai servizi digitali del Comune Breve descrizione del servizio
Organization Organization Name Comune di Milano Nome legale dell’organizzazione, conforme a IPA
Organization Organization Display Name Milano Nome semplificato o visualizzato all’utente
Organization Organization URL https://www.comune.milano.it Sito ufficiale dell’organizzazione
Organization IPA Code H501 Codice identificativo PA su indicepa.gov.it, obbligatorio per PA
Organization Country Code IT Codice ISO del paese
Organization ISTAT Code H501 Codice ISTAT del comune
Organization Province Code MI Codice della provincia
Organization Locality Milano Città o località

Per i Service Provider privati, al posto di IPA e ISTAT vanno indicati il codice fiscale o partita IVA e il codice ATECO/NACE2 dell’attività economica.

Durante la configurazione guidata della libreria, ti verranno richiesti questi dati passo passo. È fondamentale assicurarsi che tutti i campi siano coerenti con le informazioni ufficiali dell’ente o dell’azienda, altrimenti la procedura di registrazione del Service Provider presso gli Identity Provider SPID e CIE verrà respinta. Nel caso di un ente pubblico, le informazioni vanno reperite sull'Indice dei domicili digitali della Pubblica Amministrazione e dei Gestori di Pubblici (IPA).

Generazione dei certificati per i metadata

Oltre a gestire la configurazione del Service Provider e dell’Organization, la libreria spid-cie-php si occupa anche della generazione automatica dei certificati necessari per firmare i metadata SAML. Questi certificati X.509 sono fondamentali: permettono agli Identity Provider di verificare l’autenticità del tuo SP e garantiscono che le assertion SAML non siano manomesse durante il flusso di autenticazione.

Durante l’utilizzo della libreria, ho riscontrato un problema con il campo Organization Name. Alcuni enti hanno nomi ufficiali molto lunghi, oltre i 64 caratteri, e questo causava errori nella generazione dei certificati. Per risolvere il problema, ho forkato la libreria e modificato la gestione interna, separando le due fasi: prima la generazione dei certificati tramite OpenSSL e poi la produzione dei metadata.

Dopo aver aggiornato la configurazione OpenSSL nella libreria, è possibile generare o rigenerare i certificati tramite il comando:

composer make-certificate <days>

Il parametro <days> indica il numero di giorni di validità del certificato; se non viene specificato, il valore predefinito è 730 giorni, ossia circa due anni. Questo comando semplifica enormemente la manutenzione dei certificati, evitando di doverli creare manualmente e assicurando che siano coerenti con i metadata generati dalla libreria.

Grazie a questa funzionalità, l’intero processo di setup del Service Provider diventa molto più rapido e sicuro: la libreria si occupa di creare i certificati validi, configurare SimpleSAMLphp e preparare i metadata pronti per essere registrati presso gli Identity Provider SPID e CIE, senza interventi manuali complessi.

Utilizzare la libreria in PHP

La libreria spid-cie-php include già una classe pronta all’uso, chiamata SPID_PHP, che estende l’AbstractSPID della libreria. Questa classe incapsula tutte le funzionalità necessarie per integrare SPID e CIE in un progetto PHP senza dover gestire manualmente SimpleSAMLphp o i flussi SAML.

In pratica, questa classe gestisce:

  • L’inizializzazione dell’oggetto SimpleSAMLphp tramite SimpleSAML\Auth\Simple.

  • Il login e il logout degli utenti, sia per SPID che per CIE.

  • La generazione dei bottoni “Entra con SPID” e “Entra con CIE” in tutte le dimensioni previste dai design system AGID.

  • La gestione della lista degli Identity Provider disponibili, con supporto sia per l’ambiente di produzione sia per test/demo.

  • Il recupero dei dati dell’utente autenticato (attributi SPID/CIE, ID sessione, provider selezionato).

La classe contiene una mappa interna degli IdP ufficiali italiani, compresi Aruba, Poste Italiane, Namirial, InfoCert, e la CIE, sia in versione di test che di produzione. In questo modo, basta instanziare la classe e richiamare i metodi corretti per rendere immediatamente operativo il login SPID/CIE.

Esempio di utilizzo base

require_once("vendor/autoload.php");

$spid = new SPID_PHP($production=true);

// Forzare il login via SPID con un Identity Provider specifico
$spid->login('ArubaPEC S.p.A.', '2', 'https://www.miosito.it/after-login');

// Controllare se l’utente è autenticato
if ($spid->isAuthenticated()) {
    $attributes = $spid->getAttributes();
    echo "Benvenuto " . $attributes['name'][0];
}

// Logout
$spid->logout('https://www.miosito.it/after-logout');

Generazione e inserimento dei bottoni

La classe semplifica molto la gestione dei bottoni per l’utente. Puoi creare un bottone SPID di diverse dimensioni direttamente nel template del tuo sito:

// Bottone SPID di dimensione grande
$spid->insertSPIDButton('L', 'GET');

// Bottone “smart” SPID (collegato direttamente all’IDP di default)
$spid->insertSPIDSmartButton('M');

// Bottone CIE
$spid->insertCIEButton('L');

La libreria si occupa di renderizzare i bottoni con le icone corrette e di gestire automaticamente il comportamento per i vari IdP, comprese le modalità POST/GET e i livelli SPID o CIE.

Gestione degli Identity Provider

Puoi recuperare la lista completa degli IdP disponibili, con nomi e loghi, tramite:

$idpList = $spid->getIdPList();
foreach ($idpList as $idp) {
    echo $idp['name'] . " - " . $idp['entity_id'] . "<br>";
}

Questo permette di costruire interfacce personalizzate o menu a tendina dinamici, oltre ai bottoni standard.

Controlli avanzati

La classe offre anche metodi per verificare se l’utente ha effettuato il login tramite CIE, se l’IdP selezionato è disponibile e per impostare un purpose professionale nei flussi SAML:

if ($spid->isCIE()) {
    echo "Accesso effettuato tramite CIE";
}

$spid->setProfessionalUse(true);
$spid->requireAuth(); // forza l’autenticazione

In sintesi, la classe SPID_PHP permette di integrare SPID e CIE senza scrivere una riga di SAML complessa, gestendo tutto internamente con SimpleSAMLphp e fornendo metodi pronti per login, logout, recupero attributi e rendering dei bottoni.

Integrazione in un plugin WordPress custom

Una volta installata e configurata la libreria spid-cie-php, integrarla in WordPress diventa molto semplice grazie alla classe SPID_PHP. L’idea è creare un plugin dedicato che gestisca il login tramite SPID e CIE, evitando qualsiasi modifica al core di WordPress e rendendo il servizio completamente modulare, aggiornabile e riutilizzabile in più progetti.

Detto questo, WordPress presenta alcune sfide specifiche quando si lavora con librerie moderne PHP. La piattaforma infatti non utilizza nativamente Composer per la gestione delle dipendenze, e non fa uso di namespace e autoloader PSR-4 come in un progetto PHP standard. Questo significa che, per poter sfruttare appieno la libreria, è necessario includere manualmente i file richiesti tramite require_once e gestire attentamente eventuali conflitti di classi. Inoltre, bisogna prestare attenzione ai percorsi delle librerie e ai file CSS/JS inclusi, assicurandosi che siano caricati correttamente nel contesto di WordPress senza interferire con altri plugin o temi.

Nonostante queste difficoltà, grazie a un plugin custom si può isolare tutta la logica di autenticazione SPID e CIE, esponendo comandi semplici come login, logout e rendering dei bottoni direttamente nelle pagine o nei widget di WordPress, mantenendo l’esperienza utente fluida e integrata con il tema del sito. In questo modo, anche senza modificare il core, si ottiene un’integrazione completa e sicura dell’identità digitale italiana nei servizi online.

Creazione del plugin

Crea una cartella all’interno di wp-content/plugins, ad esempio wp-spid-cie, e aggiungi un file principale, ad esempio wp-spid-cie.php:

<?php
/**
 * Plugin Name: WP SPID & CIE
 * Description: Plugin per login SPID e CIE tramite spid-cie-php.
 * Version: 1.0
 * Author: Luca
 */

if (!defined('ABSPATH')) exit;

require_once(__DIR__ . '/vendor/autoload.php');
require_once(__DIR__ . '/setup/SPID_PHP.php');

// Inizializza SPID
$spid = new SPID_PHP($production=true);

// Shortcode per inserire il bottone SPID nel front-end
function wp_spid_button_shortcode($atts) {
    global $spid;
    $atts = shortcode_atts(array(
        'size' => 'L',
        'method' => 'GET'
    ), $atts, 'spid_button');

    ob_start();
    $spid->insertSPIDButton($atts['size'], $atts['method']);
    return ob_get_clean();
}
add_shortcode('spid_button', 'wp_spid_button_shortcode');

// Shortcode per inserire il bottone CIE
function wp_cie_button_shortcode($atts) {
    global $spid;
    $atts = shortcode_atts(array(
        'size' => 'L'
    ), $atts, 'cie_button');

    ob_start();
    $spid->insertCIEButton($atts['size']);
    return ob_get_clean();
}
add_shortcode('cie_button', 'wp_cie_button_shortcode');

Utilizzo degli shortcode

Ora puoi inserire i bottoni SPID e CIE in qualsiasi pagina o post WordPress semplicemente usando gli shortcode:

[spid_button size="M" method="GET"]
[cie_button size="L"]

I bottoni saranno renderizzati automaticamente con le icone ufficiali, i nomi degli Identity Provider e le corrette modalità POST/GET.

Gestione login e logout

Per gestire il login effettivo, puoi creare delle pagine dedicate che richiamano i metodi della classe:

// page-login-spid.php
global $spid;
$spid->login('ArubaPEC S.p.A.', '2', home_url('/dashboard'));

// page-logout.php
global $spid;
$spid->logout(home_url());

Il metodo login() gestisce tutto il flusso SAML, compreso il livello di autenticazione SPID/CIE e l’invio dei dati all’Identity Provider selezionato. Una volta autenticato, puoi recuperare gli attributi utente:

if ($spid->isAuthenticated()) {
    $userAttributes = $spid->getAttributes();
    echo 'Nome: ' . $userAttributes['name'][0];
    echo 'Cognome: ' . $userAttributes['familyName'][0];
    echo 'Codice Fiscale: ' . $userAttributes['fiscalNumber'][0];
}

Gestione avanzata

Se vuoi distinguere gli utenti SPID dai CIE, puoi usare:

if ($spid->isCIE()) {
    // Accesso tramite CIE
} else {
    // Accesso tramite SPID
}

E puoi anche impostare uno scopo professionale nei flussi SAML, utile per login riservati a professionisti o pubbliche amministrazioni:

$spid->setProfessionalUse(true);
$spid->requireAuth();

Testare lo SPID

Dopo aver completato tutta la procedura di installazione e configurazione della libreria spid-cie-php, il passo successivo è testare il corretto funzionamento del tuo servizio. Per farlo, AGID mette a disposizione un ambiente demo per validare i metadati e provare l’autenticazione.

Scaricare e validare i metadati

La libreria genera automaticamente i metadati SAML sia per SPID che per CIE, esponendoli tramite URL accessibili dal web server. Gli URL tipici sono:

Metadata SPID:

https://tuo-dominio.it/myservice/module.php/saml/sp/metadata.php/spid

Metadata CIE:

https://tuo-dominio.it/myservice/module.php/saml/sp/metadata.php/cie

Nota: myservice è il nome del servizio specificato durante l’installazione della libreria.

Questi URL devono essere accessibili pubblicamente via HTTPS, altrimenti la procedura di validazione fallirà. Se stai testando in locale (es. localhost) non potrai completare la fase di validazione SPID.

Per verificare che i metadati siano corretti, vai su SPID Validator. Qui potrai inserire l’URL dei tuoi metadati e controllare eventuali errori di configurazione o incongruenze. Il validator segnalerà problemi come certificati scaduti, campi obbligatori mancanti o incongruenze nei nomi degli Identity Provider.

Testare il login

Una volta che i metadati sono stati validati correttamente, puoi provare il login vero e proprio usando gli utenti di test forniti da AGID. Il link ufficiale per testare l’autenticazione è:

SPID Demo Users

Qui troverai utenti di test per ciascun Identity Provider e potrai verificare:

  • Accesso con SPID a diversi livelli di sicurezza (L1, L2, L3)

  • Ricezione corretta degli attributi utente (nome, cognome, codice fiscale, email, ecc.)

Consigli pratici

  • Servizio HTTPS: Il tuo servizio deve essere esposto su internet con certificato SSL valido. SPID e CIE non funzionano su HTTP o su indirizzi non pubblici.

  • URL corretto dei metadati: Assicurati che l’URL del metadata corrisponda esattamente a quello dichiarato durante l’installazione.

  • Validazione dei campi obbligatori: Tutti i campi dei metadati devono essere conformi a quanto richiesto dall’IPA, altrimenti la procedura sarà respinta.

Procedura amministrativa e tecnica per diventare Service Provider (SPID)

Per diventare fornitore di servizi SPID, è necessario seguire una procedura articolata in due fasi principali: tecnica e amministrativa. Di seguito, una descrizione dettagliata di ciascuna fase.

Procedura Tecnica

La fase tecnica prevede l'implementazione dello standard SAML 2.0 nei propri applicativi web. Questo implica la creazione di un Service Provider (SP) che possa interagire correttamente con gli Identity Provider (IdP) certificati da AgID.

Implementazione dello SPID

Per integrare SPID, è necessario implementare lo standard SAML 2.0. La libreria spid-cie-php offre un'implementazione pronta all'uso per PHP, ma esistono anche altre librerie per diversi linguaggi di programmazione.

Bisogna inoltre creare un metadata, un file XML che descrive il proprio SP, includendo informazioni come l'EntityID, le URL di login e logout e i certificati utilizzati per la firma e la cifratura. Questo file deve essere esposto su una URL HTTPS accessibile pubblicamente.

Verifica tramite SPID Validator

Una volta implementato il sistema, è possibile testare la corretta configurazione utilizzando lo SPID Validator. Questo strumento consente di verificare la validità del metadata e di identificare eventuali errori o incongruenze.

Invio del metadata ad AgID

Se l'implementazione è corretta, il passo successivo è inviare il metadata ad AgID. Per i fornitori di servizi privati, è necessario richiedere un certificato ad AgID per firmare digitalmente il metadata. Una volta firmato, il metadata deve essere inviato ad AgID per la messa in produzione.

Verifica tecnica da parte di AgID

AgID eseguirà una verifica tecnica del metadata ricevuto utilizzando la piattaforma SPID SAML Check, che include il tool SPID Validator. Se necessario, AgID richiederà modifiche per garantire il rispetto delle regole tecniche. In caso di esito positivo, AgID comunicherà il metadata ai gestori di identità.

Esposizione del servizio

Una volta che AgID ha comunicato il metadata agli IdP, il servizio sarà accessibile tramite SPID. La richiesta di caricamento delle configurazioni agli IdP viene effettuata ogni giorno, di norma alle ore 18:00, dal lunedì al venerdì. Gli IdP provvedono al caricamento entro un giorno lavorativo.

Procedura Amministrativa

La fase amministrativa riguarda la formalizzazione dell'adesione al sistema SPID attraverso la sottoscrizione di una convenzione con AgID.

Nomina di un referente amministrativo

Il fornitore di servizi deve nominare un referente amministrativo, che sarà il punto di contatto con AgID per tutte le comunicazioni ufficiali.

Invio della richiesta di adesione

Il referente amministrativo deve inviare una richiesta ad AgID, includendo informazioni quali il nome dell'ente (denominazione o ragione sociale), codice IPA (per soggetti pubblici) o Codice Fiscale/P.IVA (per soggetti privati), URL del metadata, URL del servizio con il bottone "Entra con SPID" collegato a SPID Validator e i contatti del referente tecnico e amministrativo.

Ricezione e firma della convenzione

Dopo aver ricevuto la richiesta, AgID invierà al referente amministrativo una copia della convenzione appropriata, da firmare digitalmente dal legale rappresentante dell'ente. La convenzione firmata deve essere inviata tramite PEC all'indirizzo protocollo@pec.agid.gov.it, con copia a spid.tech@agid.gov.it. È necessario allegare anche il file ODS per la comunicazione dei servizi.

Restituzione della convenzione controfirmata

AgID restituirà la convenzione controfirmata dal Direttore Generale nel più breve tempo possibile.

Tariffe per i fornitori di servizi privati

Per i fornitori di servizi privati, AgID applica delle tariffe annuali, che variano in base al periodo di fatturazione. Le tariffe sono consultabili sul sito ufficiale di AgID.

Procedura amministrativa e tecnica per diventare Service Provider (CIE)

L’integrazione con la Carta d’Identità Elettronica (CIE) segue un percorso simile a quello dello SPID, ma viene gestita attraverso il portale dedicato della Federazione CIE, accessibile all’indirizzo https://federazione.servizicie.interno.gov.it/.

Per diventare un Service Provider CIE, il processo richiede innanzitutto la registrazione sul portale della federazione, dove l’ente o l’azienda deve inserire le informazioni relative al proprio servizio digitale. Queste informazioni includono l’identità legale dell’organizzazione, il dominio del servizio, i contatti del referente tecnico e amministrativo e le URL dove saranno esposti i metadata SAML del proprio SP.

Analogamente a SPID, è necessario generare e configurare un metadata CIE, che includa i certificati per la firma e la cifratura e che descriva in modo preciso il Service Provider. Questo file deve essere pubblicamente accessibile via HTTPS e conforme alle regole tecniche indicate dal portale CIE.

Dopo aver completato la configurazione tecnica, il metadata viene caricato sul portale e sottoposto a una fase di validazione. La federazione verifica che il metadata sia corretto, che i certificati siano validi e che tutte le informazioni obbligatorie siano presenti e conformi ai requisiti legali. Eventuali errori vengono segnalati e devono essere corretti prima di ottenere l’autorizzazione.

Una volta validato, il servizio può essere ufficialmente abilitato all’accesso tramite CIE. L’ente riceve conferma della registrazione e può iniziare a testare l’autenticazione tramite CIE, garantendo così agli utenti l’accesso sicuro ai servizi digitali.

Il processo richiede che il servizio sia esposto su HTTPS e accessibile pubblicamente, esattamente come per SPID, affinché le comunicazioni tra SP e Identity Provider siano sicure e certificate.

Conclusioni

In conclusione, abilitare SPID e CIE su un servizio PHP non è più un processo impossibile grazie a librerie come spid-cie-php, che si occupano di tutta la complessità legata a SAML 2.0 e SimpleSAMLphp, dalla generazione dei certificati alla produzione dei metadata. Seguendo correttamente la procedura tecnica e amministrativa, un ente o un’azienda può registrarsi come Service Provider, sia per SPID sia per CIE, e rendere i propri servizi digitali accessibili agli utenti in modo sicuro e conforme agli standard nazionali.

È fondamentale ricordare che il servizio deve essere pubblicamente accessibile via HTTPS e che tutti i dati forniti, in particolare quelli relativi all’organizzazione, devono essere conformi alle informazioni ufficiali presenti su IPA o sulla federazione CIE, altrimenti la richiesta sarà respinta. Una volta completata la configurazione e validati i metadata, sarà possibile testare il login tramite gli ambienti demo forniti, garantendo agli utenti un’esperienza di accesso sicura, semplice e standardizzata.

In definitiva, SPID e CIE rappresentano oggi strumenti imprescindibili per l’identità digitale, e grazie agli strumenti giusti, la loro integrazione in PHP può essere rapida, sicura e gestita interamente all’interno del proprio progetto.