⚠️ Questo repository non è più mantenuto, si consiglia di usare spid-express ⚠️
Provider di autenticazione Passport per SPID
Questo modulo consente di autenticare gli utenti tramite SPID (Servizio Publico di Identità Digitale) nelle applicazioni Nodejs che fanno uso di Passport.
$ npm install spid-passport
Sono necessari i parametri di configurazione del Service Provider e dei diversi Identity Provider; nello specifico il costruttore prende in input due oggetti e una callback di verifica. Le opzioni possibili sono tutte quelle messe a disposizione dalla libreria passport-saml, con l'unica differenza che i parametri relativi agli Identity Provider sono ripetuti per ciascun Identity Provider supportato da SPID. I parametri obbligatori sono:
- (String)
issuer
- Id dell'entita che fornisce il servizio, può essere qualsiasi cosa, tipicamente è la URL del Service Provider - (String)
privateCert
- Chiave privata del Service Provider (Formato PEM) - (String)
path
- Endpoint sul quale ricevere la response dall'identity provider; viene combinata con le informazioni dell'host per costruire una url completa - (Number)
attributeConsumingServiceIndex
- Indice posizionale sul metadata che identifica il set di attributi richiesti all'Identity Provider - (String)
identifierFormat
- Formato dell'identificativo dell'utente, per SPID va valorizzato aurn:oasis:names:tc:SAML:2.0:nameid-format:transient
- (String)
authnContext
- Livello SPID richiesto (a scelta tra: https://www.spid.gov.it/SpidL1, https://www.spid.gov.it/SpidL2, https://www.spid.gov.it/SpidL3)
- (String)
entryPoint
- Endpoint per effettuare il login, verrà effettuato un redirect verso questa URL - (String)
cert
- Certificato dell'Identity Provider (Formato PEM)
const fs = require('fs')
const express = require('express')
const app = express()
const bodyParser = require('body-parser')
const passport = require('passport')
const SpidStrategy = require('passport-spid')
app.use(bodyParser.urlencoded({ extended: false }))
// parse application/json
app.use(bodyParser.json()