Firma con strong auth

E' possibile eseguire la firma con strong auth di n hashes sono con certificati di tipo FEQ e ONESHOT.
A differenza della firma massiva, la firma con strong auth prevede una serie di chiamate poichè richiede l'apertura di una sessione di firma, l'autenticazione tramite strong auth e poi la possibilità di firmare n hashes, anche con chiamate successive.

Il numero massimo di hashes che si possono firmare in una sessione è definito in configurazione.

Apertura sessione di firma

Apertura sessione

I dati da fornire sono:

{
  "certificateAlias": "123",
  "strongAuth": "type",
  "maxSignatures": n,
  "webhook": {
    "url": "url"
  }
}

dove:

In ritorno si ottiene la sessione appena aperta con le seguenti info:

{
    "id": "64a19ba4ba848a71caae31d8",
    "certificateAlias": "44040",
    "signatureTimeout": "PT10M",
    "strongAuthTimeout": "PT5M",
    "strongAuth": "SMS_OTP",
    "maxSignatures": 20,
    "completedSignatures": 0,
    "status": {
        "value": "OPENED",
        "step": null,
        "remaining": null
    },
    "createdAt": "2023-07-02T15:45:40.025663395",
    "lastModifiedAt": "2023-07-02T15:45:40.025663395"
}

dove:

A questo punto si procede in base alla tipologia di strong auth prevista dalla sessione.

1. SMS_OTP

Invio otp

Occorre inviare un OTP tramite il servizio

Invio OTP API

fornendo in path param l'id di sessione ritornato al punto precedente.

L'invio dell'sms porta la sessione in stato:

"status": {
   "value": "STRONG_AUTH",
   "step": "SEND_SMS",
   "remaining": 2
}

dove:

Validazione otp

Occorre validare l'OTP

Validazione OTP API

fornendo in path param l'id di sessione ritornato al punto precedente e l'otp inviato nel body.

La validazione dell'otp in caso di successo porta la sessione a READY_TO_SIGN, altrimenti lo stato diventa:

"status": {
   "value": "STRONG_AUTH",
   "step": "OTP_VALIDATION",
   "remaining": 2
}

dove:

Se la validazione dell'otp non viene completata nonostante i tentativi a disposizione, lo stato della sessione diventa:

"status": {
   "value": "FAILED",
   "step": "OTP_VALIDATION",
   "remaining": 0
}

2. PHONE_CALL

Avvio chiamata

Occorre avviare la chiamata tramite il servizio

Avvio chiamata API

fornendo in path param l'id di sessione ritornato al punto precedente.

Dopo l'avvio della chiamata, i cambi di stato della sessione verranno comunicati all'integratore tramite webhook.

L'avvio della chiamata porterà la sessione in stato:

"status": {
   "value": "STRONG_AUTH",
   "step": "PHONE_CALL_OPENING"
}

dove:

Da questo momento in poi la sessione subirà delle modifiche in base all'andamento dell'operazione:

Se il chiamante esegue la chiamata al numero verde riportato lo stato diventerà:

"status": {
   "value": "STRONG_AUTH",
   "step": "PHONE_CALL_WAITING_PIN"
}

per indicare che il sistema attende l'immissione del pin di firma.

A pin inserito la sessione passerà in READY_TO_SIGN per indicare che si è pronti per la firma.

Firma hashes

Una volta completata la strong auth, la sessione si troverà in stato READY_TO_SIGN, cioè pronta per la firma.

Solo a questo punto sarò possibile chiamare il servizio:

Firma API

con i seguenti valori:

{
  "certificatePin": "12345678",
  "hashes": [
    "myMXwslBoXkTDQ0olhq1QsiHRWWL4yj1V0IuoK+PYOg="
  ]
}
In ritorno si ottiene la lista degli hash firmati.

Recupero sessione

In qualsiasi momento è sempre possibile recuperare una data sessione tramite il servizio:

Recupero sessione API


Revision #14
Created 2023-07-02 15:33:52 UTC by Antonio Mariano
Updated 2024-06-18 07:03:49 UTC by Antonio Mariano