Show Menu
ARGOMENTI×

Firma digitale e certificazione dei documenti

Informazioni su Signature Service
Il servizio Firma consente alla tua organizzazione di proteggere la sicurezza e la privacy dei documenti Adobe PDF che distribuisce e riceve. Questo servizio utilizza firme digitali e certificazione per garantire che solo i destinatari desiderati possano modificare i documenti. Poiché le funzioni di protezione vengono applicate al documento stesso, il documento rimane protetto e controllato per l'intero ciclo di vita. Un documento rimane protetto oltre il firewall, quando viene scaricato offline e quando viene inviato nuovamente all'organizzazione.
È possibile creare un gestore di firme personalizzato per il servizio Signature che viene richiamato quando vengono richiamate determinate operazioni, ad esempio la firma di un documento PDF.
Nomi dei campi firma
Per alcune operazioni del servizio Firma è necessario specificare il nome del campo firma in cui viene eseguita l'operazione. Ad esempio, durante la firma di un documento PDF è possibile specificare il nome del campo firma da firmare. Si supponga che il nome completo di un campo firma sia form1[0].Form1[0].SignatureField1[0] . Potete specificare SignatureField1[0] invece di form1[0].Form1[0].SignatureField1[0] .
A volte un conflitto causa la firma del campo errato da parte del servizio Firma (o un'altra operazione che richiede il nome del campo firma). Questo conflitto è il risultato della SignatureField1[0] visualizzazione del nome in due o più punti dello stesso documento PDF. Ad esempio, si consideri un documento PDF che contiene due campi firma denominati form1[0].Form1[0].SignatureField1[0] e form1[0].Form1[0].SubForm1[0].SignatureField1[0] che è possibile specificare SignatureField1[0] . In questa situazione, il servizio Firma firma firma firma il primo campo da trovare durante l'iterazione su tutti i campi firma del documento.
Se all'interno di un documento PDF sono presenti più campi firma, è consigliabile specificare i nomi completi dei campi firma. Ovvero, specificate form1[0].Form1[0].SignatureField1[0] invece di SignatureField1[0] .
È possibile eseguire le operazioni seguenti utilizzando il servizio Firma:
Per ulteriori informazioni sul servizio Firma, consultate Riferimento servizi per AEM Forms .

Aggiunta di campi firma

Le firme digitali vengono visualizzate nei campi firma, ovvero nei campi del modulo che contengono una rappresentazione grafica della firma. I campi firma possono essere visibili o invisibili. I firmatari possono utilizzare un campo firma preesistente oppure è possibile aggiungere un campo firma a livello di programmazione. In entrambi i casi, il campo firma deve esistere prima che sia possibile firmare un documento PDF.
È possibile aggiungere un campo firma a livello di programmazione utilizzando l'API Java del servizio firma o l'API del servizio Web Firma. È possibile aggiungere più campi firma a un documento PDF; tuttavia, ogni nome di campo firma deve essere univoco.
Alcuni tipi di documenti PDF non consentono l'aggiunta programmatica di un campo firma. Per ulteriori informazioni sul servizio Firma e sull'aggiunta di campi firma, consultate Guida di riferimento ai servizi per i moduli AEM.

Riepilogo dei passaggi

Per aggiungere un campo firma a un documento PDF, effettuare le seguenti operazioni:
  1. Includere i file di progetto.
  2. Creare un client per le firme.
  3. Ottenere un documento PDF al quale viene aggiunto un campo firma.
  4. Aggiungere un campo firma.
  5. Salvare il documento PDF come file PDF.
Includi file di progetto
Includete i file necessari nel progetto di sviluppo. Se create un'applicazione client utilizzando Java, includete i file JAR necessari. Se utilizzate i servizi Web, accertatevi di includere i file proxy.
I seguenti file JAR devono essere aggiunti al percorso di classe del progetto:
  • adobe-livecycle-client.jar
  • adobe-usermanager-client.jar
  • adobe-signatures-client.jar
  • adobe-utilities.jar (richiesto se AEM Forms è distribuito su JBoss)
  • jbossall-client.jar (richiesto se AEM Forms è distribuito su JBoss)
Creare un client per le firme
Prima di eseguire un'operazione del servizio Firma a livello di programmazione, è necessario creare un client del servizio Firma.
Ottenere un documento PDF a cui è aggiunto un campo firma
È necessario ottenere un documento PDF al quale viene aggiunto un campo firma.
Aggiunta di un campo firma
Per aggiungere correttamente un campo firma a un documento PDF, è necessario specificare i valori delle coordinate che identificano la posizione del campo firma. Se si aggiunge un campo firma invisibile, questi valori non sono obbligatori. È inoltre possibile specificare quali campi del documento PDF vengono bloccati dopo che al campo firma è stata applicata la firma.
Salvare il documento PDF come file PDF
Dopo che il servizio Firma ha aggiunto un campo firma al documento PDF, è possibile salvare il documento come file PDF per consentirne l'apertura in Acrobat o Adobe Reader.
Consulta anche

Aggiunta di campi firma tramite l'API Java

Aggiungere un campo firma utilizzando l'API Signature (Java):
  1. Includi file di progetto
    Includete file JAR client, ad esempio adobe-signatures-client.jar, nel percorso di classe del progetto Java.
  2. Creare un client per le firme
    • Creare un ServiceClientFactory oggetto che contenga proprietà di connessione.
    • Creare un SignatureServiceClient oggetto utilizzando il relativo costruttore e passando l' ServiceClientFactory oggetto.
  3. Ottenere un documento PDF a cui è aggiunto un campo firma
    • Creare un java.io.FileInputStream oggetto che rappresenta il documento PDF al quale viene aggiunto un campo firma utilizzando il relativo costruttore e passando un valore di stringa che specifica la posizione del documento PDF.
    • Creare un com.adobe.idp.Document oggetto utilizzando il relativo costruttore e passando l' java.io.FileInputStream oggetto.
  4. Aggiunta di un campo firma
    • Creare un oggetto PositionRectangle che specifica la posizione del campo firma utilizzando il relativo costruttore. All'interno del costruttore, specificate i valori delle coordinate.
    • Se necessario, creare un FieldMDPOptions oggetto che specifica i campi bloccati quando si applica una firma digitale al campo firma.
    • Aggiungere un campo firma a un documento PDF richiamando il metodo dell' SignatureServiceClient oggetto addSignatureField e passando i seguenti valori:
      • A com.adobe.idp . Document che rappresenta il documento PDF al quale viene aggiunto un campo firma.
      • Una stringa che specifica il nome del campo firma.
      • Un java.lang.Integer valore che rappresenta il numero di pagina al quale viene aggiunto un campo firma.
      • Un PositionRectangle oggetto che specifica la posizione del campo firma.
      • Un FieldMDPOptions oggetto che specifica i campi del documento PDF bloccati dopo l'applicazione di una firma digitale al campo firma. Questo valore di parametro è facoltativo e potete trasmettere null .
    • Un PDFSeedValueOptions oggetto che specifica vari valori di runtime. Questo valore di parametro è facoltativo e potete trasmettere null .
      Il addSignatureField metodo restituisce un com.adobe.idp . Document che rappresenta un documento PDF contenente un campo firma.
    È possibile richiamare il metodo dell' SignatureServiceClient oggetto addInvisibleSignatureField per aggiungere un campo firma invisibile.
  5. Salvare il documento PDF come file PDF
    • Create un java.io.File oggetto e accertatevi che l'estensione del file sia .pdf.
    • Richiama il com.adobe.idp . Document metodo dell'oggetto copyToFile per copiare il contenuto dell' Document oggetto nel file. Accertatevi di utilizzare il com.adobe.idp . Document oggetto restituito dal addSignatureField metodo.
Consulta anche

Aggiunta di campi firma tramite l'API del servizio Web

Per aggiungere un campo firma utilizzando l'API Signature (servizio Web):
  1. Includi file di progetto
    Creare un progetto Microsoft .NET che utilizza MTOM. Assicurarsi di utilizzare la seguente definizione WSDL: http://localhost:8080/soap/services/SignatureService?WSDL&lc_version=9.0.1 .
    Sostituire localhost con l'indirizzo IP del server in cui è installato AEM Forms.
  2. Creare un client per le firme
    • Creare un SignatureServiceClient oggetto utilizzando il relativo costruttore predefinito.
    • Creare un SignatureServiceClient.Endpoint.Address oggetto utilizzando il System.ServiceModel.EndpointAddress costruttore. Passa un valore di stringa che specifica il WSDL al servizio AEM Forms (ad esempio, http://localhost:8080/soap/services/SignatureService?WSDL ). Non è necessario utilizzare l' lc_version attributo. Questo attributo viene utilizzato quando create un riferimento a un servizio.
    • Creare un System.ServiceModel.BasicHttpBinding oggetto ottenendo il valore del SignatureServiceClient.Endpoint.Binding campo. Inserite il valore restituito in BasicHttpBinding .
    • Impostare il campo System.ServiceModel.BasicHttpBinding dell' MessageEncoding oggetto su WSMessageEncoding.Mtom . Questo valore assicura che venga utilizzato MTOM.
    • Abilitate l'autenticazione HTTP di base eseguendo le seguenti operazioni:
      • Assegnare il nome utente dei moduli AEM al campo SignatureServiceClient.ClientCredentials.UserName.UserName .
      • Assegnare il valore della password corrispondente al campo SignatureServiceClient.ClientCredentials.UserName.Password .
      • Assegnare il valore costante HttpClientCredentialType.Basic al campo BasicHttpBindingSecurity.Transport.ClientCredentialType .
      • Assegnare il valore costante BasicHttpSecurityMode.TransportCredentialOnly al campo BasicHttpBindingSecurity.Security.Mode .
  3. Ottenere un documento PDF a cui è aggiunto un campo firma
    • Creare un BLOB oggetto utilizzando il relativo costruttore. L' BLOB oggetto viene utilizzato per memorizzare il documento PDF che conterrà un campo firma.
    • Creare un System.IO.FileStream oggetto richiamando il relativo costruttore e passando un valore di stringa che rappresenta la posizione del file del documento PDF e la modalità di apertura del file.
    • Creare un array di byte che memorizza il contenuto dell' System.IO.FileStream oggetto. È possibile determinare la dimensione dell'array di byte ottenendo la proprietà dell' System.IO.FileStream oggetto Length .
    • Compilare l'array di byte con i dati del flusso richiamando il System.IO.FileStream Read metodo dell'oggetto e passando l'array di byte, la posizione iniziale e la lunghezza del flusso da leggere.
    • Compilare l' BLOB oggetto assegnandone MTOM la proprietà con il contenuto dell'array di byte.
  4. Aggiunta di un campo firma
    Aggiungere un campo firma al documento PDF richiamando il metodo dell' SignatureServiceClient oggetto addSignatureField e passando i seguenti valori:
    • Un BLOB oggetto che rappresenta il documento PDF al quale viene aggiunto un campo firma.
    • Una stringa che specifica il nome del campo firma.
    • Un valore intero che rappresenta il numero di pagina al quale viene aggiunto un campo firma.
    • Un PositionRect oggetto che specifica la posizione del campo firma.
    • Un FieldMDPOptions oggetto che specifica i campi del documento PDF bloccati dopo l'applicazione di una firma digitale al campo firma. Questo valore di parametro è facoltativo e potete trasmettere null .
    • Un PDFSeedValueOptions oggetto che specifica vari valori di runtime. Questo valore di parametro è facoltativo e potete trasmettere null .
    Il addSignatureField metodo restituisce un BLOB oggetto che rappresenta un documento PDF contenente un campo firma.
  5. Salvare il documento PDF come file PDF
    • Creare un System.IO.FileStream oggetto richiamando il relativo costruttore e passando un valore di stringa che rappresenta la posizione del file del documento PDF che conterrà il campo firma e la modalità di apertura del file.
    • Creare un array di byte che memorizza il contenuto dell' BLOB oggetto restituito dal addSignatureField metodo. Compilare l'array di byte ottenendo il valore del membro BLOB dati dell' binaryData oggetto.
    • Creare un System.IO.BinaryWriter oggetto richiamando il relativo costruttore e passando l' System.IO.FileStream oggetto.
    • Scrivere il contenuto dell'array di byte in un file PDF richiamando il metodo dell' System.IO.BinaryWriter oggetto Write e passando l'array di byte.
Consulta anche

Recupero dei nomi dei campi firma

È possibile recuperare i nomi di tutti i campi firma presenti in un documento PDF che si desidera firmare o certificare. Se non si è certi dei nomi dei campi firma che si trovano in un documento PDF o si desidera verificarne i nomi, è possibile recuperarli a livello di programmazione. Il servizio Firma restituisce il nome completo del campo firma, ad esempio form1[0].grantApplication[0].page1[0].SignatureField1[0] .
Per ulteriori informazioni sul servizio Firma, consulta Riferimento servizi per AEM Forms

Riepilogo dei passaggi

Per recuperare i nomi dei campi firma, effettuare le seguenti operazioni:
  1. Includere i file di progetto.
  2. Creare un client per le firme.
  3. Ottenere il documento PDF contenente i campi firma.
  4. Recuperare i nomi dei campi firma.
Includi file di progetto
Includete i file necessari nel progetto di sviluppo. Se create un'applicazione client utilizzando Java, includete i file JAR necessari. Se utilizzate i servizi Web, accertatevi di includere i file proxy.
I seguenti file JAR devono essere aggiunti al percorso di classe del progetto:
  • adobe-livecycle-client.jar
  • adobe-usermanager-client.jar
  • adobe-signatures-client.jar
  • adobe-utilities.jar (richiesto se AEM Forms è distribuito su JBoss)
  • jbossall-client.jar (richiesto se AEM Forms è distribuito su JBoss)
Per informazioni sulla posizione di questi file JAR, consultate Inclusione di file libreria Java AEM Forms.
Creare un client per le firme
Prima di eseguire un'operazione del servizio Firma a livello di programmazione, è necessario creare un client del servizio Firma.
Ottenere il documento PDF contenente i campi firma
Recuperare un documento PDF contenente campi firma.
Recuperare i nomi dei campi firma
È possibile recuperare i nomi dei campi firma dopo aver recuperato un documento PDF contenente uno o più campi firma.
Consulta anche

Recupero dei nomi dei campi firma tramite l'API Java

Recupera i nomi dei campi firma utilizzando l'API Signature (Java):
  1. Includi file di progetto
    Includete file JAR client, ad esempio adobe-signatures-client.jar, nel percorso di classe del progetto Java.
  2. Creare un client per le firme
    • Creare un ServiceClientFactory oggetto che contenga proprietà di connessione.
    • Creare un SignatureServiceClient oggetto utilizzando il relativo costruttore e passando l' ServiceClientFactory oggetto.
  3. Ottenere il documento PDF contenente i campi firma
    • Creare un java.io.FileInputStream oggetto che rappresenta il documento PDF contenente campi firma utilizzando il relativo costruttore e passando un valore di stringa che specifica la posizione del documento PDF.
    • Creare un com.adobe.idp.Document oggetto utilizzando il relativo costruttore e passando l' java.io.FileInputStream oggetto.
  4. Recuperare i nomi dei campi firma
    • Recuperare i nomi dei campi firma richiamando il metodo dell' SignatureServiceClient oggetto getSignatureFieldList e passando l'oggetto com.adobe.idp.Document che contiene il documento PDF contenente i campi firma. Questo metodo restituisce un java.util.List oggetto, in cui ogni elemento contiene un PDFSignatureField oggetto. Utilizzando questo oggetto, è possibile ottenere informazioni aggiuntive su un campo firma, ad esempio se è visibile o meno.
    • Eseguire un'iterazione sull' java.util.List oggetto per determinare se sono presenti nomi di campo firma. Per ciascun campo firma del documento PDF è possibile ottenere un PDFSignatureField oggetto a parte. Per ottenere il nome del campo firma, richiamare il metodo PDFSignatureField dell'oggetto getName . Questo metodo restituisce un valore di stringa che specifica il nome del campo firma.
Consulta anche

Recupero del campo firma tramite l'API del servizio Web

Recuperare i nomi dei campi firma utilizzando l'API Signature (servizio Web):
  1. Includi file di progetto
    Creare un progetto Microsoft .NET che utilizza MTOM. Assicurarsi di utilizzare la seguente definizione WSDL: http://localhost:8080/soap/services/SignatureService?WSDL&lc_version=9.0.1 .
    Sostituire localhost con l'indirizzo IP del server in cui è installato AEM Forms.
  2. Creare un client per le firme
    • Creare un SignatureServiceClient oggetto utilizzando il relativo costruttore predefinito.
    • Creare un SignatureServiceClient.Endpoint.Address oggetto utilizzando il System.ServiceModel.EndpointAddress costruttore. Passa un valore di stringa che specifica il WSDL al servizio AEM Forms (ad esempio, http://localhost:8080/soap/services/SignatureService?WSDL ). Non è necessario utilizzare l' lc_version attributo. Questo attributo viene utilizzato quando create un riferimento a un servizio.
    • Creare un System.ServiceModel.BasicHttpBinding oggetto ottenendo il valore del SignatureServiceClient.Endpoint.Binding campo. Inserite il valore restituito in BasicHttpBinding .
    • Impostare il campo System.ServiceModel.BasicHttpBinding dell' MessageEncoding oggetto su WSMessageEncoding.Mtom . Questo valore assicura che venga utilizzato MTOM.
    • Abilitate l'autenticazione HTTP di base eseguendo le seguenti operazioni:
      • Assegnare il nome utente dei moduli AEM al campo SignatureServiceClient.ClientCredentials.UserName.UserName .
      • Assegnare il valore della password corrispondente al campo SignatureServiceClient.ClientCredentials.UserName.Password .
      • Assegnare il valore costante HttpClientCredentialType.Basic al campo BasicHttpBindingSecurity.Transport.ClientCredentialType .
      • Assegnare il valore costante BasicHttpSecurityMode.TransportCredentialOnly al campo BasicHttpBindingSecurity.Security.Mode .
  3. Ottenere il documento PDF contenente i campi firma
    • Creare un BLOB oggetto utilizzando il relativo costruttore. L' BLOB oggetto viene utilizzato per memorizzare il documento PDF che contiene campi firma.
    • Creare un System.IO.FileStream oggetto richiamando il relativo costruttore e passando un valore di stringa che rappresenta la posizione del file del documento PDF e la modalità di apertura del file.
    • Creare un array di byte che memorizza il contenuto dell' System.IO.FileStream oggetto. È possibile determinare la dimensione dell'array di byte ottenendo la proprietà dell' System.IO.FileStream oggetto Length .
    • Compilare l'array di byte con i dati del flusso richiamando il System.IO.FileStream Read metodo dell'oggetto e passando l'array di byte, la posizione iniziale e la lunghezza del flusso da leggere.
    • Compilare l' BLOB oggetto assegnando al relativo MTOM campo il contenuto dell'array di byte.
  4. Recuperare i nomi dei campi firma
    • Recuperare i nomi dei campi firma richiamando il SignatureServiceClient metodo dell' getSignatureFieldList oggetto e passando l'oggetto BLOB che contiene il documento PDF contenente i campi firma. Questo metodo restituisce un oggetto MyArrayOfPDFSignatureField raccolta in cui ogni elemento contiene un PDFSignatureField oggetto.
    • Eseguire un'iterazione sull' MyArrayOfPDFSignatureField oggetto per determinare se sono presenti nomi di campo firma. Per ciascun campo firma del documento PDF è possibile ottenere un PDFSignatureField oggetto. Per ottenere il nome del campo firma, richiamare il metodo PDFSignatureField dell'oggetto getName . Questo metodo restituisce un valore di stringa che specifica il nome del campo firma.
Consulta anche

Modifica dei campi firma

È possibile modificare i campi firma che si trovano in un documento PDF utilizzando l'API Java e l'API del servizio Web. La modifica di un campo firma comporta la manipolazione dei valori del dizionario del blocco del campo firma o dei valori del dizionario dei valori iniziali.
Un dizionario per il blocco dei campi specifica un elenco di campi che vengono bloccati al momento della firma del campo firma. Un campo bloccato impedisce agli utenti di apportare modifiche al campo. Un dizionario dei valori iniziali contiene informazioni restrittive utilizzate al momento dell'applicazione della firma. Ad esempio, è possibile modificare le autorizzazioni che controllano le azioni che possono verificarsi senza invalidare una firma.
Modificando un campo firma esistente, è possibile apportare modifiche al documento PDF per riflettere i diversi requisiti aziendali. Ad esempio, un nuovo requisito aziendale potrebbe richiedere il blocco di tutti i campi del documento dopo la firma del documento.
In questa sezione viene illustrato come modificare un campo firma modificando sia i valori del dizionario dei valori di blocco dei campi che i valori del dizionario dei valori dei valori iniziali. Le modifiche apportate al dizionario dei blocchi del campo firma causano il blocco di tutti i campi del documento PDF al momento della firma di un campo firma. Le modifiche apportate al dizionario dei valori iniziali non consentono l'utilizzo di tipi specifici di modifiche al documento.
Per ulteriori informazioni sul servizio Firma e sulla modifica dei campi firma, consultate Guida di riferimento ai servizi per i moduli AEM.

Riepilogo dei passaggi

Per modificare i campi firma contenuti in un documento PDF, effettuare le seguenti operazioni:
  1. Includere i file di progetto.
  2. Creare un client per le firme.
  3. Ottenere il documento PDF contenente il campo firma da modificare.
  4. Impostate i valori dei dizionari.
  5. Modificare il campo firma.
  6. Salvare il documento PDF come file PDF.
Includi file di progetto
Includete i file necessari nel progetto di sviluppo. Se create un'applicazione client utilizzando Java, includete i file JAR necessari. Se utilizzate i servizi Web, accertatevi di includere i file proxy.
I seguenti file JAR devono essere aggiunti al percorso di classe del progetto:
  • adobe-livecycle-client.jar
  • adobe-usermanager-client.jar
  • adobe-signatures-client.jar
  • adobe-utilities.jar (richiesto se AEM Forms è distribuito su JBoss)
  • jbossall-client.jar (richiesto se AEM Forms è distribuito su JBoss)
Per informazioni sulla posizione di questi file JAR, vedere Inclusione di file libreria Java di LiveCycle.
Creare un client per le firme
Prima di eseguire un'operazione del servizio Firma a livello di programmazione, è necessario creare un client del servizio Firma.
Ottenere il documento PDF contenente il campo firma da modificare
Recuperare un documento PDF contenente il campo firma da modificare.
Impostare i valori dei dizionari
Per modificare un campo firma, assegnare valori al relativo dizionario di blocco del campo o al dizionario dei valori iniziali. Per specificare i valori del dizionario dei blocchi del campo firma è necessario specificare i campi del documento PDF che sono bloccati al momento della firma del campo firma. In questa sezione viene illustrato come bloccare tutti i campi.
È possibile impostare i seguenti valori del dizionario dei valori iniziali:
  • Controllo revisione: Specifica se il controllo di revoca viene eseguito quando una firma viene applicata al campo firma.
  • Opzioni certificato: Assegna valori al dizionario dei valori iniziali del certificato. Prima di specificare le opzioni del certificato, si consiglia di acquisire familiarità con un dizionario dei valori del certificato. (Vedere Riferimento pdf_reference_1-7.pdfPDF.)
  • Opzioni digest: Assegna algoritmi digest utilizzati per la firma. I valori validi sono SHA1, SHA256, SHA384, SHA512 e RIPEMD160.
  • Filtro : Specifica il filtro utilizzato con il campo firma. Ad esempio, potete utilizzare il filtro Adobe.PPKLite. (Vedere Riferimento pdf_reference_1-7.pdfPDF.)
  • Opzioni contrassegno: Specifica i valori dei flag associati al campo firma. Il valore 1 indica che il firmatario deve utilizzare solo i valori specificati per la voce. Il valore 0 indica che sono consentiti altri valori. Ecco le posizioni Bit:
    • 1(Filtro): Gestore di firme da utilizzare per firmare il campo firma
    • 2 (SubFilter): Un array di nomi che indica codifiche accettabili da utilizzare per la firma
    • 3 (V) : Numero di versione minimo richiesto del gestore di firme da utilizzare per firmare il campo firma
    • 4 (Motivi): Un array di stringhe che specifica i possibili motivi per la firma di un documento
    • 5 (PDFLegalWarnings): Un array di stringhe che specifica possibili attestazioni legali
  • Attestati legali: Quando un documento è certificato, viene automaticamente analizzato per specifici tipi di contenuto che possono rendere il contenuto visibile di un documento ambiguo o fuorviante. Ad esempio, un’annotazione può oscurare il testo importante per comprendere ciò che viene certificato. Il processo di scansione genera avvisi che indicano la presenza di questo tipo di contenuto. Fornisce inoltre una spiegazione aggiuntiva del contenuto che potrebbe aver generato avvisi.
  • Autorizzazioni : Specifica le autorizzazioni che possono essere utilizzate in un documento PDF senza invalidare la firma.
  • Motivi : Specifica i motivi per cui il documento deve essere firmato.
  • Timestamp : Specifica le opzioni di marca temporale. Ad esempio, è possibile impostare l'URL del server di marca temporale utilizzato.
  • Versione : Specifica il numero di versione minimo del gestore di firme da utilizzare per firmare il campo firma.
Modifica del campo firma
Dopo aver creato un client del servizio Firma, recuperare il documento PDF contenente il campo firma da modificare e impostare i valori del dizionario, è possibile richiedere al servizio Firma di modificare il campo firma. Il servizio Firma quindi restituisce un documento PDF contenente il campo firma modificato. Il documento PDF originale non viene modificato.
Salvare il documento PDF come file PDF
Salvare come file PDF il documento PDF contenente il campo firma modificato in modo che gli utenti possano aprirlo in Acrobat o Adobe Reader.
Consulta anche

Modificare i campi firma utilizzando l'API Java

Modificare un campo firma utilizzando l'API Signature (Java):
  1. Includi file di progetto
    Includete file JAR client, ad esempio adobe-signatures-client.jar, nel percorso di classe del progetto Java.
  2. Creare un client per le firme
    • Creare un ServiceClientFactory oggetto che contenga proprietà di connessione.
    • Creare un SignatureServiceClient oggetto utilizzando il relativo costruttore e passando l' ServiceClientFactory oggetto.
  3. Ottenere il documento PDF contenente il campo firma da modificare
    • Creare un java.io.FileInputStream oggetto che rappresenta il documento PDF contenente il campo firma da modificare utilizzando il relativo costruttore e passando un valore di stringa che specifica la posizione del documento PDF.
    • Creare un com.adobe.idp.Document oggetto utilizzando il relativo costruttore e passando l' java.io.FileInputStream oggetto.
  4. Impostare i valori dei dizionari
    • Creare un PDFSignatureFieldProperties oggetto utilizzando il relativo costruttore. Un PDFSignatureFieldProperties oggetto memorizza il dizionario del blocco del campo firma e le informazioni del dizionario dei valori iniziali.
    • Creare un PDFSeedValueOptionSpec oggetto utilizzando il relativo costruttore. Questo oggetto consente di impostare i valori del dizionario dei valori iniziali.
    • Non consentire modifiche al documento PDF richiamando il metodo dell' PDFSeedValueOptionSpec oggetto setMdpValue e passando il valore di MDPPermissions.NoChanges enumerazione.
    • Creare un FieldMDPOptionSpec oggetto utilizzando il relativo costruttore. Questo oggetto consente di impostare i valori dei dizionari per il blocco dei campi firma.
    • Bloccare tutti i campi nel documento PDF richiamando il FieldMDPOptionSpec metodo dell'oggetto setMdpValue e passando il valore di FieldMDPAction.ALL enumerazione.
    • Impostare le informazioni sul dizionario dei valori iniziali richiamando il PDFSignatureFieldProperties metodo dell'oggetto setSeedValue e passando l' PDFSeedValueOptionSpec oggetto.
    • Per impostare le informazioni sul dizionario del blocco del campo firma, richiamare il PDFSignatureFieldProperties metodo dell' setFieldMDP oggetto e passare l' FieldMDPOptionSpec oggetto.
    Per visualizzare tutti i valori del dizionario dei valori iniziali che è possibile impostare, vedere il riferimento alla PDFSeedValueOptionSpec classe. Consultate Riferimento API per AEM Forms.
  5. Modifica del campo firma
    Modificare il campo firma richiamando il metodo dell' SignatureServiceClient oggetto modifySignatureField e passando i seguenti valori:
    • L' com.adobe.idp.Document oggetto che memorizza il documento PDF contenente il campo firma da modificare
    • Valore stringa che specifica il nome del campo firma
    • L'oggetto PDFSignatureFieldProperties che memorizza il dizionario del blocco del campo firma e le informazioni sul dizionario dei valori iniziali
    Il modifySignatureField metodo restituisce un com.adobe.idp.Document oggetto che memorizza un documento PDF contenente il campo firma modificato.
  6. Salvare il documento PDF come file PDF
    • Create un java.io.File oggetto e accertatevi che l'estensione del nome del file sia .pdf.
    • Richiamare il metodo dell' com.adobe.idp.Document oggetto copyToFile per copiare il contenuto dell' com.adobe.idp.Document oggetto nel file. Assicurarsi di utilizzare l' com.adobe.idp.Document oggetto restituito dal modifySignatureField metodo.

Modificare i campi firma utilizzando l'API del servizio Web

Modificare un campo firma utilizzando l'API Signature (servizio Web):
  1. Includi file di progetto
    Creare un progetto Microsoft .NET che utilizza MTOM. Assicurarsi di utilizzare la seguente definizione WSDL: http://localhost:8080/soap/services/SignatureService?WSDL&lc_version=9.0.1 .
    Sostituire localhost con l'indirizzo IP del server in cui è installato AEM Forms.
  2. Creare un client per le firme
    • Creare un SignatureServiceClient oggetto utilizzando il relativo costruttore predefinito.
    • Creare un SignatureServiceClient.Endpoint.Address oggetto utilizzando il System.ServiceModel.EndpointAddress costruttore. Passa un valore di stringa che specifica il WSDL al servizio AEM Forms (ad esempio, http://localhost:8080/soap/services/SignatureService?WSDL ). Non è necessario utilizzare l' lc_version attributo. Questo attributo viene utilizzato quando create un riferimento a un servizio.
    • Creare un System.ServiceModel.BasicHttpBinding oggetto ottenendo il valore del SignatureServiceClient.Endpoint.Binding campo. Inserite il valore restituito in BasicHttpBinding .
    • Impostare il campo System.ServiceModel.BasicHttpBinding dell' MessageEncoding oggetto su WSMessageEncoding.Mtom . Questo valore assicura che venga utilizzato MTOM.
    • Abilitate l'autenticazione HTTP di base eseguendo le seguenti operazioni:
      • Assegnare il nome utente dei moduli AEM al campo SignatureServiceClient.ClientCredentials.UserName.UserName .
      • Assegnare il valore della password corrispondente al campo SignatureServiceClient.ClientCredentials.UserName.Password .
      • Assegnare il valore costante HttpClientCredentialType.Basic al campo BasicHttpBindingSecurity.Transport.ClientCredentialType .
      • Assegnare il valore costante BasicHttpSecurityMode.TransportCredentialOnly al campo BasicHttpBindingSecurity.Security.Mode .
  3. Ottenere il documento PDF contenente il campo firma da modificare
    • Creare un BLOB oggetto utilizzando il relativo costruttore. L' BLOB oggetto viene utilizzato per memorizzare il documento PDF contenente il campo firma da modificare.
    • Creare un System.IO.FileStream oggetto richiamando il relativo costruttore e passando un valore di stringa che rappresenta la posizione del file del documento PDF e la modalità di apertura del file.
    • Creare un array di byte che memorizza il contenuto dell' System.IO.FileStream oggetto. È possibile determinare la dimensione dell'array di byte ottenendo la proprietà dell' System.IO.FileStream oggetto Length .
    • Compilare l'array di byte con i dati del flusso richiamando il System.IO.FileStream Read metodo dell'oggetto e passando l'array di byte, la posizione iniziale e la lunghezza del flusso da leggere.
    • Compilare l' BLOB oggetto assegnando alla MTOM proprietà il contenuto dell'array di byte.
  4. Impostare i valori dei dizionari
    • Creare un PDFSignatureFieldProperties oggetto utilizzando il relativo costruttore. Questo oggetto memorizza il dizionario del blocco del campo firma e le informazioni del dizionario dei valori iniziali.
    • Creare un PDFSeedValueOptionSpec oggetto utilizzando il relativo costruttore. Questo oggetto consente di impostare i valori del dizionario dei valori iniziali.
    • Non consentire modifiche al documento PDF assegnando il valore di MDPPermissions.NoChanges enumerazione al membro PDFSeedValueOptionSpec dati dell' mdpValue oggetto.
    • Creare un FieldMDPOptionSpec oggetto utilizzando il relativo costruttore. Questo oggetto consente di impostare i valori dei dizionari per il blocco dei campi firma.
    • Bloccare tutti i campi nel documento PDF assegnando il valore di FieldMDPAction.ALL enumerazione al membro FieldMDPOptionSpec dati dell' mdpValue oggetto.
    • Impostare le informazioni sul dizionario dei valori iniziali assegnando l' PDFSeedValueOptionSpec oggetto al membro PDFSignatureFieldProperties dei seedValue dati dell'oggetto.
    • Impostare le informazioni sul dizionario dei blocchi del campo firma assegnando l' FieldMDPOptionSpec oggetto al membro dei dati PDFSignatureFieldProperties dell' fieldMDP oggetto.
    Per visualizzare tutti i valori del dizionario dei valori iniziali che è possibile impostare, vedere il riferimento alla PDFSeedValueOptionSpec classe. Consultate Riferimento API per AEM Forms.
  5. Modifica del campo firma
    Modificare il campo firma richiamando il metodo dell' SignatureServiceClient oggetto modifySignatureField e passando i seguenti valori:
    • L' BLOB oggetto che memorizza il documento PDF contenente il campo firma da modificare
    • Valore stringa che specifica il nome del campo firma
    • L'oggetto PDFSignatureFieldProperties che memorizza il dizionario del blocco del campo firma e le informazioni sul dizionario dei valori iniziali
    Il modifySignatureField metodo restituisce un BLOB oggetto che memorizza un documento PDF contenente il campo firma modificato.
  6. Salvare il documento PDF come file PDF
    • Creare un System.IO.FileStream oggetto richiamando il relativo costruttore e passando un valore di stringa che rappresenta la posizione del file del documento PDF che conterrà il campo firma e la modalità di apertura del file.
    • Creare un array di byte che memorizza il contenuto dell' BLOB oggetto restituito dal addSignatureField metodo. Compilare l'array di byte ottenendo il valore del membro BLOB dati dell' MTOM oggetto.
    • Creare un System.IO.BinaryWriter oggetto richiamando il relativo costruttore e passando l' System.IO.FileStream oggetto.
    • Scrivere il contenuto dell'array di byte in un file PDF richiamando il metodo dell' System.IO.BinaryWriter oggetto Write e passando l'array di byte.
Consulta anche

Firma digitale di documenti PDF

Le firme digitali possono essere applicate ai documenti PDF per garantire un livello di protezione elevato. Le firme digitali, come le firme autografe, forniscono un mezzo mediante il quale i firmatari si identificano e pronunciano dichiarazioni su un documento. La tecnologia utilizzata per firmare digitalmente i documenti garantisce che sia il firmatario che i destinatari siano consapevoli di ciò che è stato firmato e che il documento non sia stato alterato dall'apposizione della firma.
I documenti PDF sono firmati mediante la tecnologia a chiave pubblica. Un firmatario ha due chiavi: una chiave pubblica e una chiave privata. La chiave privata è memorizzata nella credenziale di un utente che deve essere disponibile al momento della firma. La chiave pubblica è memorizzata nel certificato dell'utente e deve essere disponibile ai destinatari per convalidare la firma. Le informazioni sui certificati revocati si trovano negli elenchi di revoche di certificati (CRL) e nelle risposte del protocollo di stato del certificato online (OCSP) distribuite dalle autorità di certificazione (CA). L'ora della firma può essere ottenuta da un'origine affidabile nota come Autorità di marca temporale.
Prima di poter firmare digitalmente un documento PDF, è necessario assicurarsi di aggiungere il certificato ad AEM Forms. Un certificato viene aggiunto utilizzando la console di amministrazione o a livello di programmazione tramite l'API di Trust Manager. (vedere Importazione di credenziali tramite l'API di Trust Manager).
È possibile firmare i documenti PDF a livello di programmazione. Durante la firma digitale di un documento PDF, è necessario fare riferimento a una credenziale di protezione esistente in AEM Forms. La credenziale è la chiave privata utilizzata per la firma.
Durante la firma di un documento PDF, il servizio Signature esegue i seguenti passaggi:
  1. Il servizio Signature recupera la credenziale dal TrustStore passando l'alias specificato nella richiesta.
  2. Il TrustStore cerca la credenziale specificata.
  3. Le credenziali vengono restituite al servizio Firma e utilizzate per firmare il documento. La credenziale viene inoltre memorizzata nella cache rispetto all'alias per richieste future.
Per informazioni sulla gestione delle credenziali di protezione, consultate la guida Installazione e distribuzione di AEM Forms per il server delle applicazioni.
Esistono differenze tra la firma e la certificazione dei documenti. (Vedere Certificazione di documenti PDF.)
Non tutti i documenti PDF supportano la firma. Per ulteriori informazioni sul servizio Firma e sulla firma digitale dei documenti, consultate Guida di riferimento ai servizi per i moduli AEM.
Il servizio Signature non supporta i file XDP con dati PDF incorporati come input per un'operazione, ad esempio la certificazione di un documento. Con questa azione il servizio Firma genera un PDFOperationException . Per risolvere il problema, convertire il file XDP in un file PDF utilizzando il servizio Utilità PDF, quindi passare il file PDF convertito a un'operazione del servizio Firma. (Vedere Utilizzo delle utility PDF.)
Credenziali HSM di Cipher nShield
Quando si utilizza una credenziale HSM di CipherShield per firmare o certificare un documento PDF, non è possibile utilizzare la nuova credenziale fino al riavvio del server applicazioni J2EE in cui AEM Forms è stato distribuito. Tuttavia, è possibile impostare un valore di configurazione, in modo che l'operazione di firma o certificazione funzioni senza riavviare il server applicazione J2EE.
Potete aggiungere il seguente valore di configurazione nel file cknfastrc, che si trova in /opt/nfast/cknfastrc (o c:\nfast\cknfastrc):
 CKNFAST_ASSUME_SINGLE_PROCESS=0

Dopo aver aggiunto questo valore di configurazione al file cknfastrc, è possibile utilizzare la nuova credenziale senza riavviare il server applicazione J2EE.
Firma non attendibile
Durante la certificazione e la firma dello stesso documento PDF, se la firma di certificazione non è affidabile, all'apertura del documento PDF in Acrobat o Adobe Reader viene visualizzato un triangolo giallo contro la prima firma. La firma di certificazione deve essere ritenuta affidabile per evitare tale situazione.
Firma di documenti basati su XFA
Se si tenta di firmare un modulo basato su XFA utilizzando l'API del servizio Firma, i dati potrebbero non essere presenti nella View``Signed posizione Version in Acrobat. Ad esempio, prendete in considerazione il seguente flusso di lavoro:
  • Utilizzando un file XDP creato utilizzando Designer, è possibile unire una struttura del modulo contenente un campo firma e dati XML che contengono dati del modulo. Il servizio Moduli consente di generare un documento PDF interattivo.
  • È possibile firmare il documento PDF utilizzando l'API del servizio Firma.

Riepilogo dei passaggi

Per firmare digitalmente un documento PDF, effettuare le seguenti operazioni:
  1. Includere i file di progetto.
  2. Creare un client del servizio Firma.
  3. Richiedere la firma del documento PDF.
  4. Firmare il documento PDF.
  5. Salvare il documento PDF firmato come file PDF.
Includi file di progetto
Includete i file necessari nel progetto di sviluppo. Se create un'applicazione client utilizzando Java, includete i file JAR necessari. Se utilizzate i servizi Web, accertatevi di includere i file proxy.
I seguenti file JAR devono essere aggiunti al percorso di classe del progetto:
  • adobe-livecycle-client.jar
  • adobe-usermanager-client.jar
  • adobe-signatures-client.jar
  • adobe-utilities.jar (richiesto se AEM Forms è distribuito su JBoss)
  • jbossall-client.jar (richiesto se AEM Forms è distribuito su JBoss)
Creare un client per firme
Prima di eseguire un'operazione del servizio Firma a livello di programmazione, è necessario creare un client del servizio Firma.
Richiedere la firma del documento PDF
Per firmare un documento PDF, è necessario ottenere un documento PDF contenente un campo firma. Se un documento PDF non contiene un campo firma, non può essere firmato. È possibile aggiungere un campo firma utilizzando Designer o a livello di programmazione.
Firmare il documento PDF
Durante la firma di un documento PDF, è possibile impostare le opzioni di esecuzione utilizzate dal servizio Firma. Potete impostare le seguenti opzioni:
  • Opzioni di aspetto
  • Controllo revoca
  • Valori timestamp
È possibile impostare le opzioni di aspetto utilizzando un PDFSignatureAppearanceOptionSpec oggetto. Ad esempio, è possibile visualizzare la data all'interno di una firma richiamando il metodo dell' PDFSignatureAppearanceOptionSpec oggetto setShowDate e passando true .
È inoltre possibile specificare se eseguire o meno un controllo di revoca che determini la revoca del certificato utilizzato per firmare digitalmente un documento PDF. Per eseguire il controllo della revoca, è possibile specificare uno dei seguenti valori:
  • NoCheck : Non eseguire il controllo della revoca.
  • BestEffort : Tentate sempre di verificare la revoca di tutti i certificati nella catena. Se si verifica un problema nella verifica, si presume che la revoca sia valida. Se si verifica un errore, si supponga che il certificato non venga revocato.
  • CheckIfAvailable: Verificare la revoca di tutti i certificati nella catena se sono disponibili informazioni sulla revoca. Se si verifica un problema nella verifica, si presume che la revoca non sia valida. Se si verifica un errore, si presuppone che il certificato sia revocato e non sia valido. Questo è il valore predefinito.
  • AlwaysCheck : Verificare la revoca di tutti i certificati nella catena. Se le informazioni sulla revoca non sono presenti in alcun certificato, si presume che la revoca non sia valida.
Per eseguire il controllo della revoca su un certificato, è possibile specificare un URL di un server dell'elenco di revoche di certificati (CRL) utilizzando un CRLOptionSpec oggetto. Tuttavia, se si desidera eseguire il controllo delle revoche e non si specifica un URL per un server CRL, il servizio Signature ottiene l'URL dal certificato.
Invece di utilizzare un server CRL, è possibile utilizzare un server OCSP (Certificate Status Protocol) online durante il controllo delle revoche. In genere, quando si utilizza un server OCSP anziché un server CRL, il controllo di revoca viene eseguito più rapidamente. (vedere "Protocollo di stato del certificato online" all'indirizzo https://tools.ietf.org/html/rfc2560 .)
È possibile impostare l'ordine del server CRL e OCSP utilizzato dal servizio Signature utilizzando Adobe Applications and Services. Ad esempio, se il server OCSP è impostato per primo in Adobe Applications and Services, il server OCSP è selezionato, seguito dal server CRL. (vedere "Gestione di certificati e credenziali tramite Trust Store" nell'Aiuto di AAC).
Se si specifica di non eseguire il controllo di revoca, il servizio Firma non controlla se il certificato utilizzato per firmare o certificare un documento è stato revocato. In altre parole, le informazioni relative al server CRL e OCSP vengono ignorate.
Sebbene nel certificato sia possibile specificare un CRL o un server OCSP, è possibile sostituire l'URL specificato nel certificato utilizzando un CRLOptionSpec oggetto e un OCSPOptionSpec oggetto. Ad esempio, per ignorare il server CRL, è possibile richiamare il metodo dell' CRLOptionSpec oggetto setLocalURI .
La marca temporale indica il processo di tracciamento dell'ora in cui un documento firmato o certificato è stato modificato. Una volta firmato, il documento non deve essere modificato, neanche dal proprietario del documento. La marca temporale consente di applicare la validità di un documento firmato o certificato. È possibile impostare le opzioni di marca temporale utilizzando un TSPOptionSpec oggetto. Ad esempio, potete specificare l'URL di un server provider di marca temporale (TSP).
In Java e nel servizio Web passano attraverso le sezioni e il relativo avvio rapido, viene utilizzato il controllo delle revoche. Poiché non sono specificate informazioni sul server CRL o OCSP, le informazioni sul server vengono ottenute dal certificato utilizzato per firmare digitalmente il documento PDF.
Per firmare correttamente un documento PDF, è possibile specificare il nome completo del campo firma che conterrà la firma digitale, ad esempio form1[0].#subform[1].SignatureField3[3] . Quando si utilizza un campo modulo XFA, è possibile utilizzare anche il nome parziale del campo firma: SignatureField3[3] .
È inoltre necessario fare riferimento a una credenziale di protezione per firmare digitalmente un documento PDF. Per fare riferimento a una credenziale di protezione, è necessario specificare un alias. L’alias è un riferimento a una credenziale effettiva che potrebbe trovarsi in un file PKCS#12 (con estensione .pfx) o in un modulo di protezione hardware (HSM). Per informazioni sulle credenziali di protezione, consultate la guida Installazione e distribuzione di AEM Forms per il server delle applicazioni.
Salvare il documento PDF firmato
Dopo che il servizio Firma ha apposto la firma digitale al documento PDF, è possibile salvarlo come file PDF per consentire agli utenti di aprirlo in Acrobat o Adobe Reader.
Consulta anche

Firma digitale di documenti PDF tramite l'API Java

Firmare digitalmente un documento PDF utilizzando l'API Signature (Java):
  1. Includi file di progetto
    Includete file JAR client, ad esempio adobe-signatures-client.jar, nel percorso di classe del progetto Java.
  2. Creare un client per firme
    • Creare un ServiceClientFactory oggetto che contenga proprietà di connessione.
    • Creare un SignatureServiceClient oggetto utilizzando il relativo costruttore e passando l' ServiceClientFactory oggetto.
  3. Richiedere la firma del documento PDF
    • Creare un oggetto java.io.FileInputStream che rappresenti il documento PDF da firmare digitalmente utilizzando il relativo costruttore e passando un valore di stringa che specifica la posizione del documento PDF.
    • Creare un com.adobe.idp.Document oggetto utilizzando il relativo costruttore e passando l' java.io.FileInputStream oggetto.
  4. Firmare il documento PDF
    Firmare il documento PDF richiamando il metodo dell' SignatureServiceClient oggetto sign e passando i seguenti valori:
    • Un com.adobe.idp.Document oggetto che rappresenta il documento PDF da firmare.
    • Una stringa che rappresenta il nome del campo firma che conterrà la firma digitale.
    • Un Credential oggetto che rappresenta la credenziale utilizzata per firmare digitalmente il documento PDF. Creare un Credential oggetto richiamando il Credential metodo statico dell' getInstance oggetto e passando un valore di stringa che specifica il valore alias corrispondente alla credenziale di sicurezza.
    • Un HashAlgorithm oggetto che specifica un membro di dati statici che rappresenta l'algoritmo hash da utilizzare per rigenerare il documento PDF. Ad esempio, potete specificare HashAlgorithm.SHA1 l'utilizzo dell'algoritmo SHA1.
    • Valore stringa che rappresenta il motivo per cui il documento PDF è stato firmato digitalmente.
    • Una stringa che rappresenta le informazioni di contatto del firmatario.
    • Un PDFSignatureAppearanceOptions oggetto che controlla l'aspetto della firma digitale. Ad esempio, è possibile utilizzare questo oggetto per aggiungere un logo personalizzato a una firma digitale.
    • Un java.lang.Boolean oggetto che specifica se eseguire il controllo di revoca sul certificato del firmatario.
    • Un OCSPOptionSpec oggetto che memorizza le preferenze per il supporto del protocollo OCSP (Online Certificate Status Protocol). Se il controllo della revoca non viene eseguito, questo parametro non viene utilizzato e potete specificare null .
    • Un CRLPreferences oggetto che memorizza le preferenze dell'elenco di revoca dei certificati (CRL, Certificate Revocation List). Se il controllo della revoca non viene eseguito, questo parametro non viene utilizzato e potete specificare null .
    • Un TSPPreferences oggetto che memorizza le preferenze per il supporto del provider di marca temporale (TSP). Questo parametro è facoltativo e può essere null . Per ulteriori informazioni, consulta Riferimento API per AEM Forms.
    Il sign metodo restituisce un com.adobe.idp.Document oggetto che rappresenta il documento PDF firmato.
  5. Salvare il documento PDF firmato
    • Create un java.io.File oggetto e accertatevi che l'estensione del file sia .pdf.
    • Richiamare il com.adobe.idp.Document metodo dell' copyToFile oggetto e passare java.io.File al file il contenuto dell' Document oggetto. Assicurarsi di utilizzare l' com.adobe.idp.Document oggetto restituito dal sign metodo.
Consulta anche

Firma digitale di documenti PDF tramite l'API del servizio Web

Per firmare digitalmente un documento PDF utilizzando l'API Signature (servizio Web):
  1. Includi file di progetto
    Creare un progetto Microsoft .NET che utilizza MTOM. Assicurarsi di utilizzare la seguente definizione WSDL: http://localhost:8080/soap/services/SignatureService?WSDL&lc_version=9.0.1 .
    Sostituire localhost con l'indirizzo IP del server in cui è installato AEM Forms.
  2. Creare un client per firme
    • Creare un SignatureServiceClient oggetto utilizzando il relativo costruttore predefinito.
    • Creare un SignatureServiceClient.Endpoint.Address oggetto utilizzando il System.ServiceModel.EndpointAddress costruttore. Passa un valore di stringa che specifica il WSDL al servizio AEM Forms (ad esempio, http://localhost:8080/soap/services/SignatureService?WSDL ). Non è necessario utilizzare l' lc_version attributo. Questo attributo viene utilizzato quando create un riferimento a un servizio.
    • Creare un System.ServiceModel.BasicHttpBinding oggetto ottenendo il valore del SignatureServiceClient.Endpoint.Binding campo. Inserite il valore restituito in BasicHttpBinding .
    • Impostare il campo System.ServiceModel.BasicHttpBinding dell' MessageEncoding oggetto su WSMessageEncoding.Mtom . Questo valore assicura che venga utilizzato MTOM.
    • Abilitate l'autenticazione HTTP di base eseguendo le seguenti operazioni:
      • Assegnare il nome utente dei moduli AEM al campo SignatureServiceClient.ClientCredentials.UserName.UserName .
      • Assegnare il valore della password corrispondente al campo SignatureServiceClient.ClientCredentials.UserName.Password .
      • Assegnare il valore costante HttpClientCredentialType.Basic al campo BasicHttpBindingSecurity.Transport.ClientCredentialType .
      • Assegnare il valore costante BasicHttpSecurityMode.TransportCredentialOnly al campo BasicHttpBindingSecurity.Security.Mode .
  3. Richiedere la firma del documento PDF
    • Creare un BLOB oggetto utilizzando il relativo costruttore. L' BLOB oggetto viene utilizzato per memorizzare un documento PDF firmato.
    • Creare un System.IO.FileStream oggetto richiamando il relativo costruttore e passando un valore di stringa che rappresenta la posizione del file del documento PDF da firmare e la modalità di apertura del file.
    • Creare un array di byte che memorizza il contenuto dell' System.IO.FileStream oggetto. È possibile determinare la dimensione dell'array di byte ottenendo la proprietà dell' System.IO.FileStream oggetto Length .
    • Compilare l'array di byte con i dati del flusso richiamando il System.IO.FileStream Read metodo dell'oggetto e passando l'array di byte, la posizione iniziale e la lunghezza del flusso da leggere.
    • Compilare l' BLOB oggetto assegnando alla MTOM proprietà il contenuto dell'array di byte.
  4. Firmare il documento PDF
    Firmare il documento PDF richiamando il metodo dell' SignatureServiceClient oggetto sign e passando i seguenti valori:
    • Un BLOB oggetto che rappresenta il documento PDF da firmare.
    • Una stringa che rappresenta il nome del campo firma che conterrà la firma digitale.
    • Un Credential oggetto che rappresenta la credenziale utilizzata per firmare digitalmente il documento PDF. Creare un Credential oggetto utilizzando il relativo costruttore e specificare l'alias assegnando un valore alla Credential proprietà dell' alias oggetto.
    • Un HashAlgorithm oggetto che specifica un membro di dati statici che rappresenta l'algoritmo hash da utilizzare per rigenerare il documento PDF. Ad esempio, potete specificare HashAlgorithm.SHA1 l'utilizzo dell'algoritmo SHA1.
    • Un valore booleano che specifica se utilizzare l'algoritmo hash.
    • Valore stringa che rappresenta il motivo per cui il documento PDF è stato firmato digitalmente.
    • Un valore di stringa che rappresenta la posizione del firmatario.
    • Una stringa che rappresenta le informazioni di contatto del firmatario.
    • Un PDFSignatureAppearanceOptions oggetto che controlla l'aspetto della firma digitale. Ad esempio, è possibile utilizzare questo oggetto per aggiungere un logo personalizzato a una firma digitale.
    • Un System.Boolean oggetto che specifica se eseguire il controllo di revoca sul certificato del firmatario. Se il controllo di revoca viene eseguito, viene incorporato nella firma. Il valore predefinito è false .
    • Un OCSPOptionSpec oggetto che memorizza le preferenze per il supporto del protocollo OCSP (Online Certificate Status Protocol). Se il controllo della revoca non viene eseguito, questo parametro non viene utilizzato e potete specificare null . Per informazioni su questo oggetto, consultate Guida di riferimento delle API per AEM Forms.
    • Un CRLPreferences oggetto che memorizza le preferenze dell'elenco di revoca dei certificati (CRL, Certificate Revocation List). Se il controllo della revoca non viene eseguito, questo parametro non viene utilizzato e potete specificare null .
    • Un TSPPreferences oggetto che memorizza le preferenze per il supporto del provider di marca temporale (TSP). Questo parametro è facoltativo e può essere null .
    Il sign metodo restituisce un BLOB oggetto che rappresenta il documento PDF firmato.
  5. Salvare il documento PDF firmato
    • Creare un System.IO.FileStream oggetto richiamandone il costruttore. Passa un valore di stringa che rappresenta la posizione del file del documento PDF firmato e la modalità di apertura del file.
    • Creare un array di byte che memorizza il contenuto dell' BLOB oggetto restituito dal sign metodo. Compilare l'array di byte ottenendo il valore del membro BLOB dati dell' MTOM oggetto.
    • Creare un System.IO.BinaryWriter oggetto richiamando il relativo costruttore e passando l' System.IO.FileStream oggetto.
    • Scrivere il contenuto dell'array di byte in un file PDF richiamando il metodo dell' System.IO.BinaryWriter oggetto Write e passando l'array di byte.
Consulta anche

Firma digitale di moduli interattivi

È possibile firmare un modulo interattivo creato dal servizio Forms. Ad esempio, prendete in considerazione il seguente flusso di lavoro:
  • È possibile unire un modulo PDF basato su XFA creato utilizzando Designer e i dati del modulo contenuti in un documento XML utilizzando il servizio Forms. Il server Forms esegue il rendering di un modulo interattivo.
  • È possibile firmare il modulo interattivo utilizzando l'API del servizio firma.
Il risultato è un modulo PDF interattivo con firma digitale. Durante la firma di un modulo PDF basato su un modulo XFA, è necessario salvare il file PDF come modulo PDF statico di Adobe. Se si tenta di firmare un modulo PDF salvato come modulo PDF dinamico Adobe, si verifica un'eccezione. Poiché si firma il modulo restituito dal servizio Forms, assicurarsi che contenga un campo firma.
Prima di poter firmare digitalmente un modulo interattivo, è necessario assicurarsi di aggiungere il certificato ad AEM Forms. Un certificato viene aggiunto utilizzando la console di amministrazione o a livello di programmazione tramite l'API di Trust Manager. (vedere Importazione di credenziali tramite l'API di Trust Manager).
Quando si utilizza l'API di Forms Service, impostare l'opzione di GenerateServerAppearance esecuzione su true . Questa opzione in fase di esecuzione assicura che l'aspetto del modulo generato sul server resti valido se aperto in Acrobat o Adobe Reader. È consigliabile impostare questa opzione di esecuzione al momento della generazione di un modulo interattivo da firmare tramite l'API Forms.
Prima di leggere la firma digitale dei moduli interattivi, è consigliabile avere familiarità con la firma dei documenti PDF. (Vedere Firma digitale di documenti PDF.)

Riepilogo dei passaggi

Per firmare digitalmente un modulo interattivo restituito dal servizio Forms, eseguire le operazioni seguenti:
  1. Includere i file di progetto.
  2. Creare un client Forms e Signatures.
  3. Ottenere il modulo interattivo utilizzando il servizio Forms.
  4. Firmare il modulo interattivo.
  5. Salvare il documento PDF firmato come file PDF.
Includi file di progetto
Includete i file necessari nel progetto di sviluppo. Se create un'applicazione client utilizzando Java, includete i file JAR necessari. Se utilizzate i servizi Web, accertatevi di includere i file proxy.
I seguenti file JAR devono essere aggiunti al percorso di classe del progetto:
  • adobe-livecycle-client.jar
  • adobe-usermanager-client.jar
  • adobe-signatures-client.jar
  • adobe-forms-client.jar
  • adobe-utilities.jar (richiesto se AEM Forms è distribuito su JBoss)
  • jbossall-client.jar (richiesto se AEM Forms è distribuito su JBoss)
Per informazioni sulla posizione di questi file JAR, consultate Inclusione di file libreria Java AEM Forms.
Creare un client Forms e Signatures
Poiché in questo flusso di lavoro vengono richiamati sia i servizi Forms che i servizi Signature, è necessario creare sia un client del servizio Forms che un client del servizio Signature.
Ottenere il modulo interattivo utilizzando il servizio Forms
È possibile utilizzare il servizio Moduli per ottenere il modulo PDF interattivo da firmare. Con AEM Forms è possibile trasmettere un com.adobe.idp.Document oggetto al servizio Forms che contiene il modulo da eseguire. Il nome di questo metodo è renderPDFForm2 . Questo metodo restituisce un com.adobe.idp.Document oggetto che contiene il modulo da firmare. È possibile trasmettere questa com.adobe.idp.Document istanza al servizio Signature.
Analogamente, se si utilizzano i servizi Web, è possibile trasmettere l' BLOB istanza restituita dal servizio Forms al servizio Signature.
L'avvio rapido associato alla sezione Moduli interattivi per la firma digitale richiama il renderPDFForm2 metodo.
Firmare il modulo interattivo
Durante la firma di un documento PDF, è possibile impostare le opzioni di esecuzione utilizzate dal servizio Firma. Potete impostare le seguenti opzioni:
  • Opzioni di aspetto
  • Controllo revoca
  • Valori timestamp
È possibile impostare le opzioni di aspetto utilizzando un PDFSignatureAppearanceOptionSpec oggetto. Ad esempio, è possibile visualizzare la data all'interno di una firma richiamando il metodo dell' PDFSignatureAppearanceOptionSpec oggetto setShowDate e passando true .
Salvare il documento PDF firmato
Dopo che il servizio Firma ha apposto la firma digitale al documento PDF, è possibile salvarlo come file PDF. Il file PDF può essere aperto in Acrobat o Adobe Reader.
Consulta anche

Firmare digitalmente un modulo interattivo utilizzando l'API Java

Firmare digitalmente un modulo interattivo utilizzando l'API Forms e Signature (Java):
  1. Includi file di progetto
    Includete file JAR client, ad esempio adobe-signatures-client.jar e adobe-forms-client.jar, nel percorso di classe del progetto Java.
  2. Creare un client Forms e Signatures
    • Creare un ServiceClientFactory oggetto che contenga proprietà di connessione.
    • Creare un SignatureServiceClient oggetto utilizzando il relativo costruttore e passando l' ServiceClientFactory oggetto.
    • Creare un FormsServiceClient oggetto utilizzando il relativo costruttore e passando l' ServiceClientFactory oggetto.
  3. Ottenere il modulo interattivo utilizzando il servizio Forms
    • Creare un java.io.FileInputStream oggetto che rappresenta il documento PDF da trasmettere al servizio Forms utilizzando il relativo costruttore. Passa un valore di stringa che specifica la posizione del documento PDF.
    • Creare un com.adobe.idp.Document oggetto utilizzando il relativo costruttore e passando l' java.io.FileInputStream oggetto.
    • Creare un java.io.FileInputStream oggetto che rappresenta il documento XML contenente i dati del modulo da trasmettere al servizio Forms utilizzando il relativo costruttore. Passa un valore di stringa che specifica la posizione del file XML.
    • Creare un com.adobe.idp.Document oggetto utilizzando il relativo costruttore e passando l' java.io.FileInputStream oggetto.
    • Creare un oggetto PDFFormRenderSpec utilizzato per impostare le opzioni di esecuzione. Richiama il metodo dell’ PDFFormRenderSpec oggetto setGenerateServerAppearance e passa true .
    • Richiama il metodo dell’ FormsServiceClient oggetto renderPDFForm2 e passa i seguenti valori:
      • Un com.adobe.idp.Document oggetto che contiene il modulo PDF di cui eseguire il rendering.
      • Un com.adobe.idp.Document oggetto che contiene i dati da unire al modulo.
      • Un PDFFormRenderSpec oggetto che memorizza le opzioni di esecuzione.
      • Un URLSpec oggetto che contiene valori URI richiesti dal servizio Forms. Potete specificare null il valore di questo parametro.
      • Un java.util.HashMap oggetto che memorizza gli allegati. Si tratta di un parametro facoltativo e potete specificare null se non desiderate allegare file al modulo.
      Il renderPDFForm2 metodo restituisce un FormsResult oggetto che contiene un flusso di dati del modulo
    • Recuperare il modulo PDF richiamando il FormsResult metodo dell' getOutputContent . Questo metodo restituisce un com.adobe.idp.Document oggetto che rappresenta il modulo interattivo.
  4. Firmare il modulo interattivo
    Firmare il documento PDF richiamando il metodo dell' SignatureServiceClient oggetto sign e passando i seguenti valori:
    • Un com.adobe.idp.Document oggetto che rappresenta il documento PDF da firmare. Assicurarsi che questo oggetto sia l' com.adobe.idp.Document oggetto ottenuto dal servizio Forms.
    • Una stringa che rappresenta il nome del campo firma firmato.
    • Un Credential oggetto che rappresenta la credenziale utilizzata per firmare digitalmente il documento PDF. Creare un Credential oggetto richiamando il Credential metodo statico dell'oggetto getInstance . Passa un valore di stringa che specifica il valore alias corrispondente alla credenziale di sicurezza.
    • Un HashAlgorithm oggetto che specifica un membro di dati statici che rappresenta l'algoritmo hash da utilizzare per rigenerare il documento PDF. Ad esempio, potete specificare HashAlgorithm.SHA1 l'utilizzo dell'algoritmo SHA1.
    • Valore stringa che rappresenta il motivo per cui il documento PDF è stato firmato digitalmente.
    • Una stringa che rappresenta le informazioni di contatto del firmatario.
    • Un PDFSignatureAppearanceOptions oggetto che controlla l'aspetto della firma digitale. Ad esempio, è possibile utilizzare questo oggetto per aggiungere un logo personalizzato a una firma digitale.
    • Un java.lang.Boolean oggetto che specifica se eseguire il controllo di revoca sul certificato del firmatario.
    • Un OCSPPreferences oggetto che memorizza le preferenze per il supporto del protocollo OCSP (Online Certificate Status Protocol). Se il controllo della revoca non viene eseguito, questo parametro non viene utilizzato e potete specificare null .
    • Un CRLPreferences oggetto che memorizza le preferenze dell'elenco di revoca dei certificati (CRL, Certificate Revocation List). Se il controllo della revoca non viene eseguito, questo parametro non viene utilizzato e potete specificare null .
    • Un TSPPreferences oggetto che memorizza le preferenze per il supporto del provider di marca temporale (TSP). Questo parametro è facoltativo e può essere null .
    Il sign metodo restituisce un com.adobe.idp.Document oggetto che rappresenta il documento PDF firmato.
  5. Salvare il documento PDF firmato
    • Create un java.io.File oggetto e accertatevi che l'estensione del nome file sia .pdf.
    • Richiamare il com.adobe.idp.Document metodo dell' copyToFile oggetto e passare java.io.File al file il contenuto dell' Document oggetto. Assicurarsi di utilizzare l' com.adobe.idp.Document oggetto restituito dal sign metodo.
Consulta anche

Firma digitale di un modulo interattivo tramite l'API del servizio Web

Firmare digitalmente un modulo interattivo utilizzando l'API Forms e Signature (servizio Web):
  1. Includi file di progetto
    Creare un progetto Microsoft .NET che utilizza MTOM. Poiché questa applicazione client richiama due servizi AEM Forms, create due riferimenti al servizio. Utilizzare la seguente definizione WSDL per il riferimento al servizio associato al servizio Signature: http://localhost:8080/soap/services/SignatureService?WSDL&lc_version=9.0.1 .
    Utilizzare la seguente definizione WSDL per il riferimento al servizio associato al servizio Forms: http://localhost:8080/soap/services/FormsService?WSDL&lc_version=9.0.1 .
    Poiché il tipo di BLOB dati è comune a entrambi i riferimenti di servizio, è necessario qualificare completamente il tipo di BLOB dati quando viene utilizzato. Nella procedura di avvio rapido del servizio Web corrispondente, tutte BLOB le istanze sono completamente qualificate.
    Sostituire localhost con l'indirizzo IP del server in cui è installato AEM Forms.
  2. Creare un client Forms e Signatures
    • Creare un SignatureServiceClient oggetto utilizzando il relativo costruttore predefinito.
    • Creare un SignatureServiceClient.Endpoint.Address oggetto utilizzando il System.ServiceModel.EndpointAddress costruttore. Passa un valore di stringa che specifica il WSDL al servizio AEM Forms (ad esempio, http://localhost:8080/soap/services/SignatureService?WSDL ). Non è necessario utilizzare l' lc_version attributo. Questo attributo viene utilizzato quando create un riferimento a un servizio.
    • Creare un System.ServiceModel.BasicHttpBinding oggetto ottenendo il valore del SignatureServiceClient.Endpoint.Binding campo. Inserite il valore restituito in BasicHttpBinding .
    • Impostare il campo System.ServiceModel.BasicHttpBinding dell' MessageEncoding oggetto su WSMessageEncoding.Mtom . Questo valore assicura che venga utilizzato MTOM.
    • Abilitate l'autenticazione HTTP di base eseguendo le seguenti operazioni:
      • Assegnare il nome utente dei moduli AEM al campo SignatureServiceClient.ClientCredentials.UserName.UserName .
      • Assegnare il valore della password corrispondente al campo SignatureServiceClient.ClientCredentials.UserName.Password .
      • Assegnare il valore costante HttpClientCredentialType.Basic al campo BasicHttpBindingSecurity.Transport.ClientCredentialType .
    • Assegnare il valore costante BasicHttpSecurityMode.TransportCredentialOnly al campo BasicHttpBindingSecurity.Security.Mode .
    Ripetere la procedura per il client del servizio Forms.
  3. Ottenere il modulo interattivo utilizzando il servizio Forms
    • Creare un BLOB oggetto utilizzando il relativo costruttore. L' BLOB oggetto viene utilizzato per memorizzare un documento PDF firmato.
    • Creare un System.IO.FileStream oggetto richiamando il relativo costruttore e passando un valore di stringa che rappresenta la posizione del file del documento PDF da firmare e la modalità di apertura del file.
    • Creare un array di byte che memorizza il contenuto dell' System.IO.FileStream oggetto. È possibile determinare la dimensione dell'array di byte ottenendo la proprietà dell' System.IO.FileStream oggetto Length .
    • Compilare l'array di byte con i dati del flusso richiamando il System.IO.FileStream Read metodo dell'oggetto e passando l'array di byte, la posizione iniziale e la lunghezza del flusso da leggere.
    • Compilare l' BLOB oggetto assegnando alla MTOM proprietà il contenuto dell'array di byte.
    • Creare un BLOB oggetto utilizzando il relativo costruttore. L' BLOB oggetto viene utilizzato per memorizzare i dati del modulo.
    • Creare un System.IO.FileStream oggetto richiamando il relativo costruttore e passando un valore di stringa che rappresenta la posizione del file XML contenente i dati del modulo e la modalità di apertura del file.
    • Creare un array di byte che memorizza il contenuto dell' System.IO.FileStream oggetto. È possibile determinare la dimensione dell'array di byte ottenendo la proprietà dell' System.IO.FileStream oggetto Length .
    • Compilare l'array di byte con i dati del flusso richiamando il System.IO.FileStream Read metodo dell'oggetto e passando l'array di byte, la posizione iniziale e la lunghezza del flusso da leggere.
    • Compilare l' BLOB oggetto assegnando alla MTOM proprietà il contenuto dell'array di byte.
    • Creare un oggetto PDFFormRenderSpec utilizzato per impostare le opzioni di esecuzione. Assegnare il valore true al campo dell' PDFFormRenderSpec oggetto generateServerAppearance .
    • Richiama il metodo dell’ FormsServiceClient oggetto renderPDFForm2 e passa i seguenti valori:
      • Un BLOB oggetto che contiene il modulo PDF di cui eseguire il rendering.
      • Un BLOB oggetto che contiene i dati da unire al modulo.
      • Un PDFFormRenderSpec oggetto che memorizza le opzioni di esecuzione.
      • Un URLSpec oggetto che contiene valori URI richiesti dal servizio Forms. Potete specificare null il valore di questo parametro.
      • Un java.util.HashMap oggetto che memorizza gli allegati. Si tratta di un parametro facoltativo e potete specificare null se non desiderate allegare file al modulo.
      • Un parametro di output lungo utilizzato per memorizzare il numero di pagine nel modulo.
      • Un parametro di output della stringa utilizzato per il valore delle impostazioni internazionali.
      • Un FormResult valore che è un parametro di output utilizzato per memorizzare il modulo interattivo.
    • Mantenere il modulo PDF richiamando il campo FormsResult dell' outputContent oggetto. Questo campo memorizza un BLOB oggetto che rappresenta il modulo interattivo.
  4. Firmare il modulo interattivo
    Firmare il documento PDF richiamando il metodo dell' SignatureServiceClient oggetto sign e passando i seguenti valori:
    • Un BLOB oggetto che rappresenta il documento PDF da firmare. Utilizzare l' BLOB istanza restituita dal servizio Forms.
    • Una stringa che rappresenta il nome del campo firma firmato.
    • Un Credential oggetto che rappresenta la credenziale utilizzata per firmare digitalmente il documento PDF. Creare un Credential oggetto utilizzando il relativo costruttore e specificare l'alias assegnando un valore alla Credential proprietà dell' alias oggetto.
    • Un HashAlgorithm oggetto che specifica un membro di dati statici che rappresenta l'algoritmo hash da utilizzare per rigenerare il documento PDF. Ad esempio, potete specificare HashAlgorithm.SHA1 l'utilizzo dell'algoritmo SHA1.
    • Un valore booleano che specifica se utilizzare l'algoritmo hash.
    • Valore stringa che rappresenta il motivo per cui il documento PDF è stato firmato digitalmente.
    • Un valore di stringa che rappresenta la posizione del firmatario.
    • Una stringa che rappresenta le informazioni di contatto del firmatario.
    • Un PDFSignatureAppearanceOptions oggetto che controlla l'aspetto della firma digitale. Ad esempio, è possibile utilizzare questo oggetto per aggiungere un logo personalizzato a una firma digitale.
    • Un System.Boolean oggetto che specifica se eseguire il controllo di revoca sul certificato del firmatario. Se il controllo di revoca viene eseguito, viene incorporato nella firma. Il valore predefinito è false .
    • Un OCSPPreferences oggetto che memorizza le preferenze per il supporto del protocollo OCSP (Online Certificate Status Protocol). Se il controllo della revoca non viene eseguito, questo parametro non viene utilizzato e potete specificare null . Per informazioni su questo oggetto, consultate Guida di riferimento delle API per AEM Forms.
    • Un CRLPreferences oggetto che memorizza le preferenze dell'elenco di revoca dei certificati (CRL, Certificate Revocation List). Se il controllo della revoca non viene eseguito, questo parametro non viene utilizzato e potete specificare null .
    • Un TSPPreferences oggetto che memorizza le preferenze per il supporto del provider di marca temporale (TSP). Questo parametro è facoltativo e può essere null .
    Il sign metodo restituisce un BLOB oggetto che rappresenta il documento PDF firmato.
  5. Salvare il documento PDF firmato
    • Creare un System.IO.FileStream oggetto richiamandone il costruttore. Passa un valore di stringa che rappresenta la posizione del file del documento PDF firmato e la modalità di apertura del file.
    • Creare un array di byte che memorizza il contenuto dell' BLOB oggetto restituito dal sign metodo. Compilare l'array di byte ottenendo il valore del membro BLOB dati dell' MTOM oggetto.
    • Creare un System.IO.BinaryWriter oggetto richiamando il relativo costruttore e passando l' System.IO.FileStream oggetto.
    • Scrivere il contenuto dell'array di byte in un file PDF richiamando il metodo dell' System.IO.BinaryWriter oggetto Write e passando l'array di byte.
Consulta anche

Certificazione di documenti PDF

È possibile proteggere un documento PDF certificandolo con un particolare tipo di firma denominato firma certificata. Una firma certificata si distingue da una firma digitale nei seguenti modi:
  • Deve essere la prima firma applicata al documento PDF; ovvero, al momento dell'applicazione della firma certificata, tutti gli altri campi firma nel documento devono essere defirmati. In un documento PDF è consentita una sola firma certificata. Se si desidera firmare e certificare un documento PDF, è necessario certificarlo prima di firmarlo. Dopo aver certificato un documento PDF, è possibile apporre una firma digitale ad altri campi firma.
  • L'autore o l'autore del documento può specificare che il documento può essere modificato in alcuni modi senza invalidare la firma certificata. Ad esempio, il documento può consentire la compilazione di moduli o commenti. Se l'autore specifica che non è consentita una determinata modifica, Acrobat impedisce agli utenti di modificare il documento in questo modo. Se tali modifiche vengono apportate, ad esempio utilizzando un'altra applicazione, la firma certificata non è valida e Acrobat visualizza un avviso all'apertura del documento da parte dell'utente. Se le firme non certificate, le modifiche non vengono impedite e le normali operazioni di modifica non invalidano la firma originale.
  • Al momento della firma, il documento viene analizzato per individuare specifici tipi di contenuto che potrebbero rendere il contenuto di un documento ambiguo o fuorviante. Ad esempio, un’annotazione potrebbe oscurare del testo in una pagina importante per comprendere cosa viene certificato. Una spiegazione (attestato legale) può essere fornita su tale contenuto.
È possibile certificare i documenti PDF a livello di programmazione utilizzando l'API Java del servizio di firma o l'API del servizio Web per la firma. Durante la certificazione di un documento PDF, è necessario fare riferimento a una credenziale di protezione esistente nel servizio Credenziali. Per informazioni sulle credenziali di protezione, consultate la guida Installazione e distribuzione di AEM Forms per il server delle applicazioni.
Durante la certificazione e la firma dello stesso documento PDF, se la firma certificata non è affidabile, all'apertura del documento PDF in Acrobat o Adobe Reader viene visualizzato un triangolo giallo accanto alla prima firma. La firma di certificazione deve essere ritenuta affidabile per evitare tale situazione.
Quando si utilizza una credenziale HSM di CipherShield per firmare o certificare un documento PDF, non è possibile utilizzare la nuova credenziale fino al riavvio del server applicazione J2EE su cui è distribuito AEM Forms. Tuttavia, è possibile impostare un valore di configurazione, in modo che l'operazione di firma o certificazione funzioni senza riavviare il server applicazione J2EE.
Potete aggiungere il seguente valore di configurazione nel file cknfastrc, che si trova in /opt/nfast/cknfastrc (o c:\nfast\cknfastrc):
             CKNFAST_ASSUME_SINGLE_PROCESS=0

Dopo aver aggiunto questo valore di configurazione al file cknfastrc, è possibile utilizzare la nuova credenziale senza riavviare il server applicazione J2EE.
Per ulteriori informazioni sul servizio Firma e sulla certificazione di un documento, consultate Guida di riferimento ai servizi per i moduli AEM.

Riepilogo dei passaggi

Per certificare un documento PDF, effettuare le seguenti operazioni:
  1. Includere i file di progetto.
  2. Creare un client per le firme.
  3. Ottenere il documento PDF da certificare.
  4. Certificare il documento PDF.
  5. Salvare il documento PDF certificato come file PDF.
Includi file di progetto
Includete i file necessari nel progetto di sviluppo. Se create un'applicazione client utilizzando Java, includete i file JAR necessari. Se utilizzate i servizi Web, accertatevi di includere i file proxy.
I seguenti file JAR devono essere aggiunti al percorso di classe del progetto:
  • adobe-livecycle-client.jar
  • adobe-usermanager-client.jar
  • adobe-signatures-client.jar
  • adobe-utilities.jar (richiesto se AEM Forms è distribuito su JBoss)
  • jbossall-client.jar (richiesto se AEM Forms è distribuito su JBoss)
Per informazioni sulla posizione di questi file JAR, consultate Inclusione di file libreria Java AEM Forms.
Creare un client per le firme
Prima di poter eseguire un'operazione Firma a livello di programmazione, è necessario creare un client per le firme.
Ottenere il documento PDF da certificare
Per certificare un documento PDF, è necessario ottenere un documento PDF contenente un campo firma. Se un documento PDF non contiene un campo firma, non può essere certificato. È possibile aggiungere un campo firma utilizzando Designer o a livello di programmazione. Per informazioni sull'aggiunta programmatica di un campo firma, vedere Aggiunta di campi firma.
Certificare il documento PDF
Per certificare correttamente un documento PDF, è necessario immettere i valori seguenti, utilizzati dal servizio Firma per certificare un documento PDF:
  • Documento PDF: Un documento PDF contenente un campo firma, ovvero un campo modulo contenente una rappresentazione grafica della firma certificata. Per poter essere certificato, un documento PDF deve contenere un campo firma. È possibile aggiungere un campo firma utilizzando Designer o a livello di programmazione. (Vedere Aggiunta di campi firma.)
  • Nome campo firma: Il nome completo del campo firma certificato. Il seguente valore è un esempio: form1[0].#subform[1].SignatureField3[3] . Quando si utilizza un campo modulo XFA, è possibile utilizzare anche il nome parziale del campo firma: SignatureField3[3] . Se per il nome del campo viene passato un valore null, viene creato e certificato in modo dinamico un campo firma invisibile.
  • Credenziali di protezione: Credenziale utilizzata per certificare il documento PDF. Questa credenziale di sicurezza contiene una password e un alias, che devono corrispondere a un alias visualizzato nella credenziale che si trova all'interno del servizio Credenziali. L’alias è un riferimento a una credenziale effettiva che potrebbe trovarsi in un file PKCS#12 (con estensione .pfx) o in un modulo di protezione hardware (HSM).
  • Algoritmo hash: Algoritmo hash da utilizzare per rigenerare il documento PDF.
  • Motivo della firma : Un valore visualizzato in Acrobat o Adobe Reader in modo che gli altri utenti siano a conoscenza del motivo della certificazione del documento PDF.
  • Posizione del firmatario : Posizione del firmatario specificata dalla credenziale.
  • Informazioni di contatto: Informazioni di contatto del firmatario, ad esempio indirizzo e numero di telefono.
  • Informazioni sulle autorizzazioni: Autorizzazioni che controllano le azioni che un utente finale può eseguire su un documento senza che la firma certificata risulti non valida. Ad esempio, è possibile impostare l'autorizzazione in modo che qualsiasi modifica al documento PDF induca la firma certificata a non essere valida.
  • Spiegazione giuridica: Quando un documento è certificato, viene automaticamente analizzato per specifici tipi di contenuto che potrebbero rendere il contenuto di un documento ambiguo o fuorviante. Ad esempio, un’annotazione potrebbe oscurare del testo in una pagina importante per comprendere cosa viene certificato. Il processo di scansione genera avvisi su questi tipi di contenuto. Questo valore fornisce un'ulteriore spiegazione del contenuto che potrebbe aver generato avvisi.
  • Opzioni di aspetto: Opzioni che controllano l'aspetto della firma certificata. Ad esempio, la firma certificata può visualizzare le informazioni sulla data.
  • Controllo revoca: Questo valore specifica se il controllo di revoca viene eseguito per il certificato del firmatario. L'impostazione predefinita di false indica che il controllo della revoca non viene eseguito.
  • Impostazioni OCSP: Impostazioni per il supporto del protocollo OCSP (Online Certificate Status Protocol), che fornisce informazioni sullo stato delle credenziali utilizzate per certificare il documento PDF. Ad esempio, è possibile specificare l'URL del server che fornisce informazioni sulle credenziali che si sta utilizzando per accedere al documento PDF.
  • Impostazioni CRL: Impostazioni per le preferenze dell'elenco di revoche di certificati (CRL, Certificate Revocation List) se il controllo di revoca viene eseguito. Ad esempio, è possibile specificare di verificare sempre se una credenziale è stata revocata.
  • Timestamp : Impostazioni che definiscono le informazioni di marca temporale applicate alla firma certificata. Una marca temporale indica che dati specifici sono stati stabiliti prima di una determinata ora. Questa conoscenza consente di creare una relazione affidabile tra il firmatario e il verificatore.
Salvare il documento PDF certificato come file PDF
Dopo che il servizio Firma ha certificato il documento PDF, è possibile salvarlo come file PDF per consentire agli utenti di aprirlo in Acrobat o Adobe Reader.
Consulta anche

Certificare i documenti PDF tramite l'API Java

Certificare un documento PDF utilizzando l'API Signature (Java):
  1. Includi file di progetto
    Includete file JAR client, ad esempio adobe-signatures-client.jar, nel percorso di classe del progetto Java.
  2. Creare un client per le firme
    • Creare un ServiceClientFactory oggetto che contenga proprietà di connessione.
    • Creare un SignatureServiceClient oggetto utilizzando il relativo costruttore e passando l' ServiceClientFactory oggetto.
  3. Ottenere il documento PDF da certificare
    • Creare un java.io.FileInputStream oggetto che rappresenta il documento PDF da certificare utilizzando il relativo costruttore e passando un valore di stringa che specifica la posizione del documento PDF.
    • Creare un com.adobe.idp.Document oggetto utilizzando il relativo costruttore e passando l' java.io.FileInputStream oggetto.
  4. Certificare il documento PDF
    Certificare il documento PDF richiamando il metodo dell' SignatureServiceClient oggetto certify e passando i seguenti valori:
    • L' com.adobe.idp.Document oggetto che rappresenta il documento PDF da certificare.
    • Una stringa che rappresenta il nome del campo firma che conterrà la firma.
    • Un Credential oggetto che rappresenta la credenziale utilizzata per certificare il documento PDF. Creare un Credential oggetto richiamando il Credential metodo statico dell' getInstance oggetto e passando un valore di stringa che specifica il valore alias corrispondente alla credenziale di sicurezza.
    • Un HashAlgorithm oggetto che specifica un membro di dati statici che rappresenta l'algoritmo hash utilizzato per digest del documento PDF. Ad esempio, potete specificare HashAlgorithm.SHA1 l'utilizzo dell'algoritmo SHA1.
    • Valore stringa che rappresenta il motivo per cui il documento PDF è stato certificato.
    • Una stringa che rappresenta le informazioni di contatto del firmatario.
    • Un MDPPermissions oggetto che specifica le azioni che è possibile eseguire sul documento PDF e che invalida la firma.
    • Un PDFSignatureAppearanceOptions oggetto che controlla l'aspetto della firma certificata. Se necessario, modificare l'aspetto della firma richiamando un metodo, ad esempio setShowDate .
    • Valore stringa che fornisce una spiegazione delle azioni che invalidano la firma.
    • Un java.lang.Boolean oggetto che specifica se eseguire il controllo di revoca sul certificato del firmatario. Se il controllo di revoca viene eseguito, viene incorporato nella firma. Il valore predefinito è false .
    • Un java.lang.Boolean oggetto che specifica se il campo firma certificato è bloccato. Se il campo è bloccato, il campo firma è contrassegnato come di sola lettura, le relative proprietà non possono essere modificate e non può essere cancellato da chiunque non disponga delle autorizzazioni necessarie. Il valore predefinito è false .
    • Un OCSPPreferences oggetto che memorizza le preferenze per il supporto del protocollo OCSP (Online Certificate Status Protocol). Se il controllo della revoca non viene eseguito, questo parametro non viene utilizzato e potete specificare null . Per informazioni su questo oggetto, consultate Guida di riferimento alle API di AEM Forms.
    • Un CRLPreferences oggetto che memorizza le preferenze dell'elenco di revoca dei certificati (CRL, Certificate Revocation List). Se il controllo della revoca non viene eseguito, questo parametro non viene utilizzato e potete specificare null .
    • Un TSPPreferences oggetto che memorizza le preferenze per il supporto del provider di marca temporale (TSP). Ad esempio, dopo aver creato un TSPPreferences oggetto, è possibile impostare l'URL del server TSP richiamando il TSPPreferences metodo dell'oggetto setTspServerURL . Questo parametro è facoltativo e può essere null . Per ulteriori informazioni, consultate Riferimento servizi per AEM Forms .
    Il certify metodo restituisce un com.adobe.idp.Document oggetto che rappresenta il documento PDF certificato.
  5. Salvare il documento PDF certificato come file PDF
    • Create un java.io.File oggetto e accertatevi che l'estensione del file sia .pdf.
    • Richiamare il metodo dell' com.adobe.idp.Document oggetto copyToFile per copiare il contenuto dell' com.adobe.idp.Document oggetto nel file.
Consulta anche

Certificare i documenti PDF mediante l'API del servizio Web

Certificare un documento PDF utilizzando l'API Signature (servizio Web):
  1. Includi file di progetto
    Creare un progetto Microsoft .NET che utilizza MTOM. Assicurarsi di utilizzare la seguente definizione WSDL: http://localhost:8080/soap/services/SignatureService?WSDL&lc_version=9.0.1 .
    Sostituire localhost con l'indirizzo IP del server in cui è installato AEM Forms.
  2. Creare un client per le firme
    • Creare un SignatureServiceClient oggetto utilizzando il relativo costruttore predefinito.
    • Creare un SignatureServiceClient.Endpoint.Address oggetto utilizzando il System.ServiceModel.EndpointAddress costruttore. Passa un valore di stringa che specifica il WSDL al servizio AEM Forms (ad esempio, http://localhost:8080/soap/services/SignatureService?WSDL ). Non è necessario utilizzare l' lc_version attributo. Questo attributo viene utilizzato quando create un riferimento a un servizio.
    • Creare un System.ServiceModel.BasicHttpBinding oggetto ottenendo il valore del SignatureServiceClient.Endpoint.Binding campo. Inserite il valore restituito in BasicHttpBinding .
    • Impostare il campo System.ServiceModel.BasicHttpBinding dell' MessageEncoding oggetto su WSMessageEncoding.Mtom . Questo valore assicura che venga utilizzato MTOM.
    • Abilitate l'autenticazione HTTP di base eseguendo le seguenti operazioni:
      • Assegnare il nome utente dei moduli AEM al campo SignatureServiceClient.ClientCredentials.UserName.UserName .
      • Assegnare il valore della password corrispondente al campo SignatureServiceClient.ClientCredentials.UserName.Password .
      • Assegnare il valore costante HttpClientCredentialType.Basic al campo BasicHttpBindingSecurity.Transport.ClientCredentialType .
      • Assegnare il valore costante BasicHttpSecurityMode.TransportCredentialOnly al campo BasicHttpBindingSecurity.Security.Mode .
  3. Ottenere il documento PDF da certificare
    • Creare un BLOB oggetto utilizzando il relativo costruttore. L' BLOB oggetto viene utilizzato per memorizzare un documento PDF certificato.
    • Creare un System.IO.FileStream oggetto richiamando il relativo costruttore e passando un valore di stringa che rappresenta la posizione del file del documento PDF da certificare e la modalità di apertura del file.
    • Creare un array di byte che memorizza il contenuto dell' System.IO.FileStream oggetto. È possibile determinare la dimensione dell'array di byte ottenendo la proprietà dell' System.IO.FileStream oggetto Length .
    • Compilare l'array di byte con i dati del flusso richiamando il System.IO.FileStream Read metodo dell'oggetto e passando l'array di byte, la posizione iniziale e la lunghezza del flusso da leggere.
    • Compilare l' BLOB oggetto assegnando al membro MTOM dati il contenuto dell'array di byte.
  4. Certificare il documento PDF
    Certificare il documento PDF richiamando il metodo dell' SignatureServiceClient oggetto certify e passando i seguenti valori:
    • L' BLOB oggetto che rappresenta il documento PDF da certificare.
    • Una stringa che rappresenta il nome del campo firma che conterrà la firma.
    • Un Credential oggetto che rappresenta la credenziale utilizzata per certificare il documento PDF. Creare un Credential oggetto utilizzando il relativo costruttore e specificare l'alias assegnando un valore alla Credential proprietà dell' alias oggetto.
    • Un HashAlgorithm oggetto che specifica un membro di dati statici che rappresenta l'algoritmo hash utilizzato per digest del documento PDF. Ad esempio, potete specificare HashAlgorithm.SHA1 l'utilizzo dell'algoritmo SHA1.
    • Un valore booleano che specifica se utilizzare l'algoritmo hash.
    • Valore stringa che rappresenta il motivo per cui il documento PDF è stato certificato.
    • Un valore di stringa che rappresenta la posizione del firmatario.
    • Una stringa che rappresenta le informazioni di contatto del firmatario.
    • Membro di dati statici di un MDPPermissions oggetto che specifica le azioni che è possibile eseguire sul documento PDF per annullare la validità della firma.
    • Un valore booleano che specifica se utilizzare l' MDPPermissions oggetto passato come valore del parametro precedente.
    • Valore stringa che spiega le azioni che invalidano la firma.
    • Un PDFSignatureAppearanceOptions oggetto che controlla l'aspetto della firma certificata. Creare un PDFSignatureAppearanceOptions oggetto utilizzando il relativo costruttore. È possibile modificare l'aspetto della firma impostando uno dei relativi membri dati.
    • Un System.Boolean oggetto che specifica se eseguire il controllo di revoca sul certificato del firmatario. Se il controllo di revoca viene eseguito, viene incorporato nella firma. Il valore predefinito è false .
    • Un System.Boolean oggetto che specifica se il campo firma certificato è bloccato. Se il campo è bloccato, il campo firma è contrassegnato come di sola lettura, le relative proprietà non possono essere modificate e non può essere cancellato da chiunque non disponga delle autorizzazioni necessarie. Il valore predefinito è false .
    • Un System.Boolean oggetto che specifica se il campo firma è bloccato. Ovvero, se passate true al parametro precedente, passate true a questo parametro.
    • Un OCSPPreferences oggetto che memorizza le preferenze per il supporto del protocollo OCSP (Online Certificate Status Protocol), che fornisce informazioni sullo stato delle credenziali utilizzate per certificare il documento PDF. Se il controllo della revoca non viene eseguito, questo parametro non viene utilizzato e potete specificare null .
    • Un CRLPreferences oggetto che memorizza le preferenze dell'elenco di revoca dei certificati (CRL, Certificate Revocation List). Se il controllo della revoca non viene eseguito, questo parametro non viene utilizzato e potete specificare null .
    • Un TSPPreferences oggetto che memorizza le preferenze per il supporto del provider di marca temporale (TSP). Ad esempio, dopo aver creato un TSPPreferences oggetto, è possibile impostare l'URL del TSP impostando il membro TSPPreferences dati dell' tspServerURL oggetto. Questo parametro è facoltativo e può essere null .
    Il certify metodo restituisce un BLOB oggetto che rappresenta il documento PDF certificato.
  5. Salvare il documento PDF certificato come file PDF
    • Creare un System.IO.FileStream oggetto richiamando il relativo costruttore e passando un valore di stringa che rappresenta la posizione del file del documento PDF che conterrà il documento PDF certificato e la modalità di apertura del file.
    • Creare un array di byte che memorizza il contenuto dell' BLOB oggetto restituito dal certify metodo. Compilare l'array di byte ottenendo il valore del membro BLOB dati dell' binaryData oggetto.
    • Creare un System.IO.BinaryWriter oggetto richiamando il relativo costruttore e passando l' System.IO.FileStream oggetto.
    • Scrivere il contenuto dell'array di byte in un file PDF richiamando il metodo dell' System.IO.BinaryWriter oggetto Write e passando l'array di byte.
Consulta anche

Verifica delle firme digitali

È possibile verificare che il documento PDF firmato non sia stato modificato e che la firma digitale sia valida. Durante la verifica di una firma digitale, è possibile verificare lo stato della firma e le proprietà della firma, ad esempio l'identità del firmatario. Prima di considerare affidabile una firma digitale, è consigliabile verificarla. Quando si verifica una firma digitale, fare riferimento a un documento PDF contenente una firma digitale.
Si supponga che l'identità del firmatario sia sconosciuta. Quando si apre il documento PDF in Acrobat, viene visualizzato un messaggio di avviso che informa che l'identità del firmatario è sconosciuta, come illustrato nell'illustrazione seguente.
Analogamente, se si verifica a livello di programmazione una firma digitale, è possibile determinare lo stato dell'identità del firmatario. Ad esempio, se si verifica la firma digitale nel documento mostrato nell'illustrazione precedente, si verifica che l'identità del firmatario sia sconosciuta.
Per ulteriori informazioni sul servizio Signature e sulla verifica delle firme digitali, consultate Guida di riferimento ai servizi per AEM Forms .

Riepilogo dei passaggi

Per verificare una firma digitale, effettuare le seguenti operazioni:
  1. Includere i file di progetto.
  2. Creare un client per le firme.
  3. Ottenere il documento PDF contenente la firma da verificare.
  4. Impostare le opzioni di esecuzione PKI.
  5. Verificare la firma digitale.
  6. Determinare lo stato della firma.
  7. Determinare l'identità del firmatario.
Includi file di progetto
Includete i file necessari nel progetto di sviluppo. Se create un'applicazione client utilizzando Java, includete i file JAR necessari. Se utilizzate i servizi Web, includete i file proxy.
I seguenti file JAR devono essere aggiunti al percorso di classe del progetto:
  • adobe-livecycle-client.jar
  • adobe-usermanager-client.jar
  • adobe-signatures-client.jar
  • adobe-utilities.jar (richiesto se AEM Forms è distribuito su JBoss)
  • jbossall-client.jar (richiesto se AEM Forms è distribuito su JBoss)
Per informazioni sulla posizione di questi file JAR, consultate Inclusione di file libreria Java AEM Forms.
Creare un client per le firme
Prima di eseguire un'operazione del servizio Signature a livello di programmazione, creare un client del servizio Signature.
Ottenere il documento PDF contenente la firma da verificare
Per verificare una firma utilizzata per firmare o certificare digitalmente un documento PDF, è necessario ottenere un documento PDF contenente una firma.
Impostazione delle opzioni di esecuzione PKI
Impostare le seguenti opzioni di esecuzione PKI che il servizio Firma utilizza per la verifica delle firme in un documento PDF:
  • Tempo di verifica
  • Controllo revoca
  • Valori di marca temporale
Come parte dell'impostazione di queste opzioni, potete specificare il tempo di verifica. Ad esempio, è possibile selezionare l'ora corrente (l'ora nel computer del validatore), che indica l'utilizzo dell'ora corrente. Per informazioni sui diversi valori temporali, consultate il valore di VerificationTime enumerazione nella Guida di riferimento alle API di AEM Forms.
È inoltre possibile specificare se eseguire il controllo delle revoche nell'ambito del processo di verifica. Ad esempio, è possibile eseguire un controllo di revoca per determinare se il certificato è revocato. Per informazioni sulle opzioni di controllo della revoca, consultate il valore di RevocationCheckStyle enumerazione nella Guida di riferimento delle API di AEM Forms.
Per eseguire il controllo di revoca su un certificato, specificare un URL di un server dell'elenco di revoche di certificati (CRL) utilizzando un CRLOptionSpec oggetto. Tuttavia, se non si specifica un URL per il server CRL, il servizio Signature ottiene l'URL dal certificato.
Invece di utilizzare un server CRL, è possibile utilizzare un server OCSP (Certificate Status Protocol) online durante il controllo delle revoche. In genere, quando si utilizza un server OCSP anziché un server CRL, il controllo di revoca viene eseguito più rapidamente. (Vedere Protocollo di stato del certificato online.)
È possibile impostare l'ordine del server CRL e OCSP utilizzato dal servizio Signature utilizzando Adobe Applications and Services. Ad esempio, se il server OCSP è impostato per primo in Adobe Applications and Services, il server OCSP è selezionato, seguito dal server CRL.
Se non si esegue il controllo di revoca, il servizio Firma non verifica la revoca del certificato. In altre parole, le informazioni relative al server CRL e OCSP vengono ignorate.
Potete ignorare l'URL specificato nel certificato utilizzando un CRLOptionSpec oggetto e un OCSPOptionSpec oggetto. Ad esempio, per ignorare il server CRL, è possibile richiamare il metodo dell' CRLOptionSpec oggetto setLocalURI .
La marca temporale è il processo di tracciamento dell'ora in cui un documento firmato o certificato è stato modificato. Dopo la firma di un documento, nessuno può modificarlo. La marca temporale consente di applicare la validità di un documento firmato o certificato. È possibile impostare le opzioni di marca temporale utilizzando un TSPOptionSpec oggetto. Ad esempio, potete specificare l'URL di un server provider di marca temporale (TSP).
All'avvio rapido di Java e servizi Web, l'ora di verifica è impostata su VerificationTime.CURRENT_TIME e il controllo della revoca è impostato su RevocationCheckStyle.BestEffort . Poiché non sono specificate informazioni sul server CRL o OCSP, le informazioni sul server vengono ottenute dal certificato.
Verificare la firma digitale
Per verificare correttamente una firma, specificare il nome completo del campo firma che contiene la firma, ad esempio form1[0].#subform[1].SignatureField3[3] . Quando si utilizza un campo modulo XFA, è anche possibile utilizzare il nome parziale del campo firma: SignatureField3 .
Per impostazione predefinita, il servizio Firma limita a 65 minuti il tempo di firma di un documento dopo il periodo di validità. Se un utente tenta di verificare una firma all'ora corrente e l'ora di firma è successiva all'ora corrente ed è compresa entro 65 minuti, il servizio Firma non genera un errore di verifica.
Per altri valori richiesti per la verifica della firma, consultare il documento Riferimento API per AEM Forms.
Determinare lo stato della firma
Durante la verifica di una firma digitale, è possibile verificare lo stato della firma.
Identificazione del firmatario
Puoi determinare l'identità del firmatario, che può essere uno dei seguenti valori:
  • Sconosciuto : Il firmatario è sconosciuto perché non è possibile eseguire la verifica del firmatario.
  • Attendibile : Il firmatario è affidabile.
  • Non attendibile : Il firmatario non è attendibile.
Consulta anche

Verifica delle firme digitali tramite l'API Java

Verificare una firma digitale utilizzando l'API Signature Service (Java):
  1. Includi file di progetto
    Includete file JAR client, ad esempio adobe-signatures-client.jar, nel percorso di classe del progetto Java.
  2. Creare un client per le firme
    • Creare un ServiceClientFactory oggetto che contenga proprietà di connessione.
    • Creare un SignatureServiceClient oggetto utilizzando il relativo costruttore e passando l' ServiceClientFactory oggetto.
  3. Ottenere il documento PDF contenente la firma da verificare
    • Creare un java.io.FileInputStream oggetto che rappresenta il documento PDF contenente la firma da verificare utilizzando il relativo costruttore. Passa un valore di stringa che specifica la posizione del documento PDF.
    • Creare un com.adobe.idp.Document oggetto utilizzando il relativo costruttore e passando l' java.io.FileInputStream oggetto.
  4. Impostazione delle opzioni di esecuzione PKI
    • Creare un PKIOptions oggetto utilizzando il relativo costruttore.
    • Impostare il tempo di verifica richiamando il metodo dell' PKIOptions oggetto setVerificationTime e passando un valore di VerificationTime enumerazione che specifica il tempo di verifica.
    • Impostare l'opzione di controllo della revoca richiamando il metodo dell' PKIOptions oggetto setRevocationCheckStyle e passando un valore di RevocationCheckStyle enumerazione che specifica se eseguire il controllo della revoca.
  5. Verificare la firma digitale
    Verificare la firma richiamando il metodo dell' SignatureServiceClient oggetto verify2 e passando i seguenti valori:
    • Un com.adobe.idp.Document oggetto che contiene un documento PDF firmato o certificato digitalmente.
    • Valore stringa che rappresenta il nome del campo firma contenente la firma da verificare.
    • Un PKIOptions oggetto che contiene le opzioni di esecuzione PKI.
    • Un' VerifySPIOptions istanza che contiene informazioni SPI. Potete specificare null questo parametro.
    Il verify2 metodo restituisce un PDFSignatureVerificationInfo oggetto contenente informazioni che è possibile utilizzare per verificare la firma digitale.
  6. Determinare lo stato della firma
    • Determinare lo stato della firma richiamando il PDFSignatureVerificationInfo metodo getStatus dell'oggetto. Questo metodo restituisce un SignatureStatus oggetto che specifica lo stato della firma. Ad esempio, se un documento PDF firmato non viene modificato, questo metodo restituisce SignatureStatus.DocumentSigNoChanges .
  7. Identificazione del firmatario
    • Determinare l'identità del firmatario richiamando il PDFSignatureVerificationInfo metodo dell' getSigner oggetto. Questo metodo restituisce un IdentityInformation oggetto.
    • Richiama il metodo dell' IdentityInformation oggetto getStatus per determinare l'identità del firmatario. Questo metodo restituisce un valore di IdentityStatus enumerazione che specifica l'identità. Ad esempio, se il firmatario è affidabile, questo metodo restituisce IdentityStatus.TRUSTED .
Consulta anche

Verifica delle firme digitali tramite l'API del servizio Web

Verificare una firma digitale utilizzando l'API Signature Service (servizio Web):
  1. Includi file di progetto
    Creare un progetto Microsoft .NET che utilizza MTOM. Assicurarsi di utilizzare la seguente definizione WSDL: http://localhost:8080/soap/services/SignatureService?WSDL&lc_version=9.0.1 .
    Sostituire localhost con l'indirizzo IP del server in cui è installato AEM Forms.
  2. Creare un client per le firme
    • Creare un SignatureServiceClient oggetto utilizzando il relativo costruttore predefinito.
    • Creare un SignatureServiceClient.Endpoint.Address oggetto utilizzando il System.ServiceModel.EndpointAddress costruttore. Passa un valore di stringa che specifica il WSDL al servizio AEM Forms (ad esempio, http://localhost:8080/soap/services/SignatureService?WSDL ). Non è necessario utilizzare l' lc_version attributo. Questo attributo viene utilizzato quando create un riferimento a un servizio.
    • Creare un System.ServiceModel.BasicHttpBinding oggetto ottenendo il valore del SignatureServiceClient.Endpoint.Binding campo. Inserite il valore restituito in BasicHttpBinding .
    • Impostare il campo System.ServiceModel.BasicHttpBinding dell' MessageEncoding oggetto su WSMessageEncoding.Mtom . Questo valore assicura che venga utilizzato MTOM.
    • Abilitate l'autenticazione HTTP di base eseguendo le seguenti operazioni:
      • Assegnare il nome utente dei moduli AEM al campo SignatureServiceClient.ClientCredentials.UserName.UserName .
      • Assegnare il valore della password corrispondente al campo SignatureServiceClient.ClientCredentials.UserName.Password .
      • Assegnare il valore costante HttpClientCredentialType.Basic al campo BasicHttpBindingSecurity.Transport.ClientCredentialType .
      • Assegnare il valore costante BasicHttpSecurityMode.TransportCredentialOnly al campo BasicHttpBindingSecurity.Security.Mode .
  3. Ottenere il documento PDF contenente la firma da verificare
    • Creare un BLOB oggetto utilizzando il relativo costruttore. L' BLOB oggetto viene utilizzato per memorizzare un documento PDF contenente una firma digitale o certificata da verificare.
    • Creare un System.IO.FileStream oggetto richiamandone il costruttore. Passa un valore di stringa che rappresenta la posizione del file del documento PDF firmato e la modalità di apertura del file.
    • Creare un array di byte che memorizza il contenuto dell' System.IO.FileStream oggetto. È possibile determinare la dimensione dell'array di byte ottenendo la proprietà dell' System.IO.FileStream oggetto Length .
    • Compilare l'array di byte con i dati del flusso richiamando il metodo dell' System.IO.FileStream oggetto Read . Passare l'array di byte, la posizione iniziale e la lunghezza del flusso da leggere.
    • Compilare l' BLOB oggetto assegnando alla MTOM proprietà il contenuto dell'array di byte.
  4. Impostazione delle opzioni di esecuzione PKI
    • Creare un PKIOptions oggetto utilizzando il relativo costruttore.
    • Impostare l'ora di verifica assegnando al membro dati dell' PKIOptions oggetto verificationTime un valore di VerificationTime enumerazione che specifica il tempo di verifica.
    • Impostare l'opzione di controllo della revoca assegnando al membro dei dati dell' PKIOptions oggetto revocationCheckStyle un valore di RevocationCheckStyle enumerazione che specifica se eseguire il controllo della revoca.
  5. Verificare la firma digitale
    Verificare la firma richiamando il metodo dell' SignatureServiceClient oggetto verify2 e passando i seguenti valori:
    • L' BLOB oggetto che contiene un documento PDF con firma digitale o certificato.
    • Valore stringa che rappresenta il nome del campo firma contenente la firma da verificare.
    • Un PKIOptions oggetto che contiene le opzioni di esecuzione PKI.
    • Un' VerifySPIOptions istanza che contiene informazioni SPI. Potete specificare null questo parametro.
    Il verify2 metodo restituisce un PDFSignatureVerificationInfo oggetto contenente informazioni che è possibile utilizzare per verificare la firma digitale.
  6. Determinare lo stato della firma
    Determinare lo stato della firma ottenendo il valore del membro PDFSignatureVerificationInfo dati dell' status oggetto. Questo membro di dati memorizza un oggetto che specifica lo stato della firma. SignatureStatus Ad esempio, se un documento PDF firmato viene modificato, il membro status dati memorizza il valore SignatureStatus.DocumentSigNoChanges .
  7. Identificazione del firmatario
    • Determinare l'identità del firmatario recuperando il valore del membro PDFSignatureVerificationInfo dati signer dell'oggetto. Questo membro restituisce un IdentityInformation oggetto.
    • Recuperare il membro dati dell' IdentityInformation oggetto per determinare l'identità del firmatario status . Questo membro dati restituisce un valore di IdentityStatus enumerazione che specifica l'identità. Ad esempio, se il firmatario è affidabile, il membro restituirà IdentityStatus.TRUSTED .
Consulta anche

Verifica di più firme digitali

AEM Forms consente di verificare tutte le firme digitali presenti in un documento PDF. Si supponga che un documento PDF contenga più firme digitali come risultato di un processo aziendale che richiede la firma di più firmatari. Ad esempio, considerare una transazione finanziaria che richiede sia la firma di un funzionario prestiti che quella di un manager. È possibile utilizzare l'API Java del servizio firma o l'API del servizio Web per verificare tutte le firme presenti nel documento PDF. Durante la verifica di più firme digitali, è possibile verificare lo stato e le proprietà di ciascuna firma. Prima di rendere affidabile una firma digitale, è consigliabile verificarla. Si consiglia di avere familiarità con la verifica di una firma digitale singola.
Per ulteriori informazioni sul servizio Signature e sulla verifica delle firme digitali, consultate Guida di riferimento ai servizi per AEM Forms .

Riepilogo dei passaggi

Per verificare più firme digitali, effettuare le seguenti operazioni:
  1. Includere i file di progetto.
  2. Creare un client per le firme.
  3. Ottenere il documento PDF contenente le firme da verificare.
  4. Impostare le opzioni di esecuzione PKI.
  5. Recupera tutte le firme digitali.
  6. Iterare tutte le firme.
Includi file di progetto
Includete i file necessari nel progetto di sviluppo. Se create un'applicazione client utilizzando Java, includete i file JAR necessari. Se utilizzate i servizi Web, includete i file proxy.
I seguenti file JAR devono essere aggiunti al percorso di classe del progetto:
  • adobe-livecycle-client.jar
  • adobe-usermanager-client.jar
  • adobe-signatures-client.jar
  • adobe-utilities.jar (richiesto se AEM Forms è distribuito su JBoss)
  • jbossall-client.jar (richiesto se AEM Forms è distribuito su JBoss)
Per informazioni sulla posizione di questi file JAR, consultate Inclusione di file libreria Java AEM Forms.
Creare un client per le firme
Prima di eseguire un'operazione del servizio Signature a livello di programmazione, creare un client del servizio Signature.
Ottenere il documento PDF contenente le firme per verificare
Per verificare una firma utilizzata per firmare o certificare digitalmente un documento PDF, è necessario ottenere un documento PDF contenente una firma.
Impostazione delle opzioni di runtime PKI
Impostare le seguenti opzioni di esecuzione PKI che il servizio Firma utilizza per verificare tutte le firme in un documento PDF:
  • Tempo di verifica
  • Controllo revoca
  • Valori di marca temporale
Come parte dell'impostazione di queste opzioni, potete specificare il tempo di verifica. Ad esempio, è possibile selezionare l'ora corrente (l'ora nel computer del validatore), che indica l'utilizzo dell'ora corrente. Per informazioni sui diversi valori temporali, consultate il valore di VerificationTime enumerazione nella Guida di riferimento alle API di AEM Forms.
È inoltre possibile specificare se eseguire il controllo delle revoche nell'ambito del processo di verifica. Ad esempio, è possibile eseguire un controllo di revoca per determinare se il certificato è revocato. Per informazioni sulle opzioni di controllo della revoca, consultate il valore di RevocationCheckStyle enumerazione nella Guida di riferimento delle API di AEM Forms.
Per eseguire il controllo di revoca su un certificato, specificare un URL di un server dell'elenco di revoche di certificati (CRL) utilizzando un CRLOptionSpec oggetto. Tuttavia, se non si specifica un URL per un server CRL, il servizio Signature ottiene l'URL dal certificato.
Invece di utilizzare un server CRL, è possibile utilizzare un server OCSP (Certificate Status Protocol) online durante il controllo delle revoche. In genere, quando si utilizza un server OCSP invece di un server CRL, il controllo di revoca viene eseguito più rapidamente. (Vedere Protocollo di stato del certificato online.)
È possibile impostare l'ordine del server CRL e OCSP utilizzato dal servizio Signature utilizzando Adobe Applications and Services. Ad esempio, se il server OCSP è impostato per primo in Adobe Applications and Services, il server OCSP è selezionato, seguito dal server CRL.
Se non si esegue il controllo di revoca, il servizio Firma non verifica la revoca del certificato. In altre parole, le informazioni relative al server CRL e OCSP vengono ignorate.
Potete ignorare l'URL specificato nel certificato utilizzando un CRLOptionSpec oggetto e un OCSPOptionSpec oggetto. Ad esempio, per ignorare il server CRL, è possibile richiamare il metodo dell' CRLOptionSpec oggetto setLocalURI .
La marca temporale è il processo di tracciamento dell'ora in cui un documento firmato o certificato è stato modificato. Dopo la firma di un documento, nessuno può modificarlo. La marca temporale consente di applicare la validità di un documento firmato o certificato. È possibile impostare le opzioni di marca temporale utilizzando un TSPOptionSpec oggetto. Ad esempio, potete specificare l'URL di un server provider di marca temporale (TSP).
All'avvio rapido di Java e servizi Web, l'ora di verifica è impostata su VerificationTime.CURRENT_TIME e il controllo della revoca è impostato su RevocationCheckStyle.BestEffort . Poiché non sono specificate informazioni sul server CRL o OCSP, le informazioni sul server vengono ottenute dal certificato.
Recuperare tutte le firme digitali
Per verificare tutte le firme digitali presenti in un documento PDF, recuperare le firme digitali dal documento PDF. Tutte le firme vengono restituite in un elenco. Come parte della verifica di una firma digitale, verificare lo stato della firma.
A differenza di quanto avviene per la verifica di una singola firma digitale, quando si verificano più firme non è necessario specificare il nome del campo firma.
Itera attraverso tutte le firme
Iterare attraverso ciascuna firma. Ovvero, per ogni firma, verificare la firma digitale e verificare l'identità del firmatario e lo stato di ciascuna firma. (Vedere Verifica delle firme digitali.)
Se il requisito è l'intero documento, non è necessario eseguire l'iterazione su tutte le firme.
Consulta anche

Verifica di più firme digitali tramite l'API Java

Verificare più firme digitali utilizzando l'API Signature Service (Java):
  1. Includi file di progetto
    Includete file JAR client, ad esempio adobe-signatures-client.jar, nel percorso di classe del progetto Java.
  2. Creare un client per le firme
    • Creare un ServiceClientFactory oggetto che contenga proprietà di connessione.
    • Creare un SignatureServiceClient oggetto utilizzando il relativo costruttore e passando l' ServiceClientFactory oggetto.
  3. Ottenere il documento PDF contenente le firme per verificare
    • Creare un java.io.FileInputStream oggetto che rappresenta il documento PDF contenente più firme digitali da verificare utilizzando il relativo costruttore. Passa un valore di stringa che specifica la posizione del documento PDF.
    • Creare un com.adobe.idp.Document oggetto utilizzando il relativo costruttore e passando l' java.io.FileInputStream oggetto.
  4. Impostazione delle opzioni di runtime PKI
    • Creare un PKIOptions oggetto utilizzando il relativo costruttore.
    • Impostare il tempo di verifica richiamando il metodo dell' PKIOptions oggetto setVerificationTime e passando un valore di VerificationTime enumerazione che specifica il tempo di verifica.
    • Impostare l'opzione di controllo della revoca richiamando il metodo dell' PKIOptions oggetto setRevocationCheckStyle e passando un valore di RevocationCheckStyle enumerazione che specifica se eseguire il controllo della revoca.
  5. Recuperare tutte le firme digitali
    Richiama il metodo dell’ SignatureServiceClient oggetto verifyPDFDocument e passa i seguenti valori:
    • Un com.adobe.idp.Document oggetto che contiene un documento PDF contenente più firme digitali.
    • Un PKIOptions oggetto che contiene le opzioni di esecuzione PKI.
    • Un' VerifySPIOptions istanza che contiene informazioni SPI. Potete specificare null questo parametro.
    Il verifyPDFDocument metodo restituisce un PDFDocumentVerificationInfo oggetto che contiene informazioni su tutte le firme digitali presenti nel documento PDF.
  6. Itera attraverso tutte le firme
    • Eseguire un'iterazione attraverso tutte le firme richiamando il PDFDocumentVerificationInfo metodo dell' getVerificationInfos oggetto. Questo metodo restituisce un java.util.List oggetto in cui ogni elemento è un PDFSignatureVerificationInfo oggetto. Utilizzare un java.util.Iterator oggetto per eseguire un'iterazione nell'elenco di firme.
    • Utilizzando l' PDFSignatureVerificationInfo oggetto, è possibile eseguire attività quali determinare lo stato della firma richiamando il metodo dell' PDFSignatureVerificationInfo oggetto getStatus . Questo metodo restituisce un oggetto il cui membro dati statico SignatureStatus informa l'utente sullo stato della firma. Ad esempio, se la firma è sconosciuta, questo metodo restituisce SignatureStatus.DocumentSignatureUnknown .
Consulta anche

Verifica di più firme digitali tramite l'API del servizio Web

Verificare più firme digitali utilizzando l'API Signature Service (servizio Web):
  1. Includi file di progetto
    Creare un progetto Microsoft .NET che utilizza MTOM. Assicurarsi di utilizzare la seguente definizione WSDL: http://localhost:8080/soap/services/SignatureService?WSDL&lc_version=9.0.1 .
    Sostituire localhost con l'indirizzo IP del server in cui è installato AEM Forms.
  2. Creare un client per le firme
    • Creare un SignatureServiceClient oggetto utilizzando il relativo costruttore predefinito.
    • Creare un SignatureServiceClient.Endpoint.Address oggetto utilizzando il System.ServiceModel.EndpointAddress costruttore. Passa un valore di stringa che specifica il WSDL al servizio AEM Forms (ad esempio, http://localhost:8080/soap/services/SignatureService?WSDL ). Non è necessario utilizzare l' lc_version attributo. Questo attributo viene utilizzato quando create un riferimento a un servizio.
    • Creare un System.ServiceModel.BasicHttpBinding oggetto ottenendo il valore del SignatureServiceClient.Endpoint.Binding campo. Inserite il valore restituito in BasicHttpBinding .
    • Impostare il campo System.ServiceModel.BasicHttpBinding dell' MessageEncoding oggetto su WSMessageEncoding.Mtom . Questo valore assicura che venga utilizzato MTOM.
    • Abilitate l'autenticazione HTTP di base eseguendo le seguenti operazioni:
      • Assegnare il nome utente dei moduli AEM al campo SignatureServiceClient.ClientCredentials.UserName.UserName .
      • Assegnare il valore della password corrispondente al campo SignatureServiceClient.ClientCredentials.UserName.Password .
      • Assegnare il valore costante HttpClientCredentialType.Basic al campo BasicHttpBindingSecurity.Transport.ClientCredentialType .
      • Assegnare il valore costante BasicHttpSecurityMode.TransportCredentialOnly al campo BasicHttpBindingSecurity.Security.Mode .
  3. Ottenere il documento PDF contenente le firme per verificare
    • Creare un BLOB oggetto utilizzando il relativo costruttore. L' BLOB oggetto memorizza un documento PDF contenente più firme digitali da verificare.
    • Creare un System.IO.FileStream oggetto richiamandone il costruttore. Passare un valore di stringa che rappresenta la posizione del file del documento PDF e la modalità di apertura del file.
    • Creare un array di byte che memorizza il contenuto dell' System.IO.FileStream oggetto. È possibile determinare la dimensione dell'array di byte ottenendo la proprietà dell' System.IO.FileStream oggetto Length .
    • Compilare l'array di byte con i dati del flusso richiamando il metodo dell' System.IO.FileStream oggetto Read . Passare l'array di byte, la posizione iniziale e la lunghezza del flusso da leggere.
    • Compilare l' BLOB oggetto assegnando alla MTOM proprietà il contenuto dell'array di byte.
  4. Impostazione delle opzioni di runtime PKI
    • Creare un PKIOptions oggetto utilizzando il relativo costruttore.
    • Impostare l'ora di verifica assegnando al membro dati dell' PKIOptions oggetto verificationTime un valore di VerificationTime enumerazione che specifica il tempo di verifica.
    • Impostare l'opzione di controllo della revoca assegnando al membro dati dell' PKIOptions oggetto revocationCheckStyle un valore di RevocationCheckStyle enumerazione che specifica se eseguire il controllo della revoca.
  5. Recuperare tutte le firme digitali
    Richiama il metodo dell’ SignatureServiceClient oggetto verifyPDFDocument e passa i seguenti valori:
    • Un BLOB oggetto che contiene un documento PDF contenente più firme digitali.
    • Un PKIOptions oggetto che contiene le opzioni di esecuzione PKI.
    • Un' VerifySPIOptions istanza che contiene informazioni SPI. Potete specificare null per questo parametro.
    Il verifyPDFDocument metodo restituisce un PDFDocumentVerificationInfo oggetto che contiene informazioni su tutte le firme digitali presenti nel documento PDF.
  6. Itera attraverso tutte le firme
    • Consente di esaminare tutte le firme ottenendo il membro PDFDocumentVerificationInfo dati verificationInfos dell'oggetto. Questo membro dati restituisce un Object array in cui ogni elemento è un PDFSignatureVerificationInfo oggetto.
    • Utilizzando l' PDFSignatureVerificationInfo oggetto è possibile eseguire attività quali determinare lo stato della firma ottenendo il membro PDFSignatureVerificationInfo dati dell' status oggetto. Questo membro dati restituisce un SignatureStatus oggetto il cui membro dati statico ti informa sullo stato della firma. Ad esempio, se la firma è sconosciuta, questo metodo restituisce SignatureStatus.DocumentSignatureUnknown .
Consulta anche

Rimozione di firme digitali

Per poter applicare una firma digitale più recente, è necessario rimuovere le firme digitali da un campo firma. Non è possibile sovrascrivere una firma digitale. Se si tenta di applicare una firma digitale a un campo firma contenente una firma, si verifica un'eccezione.
Per ulteriori informazioni sul servizio Firma, consultate Riferimento servizi per AEM Forms .

Riepilogo dei passaggi

Per rimuovere una firma digitale da un campo firma, effettuare le seguenti operazioni:
  1. Includere i file di progetto.
  2. Creare un client per le firme.
  3. Ottenere il documento PDF contenente una firma da rimuovere.
  4. Rimuovere la firma digitale dal campo firma.
  5. Salvare il documento PDF come file PDF.
Includi file di progetto
Includete i file necessari nel progetto di sviluppo. Se state creando un'applicazione client utilizzando Java, includete i file JAR necessari. Se utilizzate servizi Web, accertatevi di includere i file proxy.
I seguenti file JAR devono essere aggiunti al percorso di classe del progetto:
  • adobe-livecycle-client.jar
  • adobe-usermanager-client.jar
  • adobe-signatures-client.jar
  • adobe-utilities.jar (richiesto se AEM Forms è distribuito su JBoss)
  • jbossall-client.jar (richiesto se AEM Forms è distribuito su JBoss)
Per informazioni sulla posizione di questi file JAR, consultate Inclusione di file libreria Java AEM Forms.
Creare un client per le firme
Prima di eseguire un'operazione del servizio Firma a livello di programmazione, è necessario creare un client del servizio Firma.
Ottenere il documento PDF contenente una firma da rimuovere
Per rimuovere una firma da un documento PDF, è necessario ottenere un documento PDF contenente una firma.
Rimozione della firma digitale dal campo firma
Per rimuovere correttamente una firma digitale da un documento PDF, è necessario specificare il nome del campo firma contenente la firma digitale. È inoltre necessario disporre dell'autorizzazione per rimuovere la firma digitale; in caso contrario, si verifica un'eccezione.
Salvare il documento PDF come file PDF
Dopo che il servizio Firma ha rimosso una firma digitale da un campo firma, è possibile salvare il documento PDF come file PDF per consentirne l'apertura in Acrobat o Adobe Reader.
Consulta anche

Rimozione di firme digitali tramite l'API Java

Rimuovere una firma digitale utilizzando l'API Signature (Java):
  1. Includi file di progetto
    Includete file JAR client, ad esempio adobe-signatures-client.jar, nel percorso di classe del progetto Java.
  2. Creare un client per le firme.
    • Creare un ServiceClientFactory oggetto che contenga proprietà di connessione.
    • Creare un SignatureServiceClient oggetto utilizzando il relativo costruttore e passando l' ServiceClientFactory oggetto.
  3. Ottenere il documento PDF contenente una firma da rimuovere
    • Creare un java.io.FileInputStream oggetto che rappresenta il documento PDF contenente la firma da rimuovere utilizzando il relativo costruttore e passando un valore di stringa che specifica la posizione del documento PDF.
    • Creare un com.adobe.idp.Document oggetto utilizzando il relativo costruttore e passando l' java.io.FileInputStream oggetto.
  4. Rimozione della firma digitale dal campo firma
    Rimuovere una firma digitale da un campo firma richiamando il metodo dell' SignatureServiceClient oggetto clearSignatureField e passando i seguenti valori:
    • Un com.adobe.idp.Document oggetto che rappresenta il documento PDF contenente la firma da rimuovere.
    • Una stringa che specifica il nome del campo firma contenente la firma digitale.
    Il clearSignatureField metodo restituisce un com.adobe.idp.Document oggetto che rappresenta il documento PDF da cui è stata rimossa la firma digitale.
  5. Salvare il documento PDF come file PDF
    • Create un java.io.File oggetto e accertatevi che l'estensione del file sia .pdf.
    • Richiama il metodo dell’ com.adobe.idp.Document oggetto copyToFile . Passate l' java.io.File oggetto per copiare il contenuto dell' com.adobe.idp.Document oggetto nel file. Assicurarsi di utilizzare l' Document oggetto restituito dal clearSignatureField metodo.
Consulta anche

Rimozione di firme digitali tramite l'API del servizio Web

Rimuovere una firma digitale utilizzando l'API Signature (servizio Web):
  1. Includi file di progetto
    Creare un progetto Microsoft .NET che utilizza MTOM. Assicurarsi di utilizzare la seguente definizione WSDL: http://localhost:8080/soap/services/SignatureService?WSDL&lc_version=9.0.1 .
    Sostituire localhost con l'indirizzo IP del server in cui è installato AEM Forms.
  2. Creare un client per le firme
    • Creare un SignatureServiceClient oggetto utilizzando il relativo costruttore predefinito.
    • Creare un SignatureServiceClient.Endpoint.Address oggetto utilizzando il System.ServiceModel.EndpointAddress costruttore. Passa un valore di stringa che specifica il WSDL al servizio AEM Forms (ad esempio, http://localhost:8080/soap/services/SignatureService?WSDL ). Non è necessario utilizzare l' lc_version attributo. Questo attributo viene utilizzato quando create un riferimento a un servizio.
    • Creare un System.ServiceModel.BasicHttpBinding oggetto ottenendo il valore del SignatureServiceClient.Endpoint.Binding campo. Inserite il valore restituito in BasicHttpBinding .
    • Impostare il campo System.ServiceModel.BasicHttpBinding dell' MessageEncoding oggetto su WSMessageEncoding.Mtom . Questo valore assicura che venga utilizzato MTOM.
    • Abilitate l'autenticazione HTTP di base eseguendo le seguenti operazioni:
      • Assegnare il nome utente dei moduli AEM al campo SignatureServiceClient.ClientCredentials.UserName.UserName .
      • Assegnare il valore della password corrispondente al campo SignatureServiceClient.ClientCredentials.UserName.Password .
      • Assegnare il valore costante HttpClientCredentialType.Basic al campo BasicHttpBindingSecurity.Transport.ClientCredentialType .
      • Assegnare il valore costante BasicHttpSecurityMode.TransportCredentialOnly al campo BasicHttpBindingSecurity.Security.Mode .
  3. Ottenere il documento PDF contenente una firma da rimuovere
    • Creare un BLOB oggetto utilizzando il relativo costruttore. L' BLOB oggetto viene utilizzato per memorizzare un documento PDF contenente una firma digitale da rimuovere.
    • Creare un System.IO.FileStream oggetto richiamando il relativo costruttore e passando un valore di stringa che rappresenta la posizione del file del documento PDF firmato e la modalità di apertura del file.
    • Creare un array di byte che memorizza il contenuto dell' System.IO.FileStream oggetto. È possibile determinare la dimensione dell'array di byte ottenendo la proprietà dell' System.IO.FileStream oggetto Length .
    • Compilare l'array di byte con i dati del flusso richiamando il metodo dell' System.IO.FileStream oggetto Read . Passare l'array di byte, la posizione iniziale e la lunghezza del flusso da leggere.
    • Compilare l' BLOB oggetto assegnandone MTOM la proprietà con il contenuto dell'array di byte.
  4. Rimozione della firma digitale dal campo firma
    Rimuovere la firma digitale richiamando il metodo dell' SignatureServiceClient oggetto clearSignatureField e passando i seguenti valori:
    • Un BLOB oggetto che contiene il documento PDF firmato.
    • Una stringa che rappresenta il nome del campo firma contenente la firma digitale da rimuovere.
    Il clearSignatureField metodo restituisce un BLOB oggetto che rappresenta il documento PDF da cui è stata rimossa la firma digitale.
  5. Salvare il documento PDF come file PDF
    • Creare un System.IO.FileStream oggetto richiamando il relativo costruttore e passando un valore di stringa che rappresenta la posizione del file del documento PDF contenente un campo firma vuoto e la modalità di apertura del file.
    • Creare un array di byte che memorizza il contenuto dell' BLOB oggetto restituito dal sign metodo. Compilare l'array di byte ottenendo il valore del membro BLOB dati dell' MTOM oggetto.
    • Creare un System.IO.BinaryWriter oggetto richiamando il relativo costruttore e passando l' System.IO.FileStream oggetto.
    • Scrivere il contenuto dell'array di byte nel file PDF richiamando il metodo dell' System.IO.BinaryWriter oggetto Write e passando l'array di byte.
Consulta anche