Skip to content
This repository has been archived by the owner on Dec 4, 2020. It is now read-only.

italia/spid-passport

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

⚠️ Questo repository non è più mantenuto, si consiglia di usare spid-express ⚠️

spid-passport

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.

Installazione

$ npm install spid-passport

Utilizzo

Configurazione

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:

Service Provider:
  • (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 a urn: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)
Identity Provider
  • (String) entryPoint - Endpoint per effettuare il login, verrà effettuato un redirect verso questa URL
  • (String) cert - Certificato dell'Identity Provider (Formato PEM)

Esempio di utilizzo con express e spid-test-env

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()