Firma digitale e certificazione dei documenti digitally-signing-and-certifying-documents
Gli esempi e gli esempi contenuti in questo documento sono solo per AEM Forms in ambiente JEE.
Informazioni su Signature Service
Il servizio di firma consente all'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, quest'ultimo 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 di nuovo alla tua organizzazione.
Nomi campi firma
Per alcune operazioni del servizio di firma è necessario specificare il nome del campo firma in cui viene eseguita un'operazione. Quando si firma un documento di PDF, ad esempio, si specifica il nome del campo firma da firmare. Si supponga che il nome completo di un campo firma sia form1[0].Form1[0].SignatureField1[0]. È possibile 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 di firma (o l'esecuzione di un'altra operazione che richiede il nome del campo della firma). Questo conflitto è il risultato della visualizzazione del nome SignatureField1[0] in due o più posizioni nello stesso documento di PDF. Si consideri ad esempio un documento di PDF contenente due campi firma denominati form1[0].Form1[0].SignatureField1[0] e form1[0].Form1[0].SubForm1[0].SignatureField1[0] e si specifichi SignatureField1[0]. In questa situazione, il servizio Firma firma il primo campo firma trovato durante l'iterazione di tutti i campi firma del documento.
Se in un documento PDF sono presenti più campi firma, è consigliabile specificare i nomi completi dei campi firma. In altre parole, specifica form1[0].Form1[0].SignatureField1[0]invece di SignatureField1[0].
È possibile eseguire queste attività utilizzando il servizio di firma:
- Aggiungere ed eliminare campi di firma digitale in un documento di PDF. (Vedi Aggiunta di campi firma.)
- Recuperare i nomi dei campi firma in un documento PDF. (Vedere Recupero dei nomi dei campi di firma.)
- Modificare i campi della firma. (Vedi Modifica dei campi di firma.)
- Apporre una firma digitale ai documenti di PDF. (Vedi Firma digitale dei documenti di PDF.)
- Certificare i documenti PDF. (Vedi Certificazione dei documenti di PDF.)
- Convalidare le firme digitali in un documento di PDF. (Vedi Verifica delle firme digitali.)
- Convalida tutte le firme digitali in un documento PDF. (Vedi Verifica di più firme digitali.)
- Rimuovere una firma digitale da un campo firma. (Vedi Rimozione delle firme digitali.)
Aggiunta di campi firma adding-signature-fields
Le firme digitali vengono visualizzate nei campi firma, ovvero nei campi modulo che contengono una rappresentazione grafica della firma. I campi di firma possono essere visibili o invisibili. I firmatari possono utilizzare un campo di firma preesistente oppure è possibile aggiungere un campo di firma a livello di programmazione. In entrambi i casi, il campo firma deve esistere prima che un documento PDF possa essere firmato.
Puoi aggiungere un campo di firma a livello di programmazione utilizzando l’API Java di Signature Service o l’API del servizio web di firma. È possibile aggiungere più di un campo firma a un documento di PDF; tuttavia, ogni nome di campo firma deve essere univoco.
Riepilogo dei passaggi summary-of-steps
Per aggiungere un campo firma a un documento di PDF, eseguire le attività seguenti:
- Includi file di progetto.
- Creare un client di firma.
- Ottiene un documento PDF a cui viene aggiunto un campo firma.
- Aggiungi un campo firma.
- Salvare il documento PDF come file PDF.
Includi file di progetto
Includi i file necessari nel progetto di sviluppo. Se stai creando un’applicazione client utilizzando Java, includi i file JAR necessari. Se utilizzi i servizi web, accertati 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 è implementato su JBoss)
- jbossall-client.jar (obbligatorio se AEM Forms è distribuito su JBoss)
Creare un client di firma
Prima di poter eseguire un'operazione del servizio di firma a livello di programmazione, è necessario creare un client del servizio di firma.
Ottieni un documento PDF a cui è stato aggiunto un campo firma
Ottenere un documento PDF a cui viene aggiunto un campo firma.
Aggiungi un campo firma
Per aggiungere correttamente un campo firma a un documento di PDF, è necessario specificare valori di 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 di PDF vengono bloccati dopo l'applicazione di una firma al campo firma.
Salvare il documento PDF come file PDF
Dopo che il servizio di firma ha aggiunto un campo di firma al documento PDF, è possibile salvare il documento come file PDF in modo che gli utenti possano aprirlo in Acrobat o Adobe Reader.
Consulta anche
Inclusione dei file della libreria Java di AEM Forms
Aggiungere campi di firma utilizzando l’API Java add-signature-fields-using-the-java-api
Aggiungi un campo firma utilizzando Signature API (Java):
-
Includi file di progetto
Includi i file JAR dei client, ad esempio adobe-signatures-client.jar, nel percorso di classe del progetto Java.
-
Creare un client di firma
- Creare un oggetto
ServiceClientFactorycontenente le proprietà di connessione. - Creare un oggetto
SignatureServiceClientutilizzando il relativo costruttore e passando l'oggettoServiceClientFactory.
- Creare un oggetto
-
Ottieni un documento PDF a cui viene aggiunto un campo firma
- Creare un oggetto
java.io.FileInputStreamche rappresenta il documento di PDF a cui viene aggiunto un campo di firma utilizzando il relativo costruttore e passando un valore stringa che specifica la posizione del documento di PDF. - Creare un oggetto
com.adobe.idp.Documentutilizzando il relativo costruttore e passando l'oggettojava.io.FileInputStream.
- Creare un oggetto
-
Aggiungi un campo firma
-
Creare un oggetto
PositionRectangleche specifica la posizione del campo della firma utilizzando il relativo costruttore. All'interno del costruttore, specificate i valori delle coordinate. -
Se lo si desidera, creare un oggetto
FieldMDPOptionsche specifichi i campi bloccati quando viene applicata una firma digitale al campo firma. -
Aggiungere un campo di firma a un documento di PDF richiamando il metodo
SignatureServiceClientdell'oggettoaddSignatureFielde passando i valori seguenti:com.adobe.idp. OggettoDocumentche rappresenta il documento PDF a cui viene aggiunto un campo firma.- Valore stringa che specifica il nome del campo della firma.
- Valore
java.lang.Integerche rappresenta il numero di pagina a cui viene aggiunto un campo firma. - Oggetto
PositionRectangleche specifica la posizione del campo firma. - Oggetto
FieldMDPOptionsche specifica i campi del documento di PDF bloccati dopo l'applicazione di una firma digitale al campo della firma. Il valore di questo parametro è facoltativo ed è possibile trasmetterenull.
-
Oggetto
PDFSeedValueOptionsche specifica vari valori di runtime. Il valore di questo parametro è facoltativo ed è possibile trasmetterenull.Il metodo
addSignatureFieldrestituisce uncom.adobe.idp. OggettoDocumentche rappresenta un documento di PDF contenente un campo firma.
note note NOTE È possibile richiamare il metodo SignatureServiceClientdell'oggettoaddInvisibleSignatureFieldper aggiungere un campo firma invisibile. -
-
Salvare il documento PDF come file PDF
- Creare un oggetto
java.io.Filee verificare che l'estensione del file sia .pdf. - Richiama
com.adobe.idp. MetodoDocumentdell'oggettocopyToFileper copiare il contenuto dell'oggettoDocumentnel file. Assicurarsi di utilizzarecom.adobe.idp. OggettoDocumentrestituito dal metodoaddSignatureField.
- Creare un oggetto
Consulta anche
Aggiungere campi di firma utilizzando l’API del servizio web add-signature-fields-using-the-web-service-api
Per aggiungere un campo di firma utilizzando l’API di firma (servizio web):
-
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.note note NOTE Sostituisci localhostcon l'indirizzo IP del server che ospita AEM Forms. -
Creare un client di firma
-
Creare un oggetto
SignatureServiceClientutilizzando il relativo costruttore predefinito. -
Creare un oggetto
SignatureServiceClient.Endpoint.Addressutilizzando il costruttoreSystem.ServiceModel.EndpointAddress. Passa un valore stringa che specifica il WSDL al servizio AEM Forms (ad esempio,http://localhost:8080/soap/services/SignatureService?WSDL). Non è necessario utilizzare l'attributolc_version. Questo attributo viene utilizzato quando si crea un riferimento a un servizio.) -
Creare un oggetto
System.ServiceModel.BasicHttpBindingottenendo il valore del campoSignatureServiceClient.Endpoint.Binding. Eseguire il cast del valore restituito inBasicHttpBinding. -
Impostare il campo
System.ServiceModel.BasicHttpBindingdell'oggettoMessageEncodingsuWSMessageEncoding.Mtom. Questo valore assicura che venga utilizzato MTOM. -
Abilita l’autenticazione HTTP di base eseguendo le seguenti attività:
- Assegnare il nome utente di AEM Forms al campo
SignatureServiceClient.ClientCredentials.UserName.UserName. - Assegnare il valore della password corrispondente al campo
SignatureServiceClient.ClientCredentials.UserName.Password. - Assegnare il valore costante
HttpClientCredentialType.Basical campoBasicHttpBindingSecurity.Transport.ClientCredentialType. - Assegnare il valore costante
BasicHttpSecurityMode.TransportCredentialOnlyal campoBasicHttpBindingSecurity.Security.Mode.
- Assegnare il nome utente di AEM Forms al campo
-
-
Ottieni un documento PDF a cui viene aggiunto un campo firma
- Creare un oggetto
BLOButilizzando il relativo costruttore. L'oggettoBLOBviene utilizzato per memorizzare il documento PDF che conterrà un campo di firma. - Creare un oggetto
System.IO.FileStreamrichiamandone il costruttore e passando un valore stringa che rappresenta la posizione del file del documento di PDF e la modalità di apertura del file. - Creare una matrice di byte che memorizza il contenuto dell'oggetto
System.IO.FileStream. È possibile determinare le dimensioni della matrice di byte ottenendo la proprietàSystem.IO.FileStreamdell'oggettoLength. - Compilare la matrice di byte con i dati di flusso richiamando il metodo
System.IO.FileStreamdell'oggettoReade passando la matrice di byte, la posizione iniziale e la lunghezza del flusso da leggere. - Compilare l'oggetto
BLOBassegnando la relativa proprietàMTOMal contenuto della matrice di byte.
- Creare un oggetto
-
Aggiungi un campo firma
Aggiungere un campo di firma al documento di PDF richiamando il metodo
SignatureServiceClientdell'oggettoaddSignatureFielde passando i valori seguenti:- Oggetto
BLOBche rappresenta il documento PDF a cui viene aggiunto un campo firma. - Valore stringa che specifica il nome del campo della firma.
- Valore intero che rappresenta il numero di pagina a cui viene aggiunto un campo firma.
- Oggetto
PositionRectche specifica la posizione del campo firma. - Oggetto
FieldMDPOptionsche specifica i campi del documento di PDF bloccati dopo l'applicazione di una firma digitale al campo della firma. Il valore di questo parametro è facoltativo ed è possibile trasmetterenull. - Oggetto
PDFSeedValueOptionsche specifica vari valori di runtime. Il valore di questo parametro è facoltativo ed è possibile trasmetterenull.
Il metodo
addSignatureFieldrestituisce un oggettoBLOBche rappresenta un documento di PDF contenente un campo firma. - Oggetto
-
Salvare il documento PDF come file PDF
- Creare un oggetto
System.IO.FileStreamrichiamandone il costruttore e passando un valore stringa che rappresenta la posizione del file del documento di PDF che conterrà il campo firma e la modalità di apertura del file. - Creare una matrice di byte che memorizza il contenuto dell'oggetto
BLOBrestituito dal metodoaddSignatureField. Popolare la matrice di byte ottenendo il valore del membro datiBLOBdell'oggettobinaryData. - Creare un oggetto
System.IO.BinaryWriterrichiamandone il costruttore e passando l'oggettoSystem.IO.FileStream. - Scrivere il contenuto della matrice di byte in un file PDF richiamando il metodo
System.IO.BinaryWriterdell'oggettoWritee passando la matrice di byte.
- Creare un oggetto
Consulta anche
Recupero dei nomi dei campi firma retrieving-signature-field-names
È possibile recuperare i nomi di tutti i campi firma presenti in un documento di PDF che si desidera firmare o certificare. Se non si è certi dei nomi dei campi firma presenti in un documento di PDF o si desidera verificarli, è possibile recuperarli a livello di programmazione. Il servizio di firma restituisce il nome completo del campo della firma, ad esempio form1[0].grantApplication[0].page1[0].SignatureField1[0].
Riepilogo dei passaggi summary_of_steps-1
Per recuperare i nomi dei campi della firma, eseguire le operazioni seguenti:
- Includi file di progetto.
- Creare un client di firma.
- Ottiene il documento PDF contenente i campi firma.
- Recuperare i nomi dei campi firma.
Includi file di progetto
Includi i file necessari nel progetto di sviluppo. Se stai creando un’applicazione client utilizzando Java, includi i file JAR necessari. Se utilizzi i servizi web, accertati 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 è implementato su JBoss)
- jbossall-client.jar (obbligatorio se AEM Forms è distribuito su JBoss)
Per informazioni sul percorso di questi file JAR, vedi Inclusi i file della libreria Java di AEM Forms.
Creare un client di firma
Prima di poter eseguire un'operazione del servizio di firma a livello di programmazione, è necessario creare un client del servizio di firma.
Ottieni il documento PDF contenente i campi della firma
Recuperare un documento PDF contenente campi di firma.
Recupera i nomi dei campi della firma
È possibile recuperare i nomi dei campi firma dopo aver recuperato un documento di PDF contenente uno o più campi firma.
Consulta anche
Recuperare i nomi dei campi della firma utilizzando l’API Java
Recuperare il campo della firma utilizzando l’API del servizio web
Inclusione dei file della libreria Java di AEM Forms
Recuperare i nomi dei campi della firma utilizzando l’API Java retrieve-signature-field-names-using-the-java-api
Recupera i nomi dei campi della firma utilizzando Signature API (Java):
-
Includi file di progetto
Includi i file JAR dei client, ad esempio adobe-signatures-client.jar, nel percorso di classe del progetto Java.
-
Creare un client di firma
- Creare un oggetto
ServiceClientFactorycontenente le proprietà di connessione. - Creare un oggetto
SignatureServiceClientutilizzando il relativo costruttore e passando l'oggettoServiceClientFactory.
- Creare un oggetto
-
Ottieni il documento PDF contenente i campi firma
- Creare un oggetto
java.io.FileInputStreamche rappresenta il documento di PDF contenente campi di firma utilizzando il relativo costruttore e passando un valore stringa che specifica la posizione del documento di PDF. - Creare un oggetto
com.adobe.idp.Documentutilizzando il relativo costruttore e passando l'oggettojava.io.FileInputStream.
- Creare un oggetto
-
Recuperare i nomi dei campi firma
- Recuperare i nomi dei campi firma richiamando il metodo
SignatureServiceClientdell'oggettogetSignatureFieldListe passando l'oggettocom.adobe.idp.Documentche contiene il documento PDF contenente i campi firma. Questo metodo restituisce un oggettojava.util.List, in cui ogni elemento contiene un oggettoPDFSignatureField. Utilizzando questo oggetto, è possibile ottenere ulteriori informazioni su un campo firma, ad esempio se è visibile o meno. - Scorrere l'oggetto
java.util.Listper determinare se sono presenti nomi di campi di firma. Per ogni campo firma nel documento di PDF, è possibile ottenere un oggettoPDFSignatureFieldseparato. Per ottenere il nome del campo firma, richiamare il metodoPDFSignatureFielddell'oggettogetName. Questo metodo restituisce un valore stringa che specifica il nome del campo della firma.
- Recuperare i nomi dei campi firma richiamando il metodo
Consulta anche
Recupero dei nomi dei campi firma
Quick Start (modalità SOAP): recupero dei nomi dei campi della firma tramite l’API Java
Recuperare il campo della firma utilizzando l’API del servizio web retrieve-signature-field-using-the-web-service-api
Recupera i nomi dei campi della firma utilizzando Signature API (servizio web):
-
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.note note NOTE Sostituisci localhostcon l'indirizzo IP del server che ospita AEM Forms. -
Creare un client di firma
-
Creare un oggetto
SignatureServiceClientutilizzando il relativo costruttore predefinito. -
Creare un oggetto
SignatureServiceClient.Endpoint.Addressutilizzando il costruttoreSystem.ServiceModel.EndpointAddress. Passa un valore stringa che specifica il WSDL al servizio AEM Forms (ad esempio,http://localhost:8080/soap/services/SignatureService?WSDL). Non è necessario utilizzare l'attributolc_version. Questo attributo viene utilizzato quando si crea un riferimento a un servizio.) -
Creare un oggetto
System.ServiceModel.BasicHttpBindingottenendo il valore del campoSignatureServiceClient.Endpoint.Binding. Eseguire il cast del valore restituito inBasicHttpBinding. -
Impostare il campo
System.ServiceModel.BasicHttpBindingdell'oggettoMessageEncodingsuWSMessageEncoding.Mtom. Questo valore assicura che venga utilizzato MTOM. -
Abilita l’autenticazione HTTP di base eseguendo le seguenti attività:
- Assegnare il nome utente di AEM Forms al campo
SignatureServiceClient.ClientCredentials.UserName.UserName. - Assegnare il valore della password corrispondente al campo
SignatureServiceClient.ClientCredentials.UserName.Password. - Assegnare il valore costante
HttpClientCredentialType.Basical campoBasicHttpBindingSecurity.Transport.ClientCredentialType. - Assegnare il valore costante
BasicHttpSecurityMode.TransportCredentialOnlyal campoBasicHttpBindingSecurity.Security.Mode.
- Assegnare il nome utente di AEM Forms al campo
-
-
Ottieni il documento PDF contenente i campi firma
- Creare un oggetto
BLOButilizzando il relativo costruttore. L'oggettoBLOBviene utilizzato per memorizzare il documento PDF contenente campi di firma. - Creare un oggetto
System.IO.FileStreamrichiamandone il costruttore e passando un valore stringa che rappresenta la posizione del file del documento di PDF e la modalità di apertura del file. - Creare una matrice di byte che memorizza il contenuto dell'oggetto
System.IO.FileStream. È possibile determinare le dimensioni della matrice di byte ottenendo la proprietàSystem.IO.FileStreamdell'oggettoLength. - Compilare la matrice di byte con i dati di flusso richiamando il metodo
System.IO.FileStreamdell'oggettoReade passando la matrice di byte, la posizione iniziale e la lunghezza del flusso da leggere. - Compilare l'oggetto
BLOBassegnando al relativo campoMTOMil contenuto della matrice di byte.
- Creare un oggetto
-
Recuperare i nomi dei campi firma
- Recuperare i nomi dei campi firma richiamando il metodo
SignatureServiceClientdell'oggettogetSignatureFieldListe passando l'oggettoBLOBche contiene il documento PDF contenente i campi firma. Questo metodo restituisce un insiemeMyArrayOfPDFSignatureFieldin cui ogni elemento contiene un oggettoPDFSignatureField. - Scorrere l'oggetto
MyArrayOfPDFSignatureFieldper determinare se sono presenti nomi di campi di firma. Per ogni campo firma nel documento di PDF, è possibile ottenere un oggettoPDFSignatureField. Per ottenere il nome del campo firma, richiamare il metodoPDFSignatureFielddell'oggettogetName. Questo metodo restituisce un valore stringa che specifica il nome del campo della firma.
- Recuperare i nomi dei campi firma richiamando il metodo
Consulta anche
Recupero dei nomi dei campi firma
Modifica dei campi della firma modifying-signature-fields
Puoi modificare i campi della firma presenti in un documento PDF utilizzando l’API Java e l’API del servizio web. La modifica di un campo di firma comporta la modifica dei valori del dizionario del blocco del campo di firma o dei valori del dizionario dei valori iniziali.
Un dizionario di blocco dei campi ** specifica un elenco di campi bloccati quando il campo firma è firmato. Un campo bloccato impedisce agli utenti di apportare modifiche al campo. Un dizionario dei valori seed contiene informazioni di vincolo utilizzate al momento dell'applicazione della firma. È ad esempio possibile modificare le autorizzazioni che controllano le azioni che possono essere eseguite senza invalidare una firma.
Modificando un campo di firma esistente, è possibile modificare il documento PDF in modo da riflettere i requisiti aziendali in continua evoluzione. 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 di firma modificando i valori del dizionario dei blocchi di campi e del dizionario dei valori iniziali. Le modifiche apportate al dizionario di blocco del campo firma determinano il blocco di tutti i campi del documento di PDF quando un campo firma viene firmato. Le modifiche apportate al dizionario dei valori iniziali non consentono tipi specifici di modifiche al documento.
Riepilogo dei passaggi summary_of_steps-2
Per modificare i campi di firma in un documento di PDF, eseguire le operazioni seguenti:
- Includi file di progetto.
- Creare un client di firma.
- Ottiene il documento PDF contenente il campo firma da modificare.
- Imposta i valori del dizionario.
- Modificare il campo firma.
- Salvare il documento PDF come file PDF.
Includi file di progetto
Includi i file necessari nel progetto di sviluppo. Se stai creando un’applicazione client utilizzando Java, includi i file JAR necessari. Se utilizzi i servizi web, accertati 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 è implementato su JBoss)
- jbossall-client.jar (obbligatorio se AEM Forms è distribuito su JBoss)
Per informazioni sul percorso di questi file JAR, vedi Inclusi i file della libreria Java LiveCycle.
Creare un client di firma
Prima di poter eseguire un'operazione del servizio di firma a livello di programmazione, è necessario creare un client del servizio di firma.
Ottieni il documento PDF contenente il campo firma da modificare
Recuperare un documento PDF contenente il campo firma da modificare.
Imposta valori dizionario
Per modificare un campo di firma, assegnare valori al relativo dizionario di blocco dei campi o al dizionario dei valori iniziali. Per specificare i valori del dizionario di blocco del campo firma è necessario specificare i campi del documento di PDF che vengono bloccati quando il campo firma viene firmato. Questa sezione illustra come bloccare tutti i campi.
È possibile impostare i seguenti valori del dizionario dei valori iniziali:
-
Controllo revisioni: specifica se viene eseguito il controllo delle revoche quando viene applicata una firma al campo firma.
-
Opzioni certificato: assegna valori al dizionario dei valori iniziali del certificato. Prima di specificare le opzioni del certificato, è consigliabile acquisire familiarità con un dizionario dei valori iniziali del certificato.
-
Opzioni digest: assegna gli algoritmi di 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, puoi utilizzare il filtro Adobe.PPKLite.
-
Opzioni contrassegno: specifica i valori del contrassegno associati al campo della firma. Il valore 1 indica che un firmatario deve utilizzare solo i valori specificati per la voce. Il valore 0 indica che sono consentiti altri valori. Di seguito sono riportate le posizioni di bit:
- 1(Filtro): Gestore della firma da utilizzare per firmare il campo della firma
- 2 (Filtro secondario): Matrice di nomi che indicano le codifiche accettabili da utilizzare per la firma
- 3 (V): numero di versione minimo richiesto del gestore di firma da utilizzare per firmare il campo firma
- 4 (motivi): Matrice di stringhe che specifica i possibili motivi per la firma di un documento
- 5 (PDFLegalWarnings): Matrice di stringhe che specifica le possibili attestazioni legali
-
Attestazioni legali: quando un documento viene certificato, viene automaticamente analizzato per individuare tipi specifici di contenuto che possono rendere ambiguo o fuorviante il contenuto visibile di un documento. 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 di PDF senza invalidare la firma.
-
Motivi: specifica i motivi per cui il documento deve essere firmato.
-
Timestamp: specifica le opzioni di timestamp. È possibile, ad esempio, impostare l'URL del server di marca temporale utilizzato.
-
Versione: specifica il numero di versione minimo del gestore di firma da utilizzare per firmare il campo firma.
Modifica il campo della firma
Dopo aver creato un client del servizio di firma, recuperato il documento PDF contenente il campo firma da modificare e impostato i valori del dizionario, è possibile indicare al servizio di firma di modificare il campo firma. Il servizio di firma restituisce quindi un documento PDF contenente il campo della firma modificato. Il documento PDF originale non subisce modifiche.
Salvare il documento PDF come file PDF
Salvare il documento PDF contenente il campo della firma modificato come file PDF in modo che gli utenti possano aprirlo in Acrobat o Adobe Reader.
Consulta anche
Inclusione dei file della libreria Java di AEM Forms
Impostazione delle proprietà di connessione
Modificare i campi della firma utilizzando l’API Java modify-signature-fields-using-the-java-api
Modifica un campo di firma utilizzando Signature API (Java):
-
Includi file di progetto
Includi i file JAR dei client, ad esempio adobe-signatures-client.jar, nel percorso di classe del progetto Java.
-
Creare un client di firma
- Creare un oggetto
ServiceClientFactorycontenente le proprietà di connessione. - Creare un oggetto
SignatureServiceClientutilizzando il relativo costruttore e passando l'oggettoServiceClientFactory.
- Creare un oggetto
-
Ottieni il documento PDF contenente il campo firma da modificare
- Creare un oggetto
java.io.FileInputStreamche rappresenta il documento PDF contenente il campo firma da modificare utilizzando il relativo costruttore e passando un valore stringa che specifica la posizione del documento PDF. - Creare un oggetto
com.adobe.idp.Documentutilizzando il relativo costruttore e passando l'oggettojava.io.FileInputStream.
- Creare un oggetto
-
Impostare i valori del dizionario
- Creare un oggetto
PDFSignatureFieldPropertiesutilizzando il relativo costruttore. Un oggettoPDFSignatureFieldPropertiesmemorizza le informazioni del dizionario di blocco del campo della firma e del dizionario dei valori iniziali. - Creare un oggetto
PDFSeedValueOptionSpecutilizzando il relativo costruttore. Questo oggetto consente di impostare i valori del dizionario dei valori iniziali. - Non consentire modifiche al documento PDF richiamando il metodo
PDFSeedValueOptionSpecdell'oggettosetMdpValuee passando il valore di enumerazioneMDPPermissions.NoChanges. - Creare un oggetto
FieldMDPOptionSpecutilizzando il relativo costruttore. Questo oggetto consente di impostare i valori del dizionario di blocco del campo della firma. - Blocca tutti i campi nel documento di PDF richiamando il metodo
FieldMDPOptionSpecdell'oggettosetMdpValuee passando il valore di enumerazioneFieldMDPAction.ALL. - Impostare le informazioni sul dizionario dei valori iniziali richiamando il metodo
PDFSignatureFieldPropertiesdell'oggettosetSeedValuee passando l'oggettoPDFSeedValueOptionSpec. - Impostare le informazioni del dizionario di blocco del campo della firma richiamando il metodo
PDFSignatureFieldPropertiesdell'oggettosetFieldMDPe passando l'oggettoFieldMDPOptionSpec.
note note NOTE Per visualizzare tutti i valori del dizionario dei valori iniziali che è possibile impostare, vedere il riferimento alla classe PDFSeedValueOptionSpec. (Vedi Riferimento API di AEM Forms.) - Creare un oggetto
-
Modificare il campo firma
Modificare il campo firma richiamando il metodo
SignatureServiceClientdell'oggettomodifySignatureFielde passando i valori seguenti:- L'oggetto
com.adobe.idp.Documentche memorizza il documento PDF contenente il campo firma da modificare - Valore stringa che specifica il nome del campo della firma
- L'oggetto
PDFSignatureFieldPropertiesche memorizza le informazioni del dizionario del blocco del campo della firma e del dizionario dei valori iniziali
Il metodo
modifySignatureFieldrestituisce un oggettocom.adobe.idp.Documentche memorizza un documento PDF contenente il campo firma modificato. - L'oggetto
-
Salvare il documento PDF come file PDF
- Creare un oggetto
java.io.Filee verificare che l'estensione del nome file sia pdf. - Richiama il metodo
com.adobe.idp.Documentdell'oggettocopyToFileper copiare il contenuto dell'oggettocom.adobe.idp.Documentnel file. Assicurarsi di utilizzare l'oggettocom.adobe.idp.Documentrestituito dal metodomodifySignatureField.
- Creare un oggetto
Modificare i campi della firma utilizzando l’API del servizio web modify-signature-fields-using-the-web-service-api
Modifica un campo di firma utilizzando Signature API (servizio web):
-
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.note note NOTE Sostituisci localhostcon l'indirizzo IP del server che ospita AEM Forms. -
Creare un client di firma
-
Creare un oggetto
SignatureServiceClientutilizzando il relativo costruttore predefinito. -
Creare un oggetto
SignatureServiceClient.Endpoint.Addressutilizzando il costruttoreSystem.ServiceModel.EndpointAddress. Passa un valore stringa che specifica il WSDL al servizio AEM Forms (ad esempio,http://localhost:8080/soap/services/SignatureService?WSDL). Non è necessario utilizzare l'attributolc_version. Questo attributo viene utilizzato quando si crea un riferimento a un servizio.) -
Creare un oggetto
System.ServiceModel.BasicHttpBindingottenendo il valore del campoSignatureServiceClient.Endpoint.Binding. Eseguire il cast del valore restituito inBasicHttpBinding. -
Impostare il campo
System.ServiceModel.BasicHttpBindingdell'oggettoMessageEncodingsuWSMessageEncoding.Mtom. Questo valore assicura che venga utilizzato MTOM. -
Abilita l’autenticazione HTTP di base eseguendo le seguenti attività:
- Assegnare il nome utente di AEM Forms al campo
SignatureServiceClient.ClientCredentials.UserName.UserName. - Assegnare il valore della password corrispondente al campo
SignatureServiceClient.ClientCredentials.UserName.Password. - Assegnare il valore costante
HttpClientCredentialType.Basical campoBasicHttpBindingSecurity.Transport.ClientCredentialType. - Assegnare il valore costante
BasicHttpSecurityMode.TransportCredentialOnlyal campoBasicHttpBindingSecurity.Security.Mode.
- Assegnare il nome utente di AEM Forms al campo
-
-
Ottieni il documento PDF contenente il campo firma da modificare
- Creare un oggetto
BLOButilizzando il relativo costruttore. L'oggettoBLOBviene utilizzato per memorizzare il documento PDF contenente il campo firma da modificare. - Creare un oggetto
System.IO.FileStreamrichiamandone il costruttore e passando un valore stringa che rappresenta la posizione del file del documento di PDF e la modalità di apertura del file. - Creare una matrice di byte che memorizza il contenuto dell'oggetto
System.IO.FileStream. È possibile determinare le dimensioni della matrice di byte ottenendo la proprietàSystem.IO.FileStreamdell'oggettoLength. - Compilare la matrice di byte con i dati di flusso richiamando il metodo
System.IO.FileStreamdell'oggettoReade passando la matrice di byte, la posizione iniziale e la lunghezza del flusso da leggere. - Compilare l'oggetto
BLOBassegnando alla relativa proprietàMTOMil contenuto della matrice di byte.
- Creare un oggetto
-
Impostare i valori del dizionario
- Creare un oggetto
PDFSignatureFieldPropertiesutilizzando il relativo costruttore. Questo oggetto memorizza le informazioni del dizionario del blocco del campo della firma e del dizionario dei valori iniziali. - Creare un oggetto
PDFSeedValueOptionSpecutilizzando 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 enumerazione
MDPPermissions.NoChangesal membro datiPDFSeedValueOptionSpecdell'oggettomdpValue. - Creare un oggetto
FieldMDPOptionSpecutilizzando il relativo costruttore. Questo oggetto consente di impostare i valori del dizionario di blocco del campo della firma. - Blocca tutti i campi nel documento di PDF assegnando il valore di enumerazione
FieldMDPAction.ALLal membro datiFieldMDPOptionSpecdell'oggettomdpValue. - Impostare le informazioni del dizionario del valore di inizializzazione assegnando l'oggetto
PDFSeedValueOptionSpecal membro datiPDFSignatureFieldPropertiesdell'oggettoseedValue. - Impostare le informazioni del dizionario di blocco del campo della firma assegnando l'oggetto
FieldMDPOptionSpecal membro datiPDFSignatureFieldPropertiesdell'oggettofieldMDP.
note note NOTE Per visualizzare tutti i valori del dizionario dei valori iniziali che è possibile impostare, vedere il riferimento alla classe PDFSeedValueOptionSpec. (Vedi Riferimento API di AEM Forms). - Creare un oggetto
-
Modificare il campo firma
Modificare il campo firma richiamando il metodo
SignatureServiceClientdell'oggettomodifySignatureFielde passando i valori seguenti:- L'oggetto
BLOBche memorizza il documento PDF contenente il campo firma da modificare - Valore stringa che specifica il nome del campo della firma
- L'oggetto
PDFSignatureFieldPropertiesche memorizza le informazioni del dizionario del blocco del campo della firma e del dizionario dei valori iniziali
Il metodo
modifySignatureFieldrestituisce un oggettoBLOBche memorizza un documento PDF contenente il campo firma modificato. - L'oggetto
-
Salvare il documento PDF come file PDF
- Creare un oggetto
System.IO.FileStreamrichiamandone il costruttore e passando un valore stringa che rappresenta la posizione del file del documento di PDF che conterrà il campo firma e la modalità di apertura del file. - Creare una matrice di byte che memorizza il contenuto dell'oggetto
BLOBrestituito dal metodoaddSignatureField. Popolare la matrice di byte ottenendo il valore del membro datiBLOBdell'oggettoMTOM. - Creare un oggetto
System.IO.BinaryWriterrichiamandone il costruttore e passando l'oggettoSystem.IO.FileStream. - Scrivere il contenuto della matrice di byte in un file PDF richiamando il metodo
System.IO.BinaryWriterdell'oggettoWritee passando la matrice di byte.
- Creare un oggetto
Consulta anche
Firma digitale di documenti PDF digitally-signing-pdf-documents
Le firme digitali possono essere applicate ai documenti di PDF per garantire un livello di sicurezza elevato. Le firme digitali, come le firme scritte a mano, forniscono un mezzo mediante il quale i firmatari si identificano e rilasciano dichiarazioni su un documento. La tecnologia utilizzata per apporre la firma digitale ai documenti consente di garantire che il firmatario e i destinatari siano chiari su ciò che è stato firmato e certi che il documento non sia stato modificato dopo la firma.
I documenti PDF sono firmati tramite una tecnologia a chiave pubblica. Un firmatario ha due chiavi: una chiave pubblica e una chiave privata. La chiave privata viene memorizzata nelle credenziali di un utente che devono essere disponibili al momento della firma. La chiave pubblica viene archiviata nel certificato dell'utente che deve essere disponibile per i destinatari per convalidare la firma. Le informazioni sui certificati revocati si trovano nelle risposte CRL (Certificate Revocation List) e OCSP (Online Certificate Status Protocol) distribuite dalle autorità di certificazione (CA). L’ora della firma può essere ottenuta da una fonte attendibile nota come autorità di marca temporale.
È possibile apporre una firma digitale a livello di programmazione ai documenti di PDF. Quando si firma digitalmente un documento PDF, è necessario fare riferimento a una credenziale di sicurezza esistente in AEM Forms. Le credenziali sono la chiave privata utilizzata per la firma.
Il servizio di firma esegue i passaggi seguenti quando viene firmato un documento di PDF:
- Il servizio di firma recupera le credenziali dal Truststore passando l'alias specificato nella richiesta.
- Truststore cerca le credenziali specificate.
- Le credenziali vengono restituite al servizio di firma e utilizzate per firmare il documento. Le credenziali vengono anche memorizzate nella cache in base all’alias per le richieste future.
Per informazioni sulla gestione delle credenziali di protezione, vedere la Guida all'installazione e alla distribuzione di AEM Forms per il server applicazioni.
PDFOperationException. Per risolvere il problema, convertire il file XDP in un file PDF utilizzando il servizio Utilità PDF e quindi passare il file PDF convertito a un'operazione del servizio di firma. (Vedi Utilizzo delle utilità di PDF.)Credenziali HSM nShield crittografia
Quando si utilizza una credenziale HSM nShield di crittografia per firmare o certificare un documento PDF, non è possibile utilizzare la nuova credenziale finché non viene riavviato il server applicazioni J2EE su cui è distribuito AEM Forms. Tuttavia, è possibile impostare un valore di configurazione, in modo che l'operazione di firma o di certificazione funzioni senza riavviare il server applicazioni J2EE.
È possibile 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 le nuove credenziali senza riavviare il server applicazioni J2EE.
<div class="extension note">
<div>NOTE</div>
<div>
<p>Si consiglia di utilizzare il comando 'Ctrl + C' per riavviare SDK. Il riavvio di AEM SDK utilizzando metodi alternativi, ad esempio l'arresto dei processi Java, potrebbe causare incongruenze nell'ambiente di sviluppo AEM.</p>
</div>
</div>
La firma non è attendibile
Quando si certifica e firma lo stesso documento PDF, se la firma di certificazione non è attendibile, sulla prima firma viene visualizzato un triangolo giallo all’apertura del documento PDF in Acrobat o Adobe Reader. La firma di certificazione deve essere attendibile per evitare questa situazione.
Firma di documenti basati su XFA
Se si tenta di firmare un modulo basato su XFA utilizzando l'API del servizio di firma, è possibile che i dati non siano presenti in Acrobat in View Signed Version. Ad esempio, considera il seguente flusso di lavoro:
- Utilizzando un file XDP creato con Designer, si unisce una struttura di modulo contenente un campo firma e dati XML contenenti dati modulo. Il servizio Forms consente di generare un documento PDF interattivo.
- Firmi il documento PDF utilizzando l’API del servizio di firma.
Riepilogo dei passaggi summary_of_steps-3
Per apporre una firma digitale a un documento di PDF, eseguire le operazioni seguenti:
- Includi file di progetto.
- Creare un client del servizio di firma.
- Ottieni il documento PDF da firmare.
- Firma il documento PDF.
- Salvare il documento PDF firmato come file PDF.
Includi file di progetto
Includi i file necessari nel progetto di sviluppo. Se stai creando un’applicazione client utilizzando Java, includi i file JAR necessari. Se utilizzi i servizi web, accertati 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 è implementato su JBoss)
- jbossall-client.jar (obbligatorio se AEM Forms è distribuito su JBoss)
Creare un client Firme
Prima di poter eseguire un'operazione del servizio di firma a livello di programmazione, è necessario creare un client del servizio di firma.
Ottieni il documento PDF da firmare
Per firmare un documento di PDF, è necessario ottenere un documento di PDF contenente un campo firma. Se un documento di PDF non contiene un campo firma, non può essere firmato. È possibile aggiungere un campo firma utilizzando Designer o a livello di programmazione.
Firma il documento PDF
Quando si firma un documento di PDF, è possibile impostare le opzioni di runtime utilizzate dal servizio di firma. È possibile impostare le seguenti opzioni:
- Opzioni di aspetto
- Verifica della revoca
- Valori di marca temporale
È possibile impostare le opzioni di aspetto utilizzando un oggetto PDFSignatureAppearanceOptionSpec. È ad esempio possibile visualizzare la data all'interno di una firma richiamando il metodo PDFSignatureAppearanceOptionSpec dell'oggetto setShowDate e passando true.
È inoltre possibile specificare se eseguire o meno un controllo di revoca che determini se il certificato utilizzato per firmare digitalmente un documento di PDF è stato revocato. Per eseguire il controllo della revoca, è possibile specificare uno dei seguenti valori:
- NoCheck: non eseguire il controllo della revoca.
- BestEffort: tentare sempre di verificare la revoca di tutti i certificati della catena. Se si verificano problemi durante il controllo, la revoca viene considerata valida. In caso di errori, si supponga che il certificato non venga revocato.
- CheckIfAvailable: Verificare la revoca di tutti i certificati della catena se sono disponibili informazioni sulla revoca. Se si verificano problemi durante il controllo, la revoca viene considerata non valida. In caso di errori, si supponga che il certificato sia stato revocato e che non sia valido. Questo è il valore predefinito.
- AlwaysCheck: verifica la revoca di tutti i certificati della catena. Se le informazioni sulla revoca non sono presenti in alcun certificato, la revoca verrà considerata non valida.
Per eseguire il controllo di revoca su un certificato, è possibile specificare un URL di un server di elenco di revoche di certificati (CRL) utilizzando un oggetto CRLOptionSpec. Tuttavia, se si desidera eseguire il controllo di revoca e non si specifica un URL per un server CRL, il servizio di firma ottiene l'URL dal certificato.
Anziché utilizzare un server CRL, è possibile utilizzare un server OCSP (Certificate Status Protocol) online durante la verifica della revoca. In genere, quando si utilizza un server OCSP anziché un server CRL, il controllo di revoca viene eseguito più rapidamente. (Vedi "Online Certificate Status Protocol" all'indirizzo https://tools.ietf.org/html/rfc2560.)
È possibile impostare l'ordine dei server CRL e OCSP utilizzato dal servizio di firma utilizzando le applicazioni e i servizi Adobe. Ad esempio, se il server OCSP è impostato prima in Adobe Applications and Services, viene controllato il server OCSP, seguito dal server CRL. Consultate "Gestione di certificati e credenziali tramite l'archivio fonti attendibili" nella Guida di AAC.
Se si specifica di non eseguire il controllo di revoca, il servizio di firma non verifica se il certificato utilizzato per firmare o certificare un documento è stato revocato. In altre parole, le informazioni del server CRL e OCSP vengono ignorate.
CRLOptionSpec e un oggetto OCSPOptionSpec. Ad esempio, per ignorare il server CRL, è possibile richiamare il metodo CRLOptionSpec dell'oggetto setLocalURI.La marca temporale si riferisce al processo di tracciamento dell’ora in cui un documento firmato o certificato è stato modificato. Una volta firmato, il documento non deve essere modificato, nemmeno 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 oggetto TSPOptionSpec. Ad esempio, puoi specificare l’URL di un server provider di marca temporale (TSP).
Per firmare un documento di 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].
Per firmare digitalmente un documento PDF è inoltre necessario fare riferimento a una credenziale di protezione. Per fare riferimento a una credenziale di protezione, specificare un alias. L’alias è un riferimento a una credenziale effettiva che può trovarsi in un file PKCS#12 (con estensione .pfx) o in un modulo di sicurezza hardware (HSM). Per informazioni sulle credenziali di protezione, vedere la Guida all'installazione e alla distribuzione di AEM Forms per il server applicazioni.
Salva il documento PDF firmato
Dopo che il servizio di firma digitale ha firmato il documento PDF, è possibile salvarlo come file PDF in modo che gli utenti possano aprirlo in Acrobat o Adobe Reader.
Consulta anche
Firmare digitalmente i documenti PDF utilizzando l’API Java
Firma digitale di documenti PDF tramite l’API del servizio web
Inclusione dei file della libreria Java di AEM Forms
Firmare digitalmente i documenti PDF utilizzando l’API Java digitally-sign-pdf-documents-using-the-java-api
Firmare digitalmente un documento PDF utilizzando Signature API (Java):
-
Includi file di progetto
Includi i file JAR dei client, ad esempio adobe-signatures-client.jar, nel percorso di classe del progetto Java.
-
Creare un client Firme
- Creare un oggetto
ServiceClientFactorycontenente le proprietà di connessione. - Creare un oggetto
SignatureServiceClientutilizzando il relativo costruttore e passando l'oggettoServiceClientFactory.
- Creare un oggetto
-
Ottieni il documento PDF da firmare
- Creare un oggetto
java.io.FileInputStreamche rappresenta il documento PDF da firmare digitalmente utilizzando il relativo costruttore e passando un valore stringa che specifica la posizione del documento PDF. - Creare un oggetto
com.adobe.idp.Documentutilizzando il relativo costruttore e passando l'oggettojava.io.FileInputStream.
- Creare un oggetto
-
Firma il documento PDF
Firmare il documento PDF richiamando il metodo
SignatureServiceClientdell'oggettosigne passando i valori seguenti:- Oggetto
com.adobe.idp.Documentche rappresenta il documento PDF da firmare. - Valore string che rappresenta il nome del campo firma che conterrà la firma digitale.
- Oggetto
Credentialche rappresenta le credenziali utilizzate per firmare digitalmente il documento PDF. Creare un oggettoCredentialrichiamando il metodoCredentialstatico dell'oggettogetInstancee passando un valore stringa che specifica il valore alias corrispondente alle credenziali di sicurezza. - Oggetto
HashAlgorithmche specifica un membro dati statico che rappresenta l'algoritmo hash da utilizzare per digerire il documento PDF. Ad esempio, è possibile specificareHashAlgorithm.SHA1per utilizzare l'algoritmo SHA1. - Valore stringa che rappresenta il motivo per cui il documento PDF è stato firmato digitalmente.
- Valore stringa che rappresenta le informazioni di contatto del firmatario.
- Oggetto
PDFSignatureAppearanceOptionsche controlla l'aspetto della firma digitale. È ad esempio possibile utilizzare questo oggetto per aggiungere un logo personalizzato a una firma digitale. - Oggetto
java.lang.Booleanche specifica se eseguire il controllo di revoca sul certificato del firmatario. - Oggetto
OCSPOptionSpecche memorizza le preferenze per il supporto del protocollo di stato del certificato online (OCSP). Se il controllo della revoca non viene eseguito, il parametro non viene utilizzato ed è possibile specificarenull. - Oggetto
CRLPreferencesche memorizza le preferenze dell'elenco di revoche di certificati (CRL). Se il controllo della revoca non viene eseguito, il parametro non viene utilizzato ed è possibile specificarenull. - Un oggetto
TSPPreferencesche memorizza le preferenze per il supporto del provider di marca temporale (TSP). Questo parametro è facoltativo e può esserenull. Per ulteriori informazioni, consulta Riferimento API AEM Forms.
Il metodo
signrestituisce un oggettocom.adobe.idp.Documentche rappresenta il documento PDF firmato. - Oggetto
-
Salva il documento PDF firmato
- Creare un oggetto
java.io.Filee verificare che l'estensione del file sia .pdf. - Richiama il metodo
com.adobe.idp.Documentdell'oggettocopyToFilee passajava.io.Fileper copiare il contenuto dell'oggettoDocumentnel file. Assicurarsi di utilizzare l'oggettocom.adobe.idp.Documentrestituito dal metodosign.
- Creare un oggetto
Consulta anche
Firma digitale di documenti PDF
Quick Start (modalità SOAP): firma digitale di un documento PDF tramite l’API Java
Firma digitale di documenti PDF tramite l’API del servizio web digitally-signing-pdf-documents-using-the-web-service-api
Per firmare digitalmente un documento PDF utilizzando l’API di firma (servizio web):
-
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.note note NOTE Sostituisci localhostcon l'indirizzo IP del server che ospita AEM Forms. -
Creare un client Firme
-
Creare un oggetto
SignatureServiceClientutilizzando il relativo costruttore predefinito. -
Creare un oggetto
SignatureServiceClient.Endpoint.Addressutilizzando il costruttoreSystem.ServiceModel.EndpointAddress. Passa un valore stringa che specifica il WSDL al servizio AEM Forms (ad esempio,http://localhost:8080/soap/services/SignatureService?WSDL). Non è necessario utilizzare l'attributolc_version. Questo attributo viene utilizzato quando si crea un riferimento a un servizio.) -
Creare un oggetto
System.ServiceModel.BasicHttpBindingottenendo il valore del campoSignatureServiceClient.Endpoint.Binding. Eseguire il cast del valore restituito inBasicHttpBinding. -
Impostare il campo
System.ServiceModel.BasicHttpBindingdell'oggettoMessageEncodingsuWSMessageEncoding.Mtom. Questo valore assicura che venga utilizzato MTOM. -
Abilita l’autenticazione HTTP di base eseguendo le seguenti attività:
- Assegnare il nome utente di AEM Forms al campo
SignatureServiceClient.ClientCredentials.UserName.UserName. - Assegnare il valore della password corrispondente al campo
SignatureServiceClient.ClientCredentials.UserName.Password. - Assegnare il valore costante
HttpClientCredentialType.Basical campoBasicHttpBindingSecurity.Transport.ClientCredentialType. - Assegnare il valore costante
BasicHttpSecurityMode.TransportCredentialOnlyal campoBasicHttpBindingSecurity.Security.Mode.
- Assegnare il nome utente di AEM Forms al campo
-
-
Ottieni il documento PDF da firmare
- Creare un oggetto
BLOButilizzando il relativo costruttore. L'oggettoBLOBviene utilizzato per memorizzare un documento PDF firmato. - Creare un oggetto
System.IO.FileStreamrichiamandone il costruttore e passando un valore stringa che rappresenta la posizione del file del documento di PDF da firmare e la modalità di apertura del file. - Creare una matrice di byte che memorizza il contenuto dell'oggetto
System.IO.FileStream. È possibile determinare le dimensioni della matrice di byte ottenendo la proprietàSystem.IO.FileStreamdell'oggettoLength. - Compilare la matrice di byte con i dati di flusso richiamando il metodo
System.IO.FileStreamdell'oggettoReade passando la matrice di byte, la posizione iniziale e la lunghezza del flusso da leggere. - Compilare l'oggetto
BLOBassegnando alla relativa proprietàMTOMil contenuto della matrice di byte.
- Creare un oggetto
-
Firma il documento PDF
Firmare il documento PDF richiamando il metodo
SignatureServiceClientdell'oggettosigne passando i valori seguenti:- Oggetto
BLOBche rappresenta il documento PDF da firmare. - Valore string che rappresenta il nome del campo firma che conterrà la firma digitale.
- Oggetto
Credentialche rappresenta le credenziali utilizzate per firmare digitalmente il documento PDF. Creare un oggettoCredentialutilizzando il relativo costruttore e specificare l'alias assegnando un valore alla proprietàCredentialdell'oggettoalias. - Oggetto
HashAlgorithmche specifica un membro dati statico che rappresenta l'algoritmo hash da utilizzare per digerire il documento PDF. Ad esempio, è possibile specificareHashAlgorithm.SHA1per utilizzare l'algoritmo SHA1. - Un valore booleano che specifica se viene utilizzato l’algoritmo hash.
- Valore stringa che rappresenta il motivo per cui il documento PDF è stato firmato digitalmente.
- Valore stringa che rappresenta la posizione del firmatario.
- Valore stringa che rappresenta le informazioni di contatto del firmatario.
- Oggetto
PDFSignatureAppearanceOptionsche controlla l'aspetto della firma digitale. È ad esempio possibile utilizzare questo oggetto per aggiungere un logo personalizzato a una firma digitale. - Oggetto
System.Booleanche specifica se eseguire il controllo di revoca sul certificato del firmatario. Se la verifica della revoca viene eseguita, viene incorporata nella firma. Il valore predefinito èfalse. - Oggetto
OCSPOptionSpecche memorizza le preferenze per il supporto del protocollo di stato del certificato online (OCSP). Se il controllo della revoca non viene eseguito, il parametro non viene utilizzato ed è possibile specificarenull. Per informazioni su questo oggetto, vedere Riferimento API AEM Forms. - Oggetto
CRLPreferencesche memorizza le preferenze dell'elenco di revoche di certificati (CRL). Se il controllo della revoca non viene eseguito, il parametro non viene utilizzato ed è possibile specificarenull. - Un oggetto
TSPPreferencesche memorizza le preferenze per il supporto del provider di marca temporale (TSP). Questo parametro è facoltativo e può esserenull.
Il metodo
signrestituisce un oggettoBLOBche rappresenta il documento PDF firmato. - Oggetto
-
Salva il documento PDF firmato
- Creare un oggetto
System.IO.FileStreamrichiamando il relativo costruttore. Passa un valore stringa che rappresenta la posizione del file del documento PDF firmato e la modalità di apertura del file. - Creare una matrice di byte che memorizza il contenuto dell'oggetto
BLOBrestituito dal metodosign. Popolare la matrice di byte ottenendo il valore del membro datiBLOBdell'oggettoMTOM. - Creare un oggetto
System.IO.BinaryWriterrichiamandone il costruttore e passando l'oggettoSystem.IO.FileStream. - Scrivere il contenuto della matrice di byte in un file PDF richiamando il metodo
System.IO.BinaryWriterdell'oggettoWritee passando la matrice di byte.
- Creare un oggetto
Consulta anche
Firma digitale di documenti PDF
Forms interattivo con firma digitale digitally-signing-interactive-forms
È possibile firmare un modulo interattivo creato dal servizio Forms. Ad esempio, considera il seguente flusso di lavoro:
- È possibile unire un modulo PDF basato su XFA creato utilizzando Designer e i dati del modulo in un documento XML utilizzando il servizio Forms. Il server Forms esegue il rendering di un modulo interattivo.
- Firmi il modulo interattivo utilizzando l’API del servizio di firma.
Il risultato è un modulo PDF interattivo con firma digitale. Quando firmi un modulo PDF basato su un modulo XFA, accertati di salvare il file PDF come modulo PDF statico di Adobe. Se si tenta di firmare un modulo di PDF salvato come modulo di Adobe Dynamic PDF, si verifica un'eccezione. Poiché stai firmando il modulo restituito dal servizio Forms, accertati che il modulo contenga un campo firma.
Quando si utilizza l'API del servizio Forms, impostare l'opzione di runtime GenerateServerAppearance su true. Questa opzione di runtime garantisce che l'aspetto del modulo generato sul server rimanga valido quando viene aperto in Acrobat o Adobe Reader. È consigliabile impostare questa opzione di runtime durante la generazione di un modulo interattivo da firmare utilizzando l’API Forms.
Riepilogo dei passaggi summary_of_steps-4
Per apporre una firma digitale a un modulo interattivo restituito dal servizio Forms, eseguire le operazioni seguenti:
- Includi file di progetto.
- Creazione di un client Forms e Signatures.
- Ottieni il modulo interattivo utilizzando il servizio Forms.
- Firma il modulo interattivo.
- Salvare il documento PDF firmato come file PDF.
Includi file di progetto
Includi i file necessari nel progetto di sviluppo. Se stai creando un’applicazione client utilizzando Java, includi i file JAR necessari. Se utilizzi i servizi web, accertati 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 è implementato su JBoss)
- jbossall-client.jar (obbligatorio se AEM Forms è distribuito su JBoss)
Per informazioni sul percorso di questi file JAR, vedi Inclusi i file della libreria Java di AEM Forms.
Creare un client Forms and Signatures
Poiché questo flusso di lavoro richiama sia i servizi Forms che Signature, creare sia un client di servizi Forms che un client di servizi Signature.
Ottieni il modulo interattivo tramite il servizio Forms
È possibile utilizzare il servizio Forms per ottenere il modulo PDF interattivo da firmare. A partire da AEM Forms, è possibile passare un oggetto com.adobe.idp.Document al servizio Forms che contiene il modulo da riprodurre. Il nome di questo metodo è renderPDFForm2. Questo metodo restituisce un oggetto com.adobe.idp.Document che contiene il modulo da firmare. È possibile passare questa istanza com.adobe.idp.Document al servizio di firma.
Analogamente, se si utilizzano i servizi Web, è possibile passare l'istanza BLOB restituita dal servizio Forms al servizio Signature.
renderPDFForm2.Firma il modulo interattivo
Quando si firma un documento di PDF, è possibile impostare le opzioni di runtime utilizzate dal servizio di firma. È possibile impostare le seguenti opzioni:
- Opzioni di aspetto
- Verifica della revoca
- Valori di marca temporale
È possibile impostare le opzioni di aspetto utilizzando un oggetto PDFSignatureAppearanceOptionSpec. È ad esempio possibile visualizzare la data all'interno di una firma richiamando il metodo PDFSignatureAppearanceOptionSpec dell'oggetto setShowDate e passando true.
Salva il documento PDF firmato
Dopo che il servizio di firma digitale ha firmato il 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 del servizio web
Inclusione dei file della libreria Java di AEM Forms
Impostazione delle proprietà di connessione
Firmare digitalmente un modulo interattivo utilizzando l’API Java digitally-sign-an-interactive-form-using-the-java-api
Apporre una firma digitale a un modulo interattivo utilizzando Forms e Signature API (Java):
-
Includi file di progetto
Includi i file JAR dei client, ad esempio adobe-signatures-client.jar e adobe-forms-client.jar, nel percorso di classe del progetto Java.
-
Creazione di un client Forms e Signatures
- Creare un oggetto
ServiceClientFactorycontenente le proprietà di connessione. - Creare un oggetto
SignatureServiceClientutilizzando il relativo costruttore e passando l'oggettoServiceClientFactory. - Creare un oggetto
FormsServiceClientutilizzando il relativo costruttore e passando l'oggettoServiceClientFactory.
- Creare un oggetto
-
Ottenere il modulo interattivo utilizzando il servizio Forms
-
Creare un oggetto
java.io.FileInputStreamche rappresenta il documento PDF da passare al servizio Forms utilizzando il relativo costruttore. Passa un valore stringa che specifica la posizione del documento PDF. -
Creare un oggetto
com.adobe.idp.Documentutilizzando il relativo costruttore e passando l'oggettojava.io.FileInputStream. -
Creare un oggetto
java.io.FileInputStreamche rappresenta il documento XML contenente i dati del modulo da passare al servizio Forms utilizzando il relativo costruttore. Passa un valore stringa che specifica la posizione del file XML. -
Creare un oggetto
com.adobe.idp.Documentutilizzando il relativo costruttore e passando l'oggettojava.io.FileInputStream. -
Creare un oggetto
PDFFormRenderSpecutilizzato per impostare le opzioni di runtime. Richiama il metodoPDFFormRenderSpecdell'oggettosetGenerateServerAppearancee passatrue. -
Richiama il metodo
FormsServiceClientdell'oggettorenderPDFForm2e passa i seguenti valori:- Oggetto
com.adobe.idp.Documentcontenente il modulo PDF da riprodurre. - Oggetto
com.adobe.idp.Documentcontenente dati da unire al modulo. - Un oggetto
PDFFormRenderSpecche memorizza le opzioni di runtime. - Oggetto
URLSpeccontenente i valori URI richiesti dal servizio Forms. È possibile specificarenullper il valore di questo parametro. - Oggetto
java.util.HashMapche memorizza gli allegati. Questo è un parametro facoltativo ed è possibile specificarenullse non si desidera allegare file al modulo.
Il metodo
renderPDFForm2restituisce un oggettoFormsResultche contiene un flusso di dati del modulo - Oggetto
-
Recuperare il modulo PDF richiamando il metodo
FormsResultdell'oggettogetOutputContent. Questo metodo restituisce un oggettocom.adobe.idp.Documentche rappresenta il modulo interattivo.
-
-
Firma il modulo interattivo
Firmare il documento PDF richiamando il metodo
SignatureServiceClientdell'oggettosigne passando i valori seguenti:- Oggetto
com.adobe.idp.Documentche rappresenta il documento PDF da firmare. Verificare che questo oggetto sia l'oggettocom.adobe.idp.Documentottenuto dal servizio Forms. - Valore stringa che rappresenta il nome del campo firma firmato.
- Oggetto
Credentialche rappresenta le credenziali utilizzate per firmare digitalmente il documento PDF. Creare un oggettoCredentialrichiamando il metodoCredentialstatico dell'oggettogetInstance. Passa un valore stringa che specifica il valore alias corrispondente alle credenziali di sicurezza. - Oggetto
HashAlgorithmche specifica un membro dati statico che rappresenta l'algoritmo hash da utilizzare per digerire il documento PDF. Ad esempio, è possibile specificareHashAlgorithm.SHA1per utilizzare l'algoritmo SHA1. - Valore stringa che rappresenta il motivo per cui il documento PDF è stato firmato digitalmente.
- Valore stringa che rappresenta le informazioni di contatto del firmatario.
- Oggetto
PDFSignatureAppearanceOptionsche controlla l'aspetto della firma digitale. È ad esempio possibile utilizzare questo oggetto per aggiungere un logo personalizzato a una firma digitale. - Oggetto
java.lang.Booleanche specifica se eseguire il controllo di revoca sul certificato del firmatario. - Oggetto
OCSPPreferencesche memorizza le preferenze per il supporto del protocollo di stato del certificato online (OCSP). Se il controllo della revoca non viene eseguito, il parametro non viene utilizzato ed è possibile specificarenull. - Oggetto
CRLPreferencesche memorizza le preferenze dell'elenco di revoche di certificati (CRL). Se il controllo della revoca non viene eseguito, il parametro non viene utilizzato ed è possibile specificarenull. - Un oggetto
TSPPreferencesche memorizza le preferenze per il supporto del provider di marca temporale (TSP). Questo parametro è facoltativo e può esserenull.
Il metodo
signrestituisce un oggettocom.adobe.idp.Documentche rappresenta il documento PDF firmato. - Oggetto
-
Salva il documento PDF firmato
- Creare un oggetto
java.io.Filee verificare che l'estensione del nome file sia .pdf. - Richiama il metodo
com.adobe.idp.Documentdell'oggettocopyToFilee passajava.io.Fileper copiare il contenuto dell'oggettoDocumentnel file. Assicurarsi di utilizzare l'oggettocom.adobe.idp.Documentrestituito dal metodosign.
- Creare un oggetto
Consulta anche
Forms interattivo con firma digitale
Quick Start (modalità SOAP): firma digitale di un documento PDF tramite l’API Java
Firmare digitalmente un modulo interattivo utilizzando l’API del servizio web digitally-sign-an-interactive-form-using-the-web-service-api
Firmare digitalmente un modulo interattivo utilizzando Forms e Signature API (servizio web):
-
Includi file di progetto
Creare un progetto Microsoft .NET che utilizza MTOM. Poiché questa applicazione client richiama due servizi AEM Forms, creare due riferimenti al servizio. Utilizzare la seguente definizione WSDL per il riferimento al servizio associato al servizio di firma:
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 dati
BLOBè comune a entrambi i riferimenti al servizio, il tipo di datiBLOBviene completamente qualificato quando viene utilizzato. Nel servizio Web corrispondente, avvio rapido, tutte leBLOBistanze sono completamente qualificate.note note NOTE Sostituisci localhostcon l'indirizzo IP del server che ospita AEM Forms. -
Creazione di un client Forms e Signatures
-
Creare un oggetto
SignatureServiceClientutilizzando il relativo costruttore predefinito. -
Creare un oggetto
SignatureServiceClient.Endpoint.Addressutilizzando il costruttoreSystem.ServiceModel.EndpointAddress. Passa un valore stringa che specifica il WSDL al servizio AEM Forms (ad esempio,http://localhost:8080/soap/services/SignatureService?WSDL). Non è necessario utilizzare l'attributolc_version. Questo attributo viene utilizzato quando si crea un riferimento a un servizio.) -
Creare un oggetto
System.ServiceModel.BasicHttpBindingottenendo il valore del campoSignatureServiceClient.Endpoint.Binding. Eseguire il cast del valore restituito inBasicHttpBinding. -
Impostare il campo
System.ServiceModel.BasicHttpBindingdell'oggettoMessageEncodingsuWSMessageEncoding.Mtom. Questo valore assicura che venga utilizzato MTOM. -
Abilita l’autenticazione HTTP di base eseguendo le seguenti attività:
- Assegnare il nome utente di AEM Forms al campo
SignatureServiceClient.ClientCredentials.UserName.UserName. - Assegnare il valore della password corrispondente al campo
SignatureServiceClient.ClientCredentials.UserName.Password. - Assegnare il valore costante
HttpClientCredentialType.Basical campoBasicHttpBindingSecurity.Transport.ClientCredentialType.
- Assegnare il nome utente di AEM Forms al campo
-
Assegnare il valore costante
BasicHttpSecurityMode.TransportCredentialOnlyal campoBasicHttpBindingSecurity.Security.Mode.
note note NOTE Ripetere questi passaggi per il client del servizio Forms. -
-
Ottenere il modulo interattivo utilizzando il servizio Forms
-
Creare un oggetto
BLOButilizzando il relativo costruttore. L'oggettoBLOBviene utilizzato per memorizzare un documento PDF firmato. -
Creare un oggetto
System.IO.FileStreamrichiamandone il costruttore e passando un valore stringa che rappresenta la posizione del file del documento di PDF da firmare e la modalità di apertura del file. -
Creare una matrice di byte che memorizza il contenuto dell'oggetto
System.IO.FileStream. È possibile determinare le dimensioni della matrice di byte ottenendo la proprietàSystem.IO.FileStreamdell'oggettoLength. -
Compilare la matrice di byte con i dati di flusso richiamando il metodo
System.IO.FileStreamdell'oggettoReade passando la matrice di byte, la posizione iniziale e la lunghezza del flusso da leggere. -
Compilare l'oggetto
BLOBassegnando alla relativa proprietàMTOMil contenuto della matrice di byte. -
Creare un oggetto
BLOButilizzando il relativo costruttore. L'oggettoBLOBviene utilizzato per memorizzare i dati del modulo. -
Creare un oggetto
System.IO.FileStreamrichiamandone il costruttore e passando un valore stringa che rappresenta la posizione del file XML contenente i dati del modulo e la modalità di apertura del file. -
Creare una matrice di byte che memorizza il contenuto dell'oggetto
System.IO.FileStream. È possibile determinare le dimensioni della matrice di byte ottenendo la proprietàSystem.IO.FileStreamdell'oggettoLength. -
Compilare la matrice di byte con i dati di flusso richiamando il metodo
System.IO.FileStreamdell'oggettoReade passando la matrice di byte, la posizione iniziale e la lunghezza del flusso da leggere. -
Compilare l'oggetto
BLOBassegnando alla relativa proprietàMTOMil contenuto della matrice di byte. -
Creare un oggetto
PDFFormRenderSpecutilizzato per impostare le opzioni di runtime. Assegnare il valoretrueal campoPDFFormRenderSpecdell'oggettogenerateServerAppearance. -
Richiama il metodo
FormsServiceClientdell'oggettorenderPDFForm2e passa i seguenti valori:- Oggetto
BLOBcontenente il modulo PDF da riprodurre. - Oggetto
BLOBcontenente dati da unire al modulo. - Un oggetto
PDFFormRenderSpecche memorizza le opzioni di runtime. - Oggetto
URLSpeccontenente i valori URI richiesti dal servizio Forms. È possibile specificarenullper il valore di questo parametro. - Oggetto
java.util.HashMapche memorizza gli allegati. Questo è un parametro facoltativo ed è possibile specificarenullse non si desidera allegare file al modulo. - Parametro di output lungo utilizzato per memorizzare il numero di pagine nel modulo.
- Parametro di output stringa utilizzato per il valore locale.
- Valore
FormResultche è un parametro di output utilizzato per memorizzare il modulo interattivo.
- Oggetto
-
Recuperare il modulo PDF richiamando il campo
FormsResultdell'oggettooutputContent. Questo campo memorizza un oggettoBLOBche rappresenta il modulo interattivo.
-
-
Firma il modulo interattivo
Firmare il documento PDF richiamando il metodo
SignatureServiceClientdell'oggettosigne passando i valori seguenti:- Oggetto
BLOBche rappresenta il documento PDF da firmare. Utilizzare l'istanzaBLOBrestituita dal servizio Forms. - Valore stringa che rappresenta il nome del campo firma firmato.
- Oggetto
Credentialche rappresenta le credenziali utilizzate per firmare digitalmente il documento PDF. Creare un oggettoCredentialutilizzando il relativo costruttore e specificare l'alias assegnando un valore alla proprietàCredentialdell'oggettoalias. - Oggetto
HashAlgorithmche specifica un membro dati statico che rappresenta l'algoritmo hash da utilizzare per digerire il documento PDF. Ad esempio, è possibile specificareHashAlgorithm.SHA1per utilizzare l'algoritmo SHA1. - Un valore booleano che specifica se viene utilizzato l’algoritmo hash.
- Valore stringa che rappresenta il motivo per cui il documento PDF è stato firmato digitalmente.
- Valore stringa che rappresenta la posizione del firmatario.
- Valore stringa che rappresenta le informazioni di contatto del firmatario.
- Oggetto
PDFSignatureAppearanceOptionsche controlla l'aspetto della firma digitale. È ad esempio possibile utilizzare questo oggetto per aggiungere un logo personalizzato a una firma digitale. - Oggetto
System.Booleanche specifica se eseguire il controllo di revoca sul certificato del firmatario. Se la verifica della revoca viene eseguita, viene incorporata nella firma. Il valore predefinito èfalse. - Oggetto
OCSPPreferencesche memorizza le preferenze per il supporto del protocollo di stato del certificato online (OCSP). Se il controllo della revoca non viene eseguito, il parametro non viene utilizzato ed è possibile specificarenull. Per informazioni su questo oggetto, vedere Riferimento API AEM Forms. - Oggetto
CRLPreferencesche memorizza le preferenze dell'elenco di revoche di certificati (CRL). Se il controllo della revoca non viene eseguito, il parametro non viene utilizzato ed è possibile specificarenull. - Un oggetto
TSPPreferencesche memorizza le preferenze per il supporto del provider di marca temporale (TSP). Questo parametro è facoltativo e può esserenull.
Il metodo
signrestituisce un oggettoBLOBche rappresenta il documento PDF firmato. - Oggetto
-
Salva il documento PDF firmato
- Creare un oggetto
System.IO.FileStreamrichiamando il relativo costruttore. Passa un valore stringa che rappresenta la posizione del file del documento PDF firmato e la modalità di apertura del file. - Creare una matrice di byte che memorizza il contenuto dell'oggetto
BLOBrestituito dal metodosign. Popolare la matrice di byte ottenendo il valore del membro datiBLOBdell'oggettoMTOM. - Creare un oggetto
System.IO.BinaryWriterrichiamandone il costruttore e passando l'oggettoSystem.IO.FileStream. - Scrivere il contenuto della matrice di byte in un file PDF richiamando il metodo
System.IO.BinaryWriterdell'oggettoWritee passando la matrice di byte.
- Creare un oggetto
Consulta anche
Certificazione dei documenti di PDF certifying-pdf-documents
È possibile proteggere un documento PDF certificandolo con un tipo particolare di firma, denominata 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 del documento devono essere non firmati. In un documento PDF è consentita una sola firma certificata. Se si desidera firmare e certificare un documento di PDF, è necessario certificarlo prima di firmarlo. Dopo aver certificato un documento di PDF, è possibile firmare digitalmente ulteriori campi di firma.
- L'autore o l'originatore 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 la creazione di commenti. Se l’autore specifica che una determinata modifica non è consentita, Acrobat impedisce agli utenti di modificare il documento in questo modo. Se vengono apportate tali modifiche, ad esempio utilizzando un’altra applicazione, la firma certificata non è valida e Acrobat genera un avviso quando un utente apre il documento. Con 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 tipi specifici di contenuto che potrebbero rendere ambiguo o fuorviante il contenuto di un documento. Ad esempio, un’annotazione potrebbe oscurare del testo su una pagina importante per comprendere cosa viene certificato. Su tale contenuto può essere fornita una spiegazione (attestazione legale).
Puoi certificare i documenti PDF a livello di programmazione utilizzando l’API Java di Signature Service o l’API del servizio web di Signature. Quando si certifica un documento di PDF, è necessario fare riferimento a una credenziale di protezione esistente nel servizio Credenziali. Per informazioni sulle credenziali di protezione, vedere la Guida all'installazione e alla distribuzione di AEM Forms per il server applicazioni.
È possibile 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 le nuove credenziali senza riavviare il server applicazioni J2EE.
Riepilogo dei passaggi summary_of_steps-5
Per certificare un documento di PDF, eseguire le operazioni seguenti:
- Includi file di progetto.
- Creare un client di firma.
- Ottieni il documento PDF da certificare.
- Certifica il documento PDF.
- Salvare il documento PDF certificato come file PDF.
Includi file di progetto
Includi i file necessari nel progetto di sviluppo. Se stai creando un’applicazione client utilizzando Java, includi i file JAR necessari. Se utilizzi i servizi web, accertati 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 è implementato su JBoss)
- jbossall-client.jar (obbligatorio se AEM Forms è distribuito su JBoss)
Per informazioni sul percorso di questi file JAR, vedi Inclusi i file della libreria Java di AEM Forms.
Creare un client di firma
Prima di poter eseguire un'operazione di firma a livello di programmazione, è necessario creare un client di firma.
Ottieni 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 di firma, non può essere certificato. È possibile aggiungere un campo firma utilizzando Designer o a livello di programmazione. Per informazioni sull'aggiunta a livello di programmazione di un campo firma, vedere Aggiunta di campi firma.
Certificare il documento PDF
Per certificare un documento PDF, è necessario disporre dei seguenti valori di input utilizzati dal servizio di firma per certificare un documento PDF:
- Documento PDF: documento di PDF contenente un campo firma, ovvero un campo modulo contenente una rappresentazione grafica della firma certificata. Un documento PDF deve contenere un campo firma prima di poter essere certificato. È possibile aggiungere un campo firma utilizzando Designer o a livello di programmazione. (Vedi Aggiunta di campi firma.)
- Nome campo firma: nome completo del campo firma certificato. Il valore seguente è 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 viene passato un valore nullo per il nome del campo, viene creato e certificato dinamicamente un campo di firma invisibile. - Credenziali di protezione: credenziali utilizzate per certificare il documento di PDF. Questa credenziale di protezione contiene una password e un alias, che devono corrispondere a un alias visualizzato nella credenziale che si trova nel servizio Credenziale. L’alias è un riferimento a una credenziale effettiva che può trovarsi in un file PKCS#12 (con estensione .pfx) o in un modulo di sicurezza hardware (HSM).
- Algoritmo hash: algoritmo hash da utilizzare per il digest del documento PDF.
- Motivo della firma: valore visualizzato in Acrobat o Adobe Reader in modo che gli altri utenti conoscano il motivo per cui il documento PDF è stato certificato.
- Posizione del firmatario: posizione del firmatario specificata dalle credenziali.
- 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 non sia valida. È ad esempio possibile impostare l'autorizzazione in modo che qualsiasi modifica apportata al documento PDF provochi la mancata validità della firma certificata.
- Spiegazione legale: quando un documento viene certificato, viene automaticamente analizzato per individuare tipi specifici di contenuto che potrebbero rendere ambiguo o fuorviante il contenuto di un documento. Ad esempio, un’annotazione potrebbe oscurare del testo su una pagina importante per comprendere cosa viene certificato. Il processo di scansione genera avvisi su questi tipi di contenuto. Questo valore fornisce una spiegazione aggiuntiva 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 informazioni sulla data.
- Controllo revoca: questo valore specifica se viene eseguito il controllo di revoca per il certificato del firmatario. L'impostazione predefinita di
falseindica che la verifica della revoca non è stata eseguita. - 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 di PDF. È possibile, ad esempio, specificare l'URL del server che fornisce informazioni sulle credenziali utilizzate per accedere al documento di PDF.
- Impostazioni CRL: Impostazioni per le preferenze dell'elenco di revoche di certificati (CRL) se la verifica della revoca è stata eseguita. Ad esempio, è possibile specificare di controllare sempre se una credenziale è stata revocata.
- Timestamp: impostazioni che definiscono le informazioni di timestamp applicate alla firma certificata. Una marca temporale indica che dati specifici sono stati stabiliti prima di un certo periodo di tempo. Questa conoscenza consente di creare una relazione di affidabilità tra il firmatario e il verificatore.
Salvare il documento PDF certificato come file PDF
Dopo che il servizio di firma ha certificato il documento PDF, è possibile salvarlo come file PDF in modo che gli utenti possano aprirlo in Acrobat o Adobe Reader.
Consulta anche
Certificare i documenti PDF utilizzando l’API Java
Certifica i documenti PDF tramite l’API del servizio web
Inclusione dei file della libreria Java di AEM Forms
Certificare i documenti PDF utilizzando l’API Java certify-pdf-documents-using-the-java-api
Certifica un documento PDF utilizzando Signature API (Java):
-
Includi file di progetto
Includi i file JAR dei client, ad esempio adobe-signatures-client.jar, nel percorso di classe del progetto Java.
-
Creare un client di firma
- Creare un oggetto
ServiceClientFactorycontenente le proprietà di connessione. - Creare un oggetto
SignatureServiceClientutilizzando il relativo costruttore e passando l'oggettoServiceClientFactory.
- Creare un oggetto
-
Ottieni il documento PDF da certificare
- Creare un oggetto
java.io.FileInputStreamche rappresenta il documento PDF da certificare utilizzando il relativo costruttore e passando un valore stringa che specifica la posizione del documento PDF. - Creare un oggetto
com.adobe.idp.Documentutilizzando il relativo costruttore e passando l'oggettojava.io.FileInputStream.
- Creare un oggetto
-
Certificare il documento PDF
Certifica il documento PDF richiamando il metodo
SignatureServiceClientdell'oggettocertifye passando i valori seguenti:- Oggetto
com.adobe.idp.Documentche rappresenta il documento PDF da certificare. - Valore stringa che rappresenta il nome del campo firma che conterrà la firma.
- Oggetto
Credentialche rappresenta le credenziali utilizzate per certificare il documento di PDF. Creare un oggettoCredentialrichiamando il metodoCredentialstatico dell'oggettogetInstancee passando un valore stringa che specifica il valore alias corrispondente alle credenziali di sicurezza. - Oggetto
HashAlgorithmche specifica un membro dati statico che rappresenta l'algoritmo hash utilizzato per digerire il documento PDF. Ad esempio, è possibile specificareHashAlgorithm.SHA1per utilizzare l'algoritmo SHA1. - Valore stringa che rappresenta il motivo per cui il documento PDF è stato certificato.
- Valore stringa che rappresenta le informazioni di contatto del firmatario.
- Oggetto
MDPPermissionsche specifica le azioni che possono essere eseguite sul documento di PDF per invalidare la firma. - Oggetto
PDFSignatureAppearanceOptionsche controlla l'aspetto della firma certificata. Se lo si desidera, modificare l'aspetto della firma richiamando un metodo, ad esempiosetShowDate. - Valore stringa che fornisce una spiegazione delle azioni che invalidano la firma.
- Oggetto
java.lang.Booleanche specifica se eseguire il controllo di revoca sul certificato del firmatario. Se la verifica della revoca viene eseguita, viene incorporata nella firma. Il valore predefinito èfalse. - Oggetto
java.lang.Booleanche specifica se il campo firma da certificare è bloccato. Se il campo è bloccato, il campo firma viene contrassegnato come di sola lettura, le relative proprietà non possono essere modificate e non possono essere cancellate da utenti che non dispongono delle autorizzazioni necessarie. Il valore predefinito èfalse. - Oggetto
OCSPPreferencesche memorizza le preferenze per il supporto del protocollo di stato del certificato online (OCSP). Se il controllo della revoca non viene eseguito, il parametro non viene utilizzato ed è possibile specificarenull. Per informazioni su questo oggetto, vedere Riferimento API AEM Forms. - Oggetto
CRLPreferencesche memorizza le preferenze dell'elenco di revoche di certificati (CRL). Se il controllo della revoca non viene eseguito, il parametro non viene utilizzato ed è possibile specificarenull. - Un oggetto
TSPPreferencesche memorizza le preferenze per il supporto del provider di marca temporale (TSP). Ad esempio, dopo aver creato un oggettoTSPPreferences, è possibile impostare l'URL del server TSP richiamando il metodoTSPPreferencesdell'oggettosetTspServerURL. Questo parametro è facoltativo e può esserenull. Per ulteriori informazioni, vedere Riferimento ai servizi per AEM Forms.
Il metodo
certifyrestituisce un oggettocom.adobe.idp.Documentche rappresenta il documento PDF certificato. - Oggetto
-
Salvare il documento PDF certificato come file PDF
- Creare un oggetto
java.io.Filee verificare che l'estensione del file sia .pdf. - Richiama il metodo
com.adobe.idp.Documentdell'oggettocopyToFileper copiare il contenuto dell'oggettocom.adobe.idp.Documentnel file.
- Creare un oggetto
Consulta anche
Certificazione dei documenti di PDF
Quick Start (modalità SOAP): certificazione di un documento PDF tramite l’API Java
Certifica i documenti PDF tramite l’API del servizio web certify-pdf-documents-using-the-web-service-api
Certifica un documento PDF utilizzando Signature API (servizio web):
-
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.note note NOTE Sostituisci localhostcon l'indirizzo IP del server che ospita AEM Forms. -
Creare un client di firma
-
Creare un oggetto
SignatureServiceClientutilizzando il relativo costruttore predefinito. -
Creare un oggetto
SignatureServiceClient.Endpoint.Addressutilizzando il costruttoreSystem.ServiceModel.EndpointAddress. Passa un valore stringa che specifica il WSDL al servizio AEM Forms (ad esempio,http://localhost:8080/soap/services/SignatureService?WSDL). Non è necessario utilizzare l'attributolc_version. Questo attributo viene utilizzato quando si crea un riferimento a un servizio.) -
Creare un oggetto
System.ServiceModel.BasicHttpBindingottenendo il valore del campoSignatureServiceClient.Endpoint.Binding. Eseguire il cast del valore restituito inBasicHttpBinding. -
Impostare il campo
System.ServiceModel.BasicHttpBindingdell'oggettoMessageEncodingsuWSMessageEncoding.Mtom. Questo valore assicura che venga utilizzato MTOM. -
Abilita l’autenticazione HTTP di base eseguendo le seguenti attività:
- Assegnare il nome utente di AEM Forms al campo
SignatureServiceClient.ClientCredentials.UserName.UserName. - Assegnare il valore della password corrispondente al campo
SignatureServiceClient.ClientCredentials.UserName.Password. - Assegnare il valore costante
HttpClientCredentialType.Basical campoBasicHttpBindingSecurity.Transport.ClientCredentialType. - Assegnare il valore costante
BasicHttpSecurityMode.TransportCredentialOnlyal campoBasicHttpBindingSecurity.Security.Mode.
- Assegnare il nome utente di AEM Forms al campo
-
-
Ottieni il documento PDF da certificare
- Creare un oggetto
BLOButilizzando il relativo costruttore. L'oggettoBLOBviene utilizzato per archiviare un documento PDF certificato. - Creare un oggetto
System.IO.FileStreamrichiamandone il costruttore e passando un valore stringa che rappresenta la posizione del file del documento PDF da certificare e la modalità di apertura del file. - Creare una matrice di byte che memorizza il contenuto dell'oggetto
System.IO.FileStream. È possibile determinare le dimensioni della matrice di byte ottenendo la proprietàSystem.IO.FileStreamdell'oggettoLength. - Compilare la matrice di byte con i dati di flusso richiamando il metodo
System.IO.FileStreamdell'oggettoReade passando la matrice di byte, la posizione iniziale e la lunghezza del flusso da leggere. - Compilare l'oggetto
BLOBassegnando al relativo membro datiMTOMil contenuto della matrice di byte.
- Creare un oggetto
-
Certificare il documento PDF
Certifica il documento PDF richiamando il metodo
SignatureServiceClientdell'oggettocertifye passando i valori seguenti:- Oggetto
BLOBche rappresenta il documento PDF da certificare. - Valore stringa che rappresenta il nome del campo firma che conterrà la firma.
- Oggetto
Credentialche rappresenta le credenziali utilizzate per certificare il documento di PDF. Creare un oggettoCredentialutilizzando il relativo costruttore e specificare l'alias assegnando un valore alla proprietàCredentialdell'oggettoalias. - Oggetto
HashAlgorithmche specifica un membro dati statico che rappresenta l'algoritmo hash utilizzato per digerire il documento PDF. Ad esempio, è possibile specificareHashAlgorithm.SHA1per utilizzare l'algoritmo SHA1. - Un valore booleano che specifica se viene utilizzato l’algoritmo hash.
- Valore stringa che rappresenta il motivo per cui il documento PDF è stato certificato.
- Valore stringa che rappresenta la posizione del firmatario.
- Valore stringa che rappresenta le informazioni di contatto del firmatario.
- Membro dati statico di un oggetto
MDPPermissionsche specifica le azioni che possono essere eseguite sul documento di PDF per invalidare la firma. - Valore booleano che specifica se utilizzare l'oggetto
MDPPermissionspassato come valore del parametro precedente. - Valore stringa che spiega quali azioni invalidano la firma.
- Oggetto
PDFSignatureAppearanceOptionsche controlla l'aspetto della firma certificata. Creare un oggettoPDFSignatureAppearanceOptionsutilizzando il relativo costruttore. È possibile modificare l'aspetto della firma impostandone uno dei membri dati. - Oggetto
System.Booleanche specifica se eseguire il controllo di revoca sul certificato del firmatario. Se la verifica della revoca viene eseguita, viene incorporata nella firma. Il valore predefinito èfalse. - Oggetto
System.Booleanche specifica se il campo firma da certificare è bloccato. Se il campo è bloccato, il campo firma viene contrassegnato come di sola lettura, le relative proprietà non possono essere modificate e non possono essere cancellate da utenti che non dispongono delle autorizzazioni necessarie. Il valore predefinito èfalse. - Oggetto
System.Booleanche specifica se il campo firma è bloccato. In altre parole, se passitrueal parametro precedente, passatruea questo parametro. - Oggetto
OCSPPreferencesche memorizza le preferenze per il supporto del protocollo di stato del certificato online (OCSP), che fornisce informazioni sullo stato delle credenziali utilizzate per certificare il documento di PDF. Se il controllo della revoca non viene eseguito, il parametro non viene utilizzato ed è possibile specificarenull. - Oggetto
CRLPreferencesche memorizza le preferenze dell'elenco di revoche di certificati (CRL). Se il controllo della revoca non viene eseguito, il parametro non viene utilizzato ed è possibile specificarenull. - Un oggetto
TSPPreferencesche memorizza le preferenze per il supporto del provider di marca temporale (TSP). Ad esempio, dopo aver creato un oggettoTSPPreferences, è possibile impostare l'URL del TSP impostando il membro datiTSPPreferencesdell'oggettotspServerURL. Questo parametro è facoltativo e può esserenull.
Il metodo
certifyrestituisce un oggettoBLOBche rappresenta il documento PDF certificato. - Oggetto
-
Salvare il documento PDF certificato come file PDF
- Creare un oggetto
System.IO.FileStreamrichiamandone il costruttore e passando un valore stringa che rappresenta la posizione del file del documento PDF che conterrà il documento PDF certificato e la modalità di apertura del file. - Creare una matrice di byte che memorizza il contenuto dell'oggetto
BLOBrestituito dal metodocertify. Popolare la matrice di byte ottenendo il valore del membro datiBLOBdell'oggettobinaryData. - Creare un oggetto
System.IO.BinaryWriterrichiamandone il costruttore e passando l'oggettoSystem.IO.FileStream. - Scrivere il contenuto della matrice di byte in un file PDF richiamando il metodo
System.IO.BinaryWriterdell'oggettoWritee passando la matrice di byte.
- Creare un oggetto
Consulta anche
Certificazione dei documenti di PDF
Verifica delle firme digitali verifying-digital-signatures
PDF È possibile verificare che le firme digitali non siano state modificate e che la firma digitale sia valida. Durante la verifica di una firma digitale, è possibile controllare lo stato della firma e le relative proprietà, ad esempio l'identità del firmatario. Prima di considerare attendibile una firma digitale, è consigliabile verificarla. Durante la verifica di una firma digitale, fare riferimento a un documento di PDF contenente una firma digitale.
Supponiamo che l’identità del firmatario sia sconosciuta. Quando apri il documento PDF in Acrobat, un messaggio di avviso indica che l’identità del firmatario è sconosciuta, come illustrato nella figura seguente.
Analogamente, quando si verifica una firma digitale a livello di programmazione, è possibile determinare lo stato dell'identità del firmatario. Se ad esempio si verifica la firma digitale nel documento illustrato nell'illustrazione precedente, l'identità del firmatario risulterà sconosciuta.
Riepilogo dei passaggi summary_of_steps-6
Per verificare una firma digitale, eseguire le operazioni seguenti:
- Includi file di progetto.
- Creare un client di firma.
- Ottiene il documento PDF contenente la firma da verificare.
- Impostare le opzioni di runtime della PKI.
- Verificare la firma digitale.
- Determinare lo stato della firma.
- Determina l’identità del firmatario.
Includi file di progetto
Includi i file necessari nel progetto di sviluppo. Se stai creando un’applicazione client utilizzando Java, includi i file JAR necessari. Se si utilizzano servizi Web, 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 è implementato su JBoss)
- jbossall-client.jar (obbligatorio se AEM Forms è distribuito su JBoss)
Per informazioni sul percorso di questi file JAR, vedi Inclusi i file della libreria Java di AEM Forms.
Creare un client di firma
Prima di eseguire un'operazione del servizio di firma a livello di programmazione, creare un client del servizio.
Ottieni il documento PDF contenente la firma da verificare
Per verificare una firma utilizzata per firmare digitalmente o certificare un documento di PDF, ottenere un documento di PDF contenente una firma.
Impostare le opzioni di runtime della PKI
Impostare le seguenti opzioni di runtime PKI utilizzate dal servizio di firma per la verifica delle firme in un documento di PDF:
- Tempo di verifica
- Verifica della revoca
- Valori di marca temporale
L'impostazione di queste opzioni consente di specificare il tempo di verifica. Ad esempio, è possibile selezionare l'ora corrente (l'ora nel computer del validatore), che indica di utilizzare l'ora corrente. Per informazioni sui diversi valori di ora, vedere il valore di enumerazione VerificationTime in Riferimento API di AEM Forms.
È inoltre possibile specificare se eseguire il controllo di revoca come parte del processo di verifica. È ad esempio possibile eseguire un controllo di revoca per determinare se il certificato è stato revocato. Per informazioni sulle opzioni di controllo delle revoche, vedere il valore di enumerazione RevocationCheckStyle in Riferimento API di AEM Forms.
Per eseguire il controllo di revoca su un certificato, specificare un URL di un server di elenco di revoche di certificati (CRL) utilizzando un oggetto CRLOptionSpec. Tuttavia, se non si specifica un URL per il server CRL, il servizio di firma ottiene l'URL dal certificato.
Anziché utilizzare un server CRL, è possibile utilizzare un server OCSP (Certificate Status Protocol) online durante la verifica della revoca. In genere, quando si utilizza un server OCSP anziché un server CRL, il controllo di revoca viene eseguito più rapidamente. (Vedi Protocollo di stato del certificato in linea.)
È possibile impostare l'ordine dei server CRL e OCSP utilizzato dal servizio di firma utilizzando le applicazioni e i servizi Adobe. Ad esempio, se il server OCSP è impostato prima in Adobe Applications and Services, viene controllato il server OCSP, seguito dal server CRL.
Se non si esegue il controllo della revoca, il servizio di firma non verifica se il certificato è stato revocato. In altre parole, le informazioni del server CRL e OCSP vengono ignorate.
CRLOptionSpec e un oggetto OCSPOptionSpec. Ad esempio, per ignorare il server CRL, è possibile richiamare il metodo CRLOptionSpec dell'oggetto setLocalURI.La marca temporale è il processo di registrazione dell'ora in cui un documento firmato o certificato è stato modificato. Dopo aver firmato 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 oggetto TSPOptionSpec. Ad esempio, puoi specificare l’URL di un server provider di marca temporale (TSP).
VerificationTime.CURRENT_TIME e la verifica della revoca su RevocationCheckStyle.BestEffort. Poiché non vengono specificate informazioni sul server CRL o OCSP, le informazioni sul server vengono ottenute dal certificato.Verifica 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, è inoltre possibile utilizzare il nome parziale del campo firma: SignatureField3.
Per impostazione predefinita, il servizio di firma limita a 65 minuti la durata della firma di un documento dopo il periodo di convalida. Se un utente tenta di verificare una firma all’ora corrente e l’ora della firma è successiva all’ora corrente ed è compresa entro 65 minuti, il servizio di firma non crea un errore di verifica.
Determinare lo stato della firma
Durante la verifica di una firma digitale è possibile controllare lo stato della firma.
Determinare l'identità del firmatario
Puoi determinare l’identità del firmatario, che può corrispondere a uno dei seguenti valori:
- Sconosciuto: firmatario sconosciuto perché non è possibile eseguire la verifica del firmatario.
- Attendibile: firmatario attendibile.
- Non attendibile: firmatario non attendibile.
Consulta anche
Verificare le firme digitali tramite API Java
Verificare le firme digitali utilizzando l’API del servizio web
Verificare le firme digitali tramite API Java verify-digital-signatures-using-the-java-api
Verifica una firma digitale utilizzando l’API Signature Service (Java):
-
Includi file di progetto
Includi i file JAR dei client, ad esempio adobe-signatures-client.jar, nel percorso di classe del progetto Java.
-
Creare un client di firma
- Creare un oggetto
ServiceClientFactorycontenente le proprietà di connessione. - Creare un oggetto
SignatureServiceClientutilizzando il relativo costruttore e passando l'oggettoServiceClientFactory.
- Creare un oggetto
-
Ottieni il documento PDF contenente la firma da verificare
- Creare un oggetto
java.io.FileInputStreamche rappresenta il documento PDF contenente la firma da verificare utilizzando il relativo costruttore. Passa un valore stringa che specifica la posizione del documento PDF. - Creare un oggetto
com.adobe.idp.Documentutilizzando il relativo costruttore e passando l'oggettojava.io.FileInputStream.
- Creare un oggetto
-
Impostare le opzioni di runtime della PKI
- Creare un oggetto
PKIOptionsutilizzando il relativo costruttore. - Impostare il tempo di verifica richiamando il metodo
PKIOptionsdell'oggettosetVerificationTimee passando un valore di enumerazioneVerificationTimeche specifica il tempo di verifica. - Impostare l'opzione di verifica della revoca richiamando il metodo
PKIOptionsdell'oggettosetRevocationCheckStylee passando un valore di enumerazioneRevocationCheckStyleche specifica se eseguire il controllo della revoca.
- Creare un oggetto
-
Verificare la firma digitale
Verificare la firma richiamando il metodo
SignatureServiceClientdell'oggettoverify2e passando i valori seguenti:- Oggetto
com.adobe.idp.Documentcontenente un documento PDF con firma digitale o certificato. - Valore stringa che rappresenta il nome del campo della firma contenente la firma da verificare.
- Oggetto
PKIOptionscontenente opzioni di runtime PKI. - Istanza
VerifySPIOptionscontenente informazioni SPI. È possibile specificarenullper questo parametro.
Il metodo
verify2restituisce un oggettoPDFSignatureVerificationInfoche contiene informazioni che possono essere utilizzate per verificare la firma digitale. - Oggetto
-
Determinare lo stato della firma
- Determinare lo stato della firma richiamando il metodo
PDFSignatureVerificationInfodell'oggettogetStatus. Questo metodo restituisce un oggettoSignatureStatusche specifica lo stato della firma. Se ad esempio un documento PDF firmato non viene modificato, questo metodo restituisceSignatureStatus.DocumentSigNoChanges.
- Determinare lo stato della firma richiamando il metodo
-
Determinare l’identità del firmatario
- Determinare l'identità del firmatario richiamando il metodo
PDFSignatureVerificationInfodell'oggettogetSigner. Questo metodo restituisce un oggettoIdentityInformation. - Richiama il metodo
IdentityInformationdell'oggettogetStatusper determinare l'identità del firmatario. Questo metodo restituisce un valore di enumerazioneIdentityStatusche specifica l'identità. Ad esempio, se il firmatario è attendibile, questo metodo restituisceIdentityStatus.TRUSTED.
- Determinare l'identità del firmatario richiamando il metodo
Consulta anche
Quick Start (modalità SOAP): verifica di una firma digitale tramite l’API Java
Verificare le firme digitali utilizzando l’API del servizio web verify-digital-signatures-using-the-web-service-api
Verifica una firma digitale utilizzando l’API del servizio di firma (servizio web):
-
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.note note NOTE Sostituisci localhostcon l'indirizzo IP del server che ospita AEM Forms. -
Creare un client di firma
-
Creare un oggetto
SignatureServiceClientutilizzando il relativo costruttore predefinito. -
Creare un oggetto
SignatureServiceClient.Endpoint.Addressutilizzando il costruttoreSystem.ServiceModel.EndpointAddress. Passa un valore stringa che specifica il WSDL al servizio AEM Forms (ad esempio,http://localhost:8080/soap/services/SignatureService?WSDL). Non è necessario utilizzare l'attributolc_version. Questo attributo viene utilizzato quando si crea un riferimento a un servizio.) -
Creare un oggetto
System.ServiceModel.BasicHttpBindingottenendo il valore del campoSignatureServiceClient.Endpoint.Binding. Eseguire il cast del valore restituito inBasicHttpBinding. -
Impostare il campo
System.ServiceModel.BasicHttpBindingdell'oggettoMessageEncodingsuWSMessageEncoding.Mtom. Questo valore assicura che venga utilizzato MTOM. -
Abilita l’autenticazione HTTP di base eseguendo le seguenti attività:
- Assegnare il nome utente di AEM Forms al campo
SignatureServiceClient.ClientCredentials.UserName.UserName. - Assegnare il valore della password corrispondente al campo
SignatureServiceClient.ClientCredentials.UserName.Password. - Assegnare il valore costante
HttpClientCredentialType.Basical campoBasicHttpBindingSecurity.Transport.ClientCredentialType. - Assegnare il valore costante
BasicHttpSecurityMode.TransportCredentialOnlyal campoBasicHttpBindingSecurity.Security.Mode.
- Assegnare il nome utente di AEM Forms al campo
-
-
Ottieni il documento PDF contenente la firma da verificare
- Creare un oggetto
BLOButilizzando il relativo costruttore. L'oggettoBLOBviene utilizzato per archiviare un documento PDF contenente una firma digitale o certificata da verificare. - Creare un oggetto
System.IO.FileStreamrichiamando il relativo costruttore. Passa un valore stringa che rappresenta la posizione del file del documento PDF firmato e la modalità di apertura del file. - Creare una matrice di byte che memorizza il contenuto dell'oggetto
System.IO.FileStream. È possibile determinare le dimensioni della matrice di byte ottenendo la proprietàSystem.IO.FileStreamdell'oggettoLength. - Compilare la matrice di byte con i dati di flusso richiamando il metodo
System.IO.FileStreamdell'oggettoRead. Passare la matrice di byte, la posizione iniziale e la lunghezza del flusso da leggere. - Compilare l'oggetto
BLOBassegnando alla relativa proprietàMTOMil contenuto della matrice di byte.
- Creare un oggetto
-
Impostare le opzioni di runtime della PKI
- Creare un oggetto
PKIOptionsutilizzando il relativo costruttore. - Impostare il tempo di verifica assegnando al membro dati
PKIOptionsdell'oggettoverificationTimeun valore di enumerazioneVerificationTimeche specifica il tempo di verifica. - Impostare l'opzione di controllo delle revoche assegnando al membro dati
PKIOptionsdell'oggettorevocationCheckStyleun valore di enumerazioneRevocationCheckStyleche specifica se eseguire il controllo delle revoche.
- Creare un oggetto
-
Verificare la firma digitale
Verificare la firma richiamando il metodo
SignatureServiceClientdell'oggettoverify2e passando i valori seguenti:- L'oggetto
BLOBche contiene un documento PDF con firma digitale o certificato. - Valore stringa che rappresenta il nome del campo della firma contenente la firma da verificare.
- Oggetto
PKIOptionscontenente opzioni di runtime PKI. - Istanza
VerifySPIOptionscontenente informazioni SPI. È possibile specificarenullper questo parametro.
Il metodo
verify2restituisce un oggettoPDFSignatureVerificationInfoche contiene informazioni che possono essere utilizzate per verificare la firma digitale. - L'oggetto
-
Determinare lo stato della firma
Determinare lo stato della firma ottenendo il valore del membro dati
PDFSignatureVerificationInfodell'oggettostatus. Questo membro dati memorizza un oggettoSignatureStatusche specifica lo stato della firma. Se ad esempio un documento PDF firmato viene modificato, il membro datistatusmemorizza il valoreSignatureStatus.DocumentSigNoChanges. -
Determinare l’identità del firmatario
- Determinare l'identità del firmatario recuperando il valore del membro dati
PDFSignatureVerificationInfodell'oggettosigner. Questo membro restituisce un oggettoIdentityInformation. - Recuperare il membro dati
IdentityInformationdell'oggettostatusper determinare l'identità del firmatario. Questo membro dati restituisce un valore di enumerazioneIdentityStatusche specifica l'identità. Ad esempio, se il firmatario è attendibile, questo membro restituisceIdentityStatus.TRUSTED.
- Determinare l'identità del firmatario recuperando il valore del membro dati
Consulta anche
Verifica di più firme digitali verifying-multiple-digital-signatures
AEM Forms fornisce i mezzi per verificare tutte le firme digitali presenti in un documento PDF. Si supponga che un documento di PDF contenga più firme digitali come risultato di un processo aziendale che richiede firme da più firmatari. Ad esempio, si consideri una transazione finanziaria che richiede la firma sia di un addetto al prestito che di un manager. È possibile utilizzare l'API Java del servizio di firma o l'API del servizio Web per verificare tutte le firme all'interno del documento PDF. Quando si verificano più firme digitali, è possibile controllare lo stato e le proprietà di ogni firma. Prima di considerare attendibile una firma digitale, è consigliabile verificarla. È consigliabile avere familiarità con la verifica di una singola firma digitale.
Riepilogo dei passaggi summary_of_steps-7
Per verificare la presenza di più firme digitali, eseguire le operazioni seguenti:
- Includi file di progetto.
- Creare un client di firma.
- Ottenere il documento PDF contenente le firme da verificare.
- Impostare le opzioni di runtime della PKI.
- Recuperare tutte le firme digitali.
- Scorre tutte le firme.
Includi file di progetto
Includi i file necessari nel progetto di sviluppo. Se stai creando un’applicazione client utilizzando Java, includi i file JAR necessari. Se si utilizzano servizi Web, 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 è implementato su JBoss)
- jbossall-client.jar (obbligatorio se AEM Forms è distribuito su JBoss)
Per informazioni sul percorso di questi file JAR, vedi Inclusi i file della libreria Java di AEM Forms.
Creare un client di firma
Prima di eseguire un'operazione del servizio di firma a livello di programmazione, creare un client del servizio.
Ottieni il documento PDF contenente le firme da verificare
Per verificare una firma utilizzata per firmare digitalmente o certificare un documento di PDF, ottenere un documento di PDF contenente una firma.
Imposta opzioni runtime PKI
Impostare le seguenti opzioni di runtime PKI utilizzate dal servizio di firma per la verifica di tutte le firme in un documento di PDF:
- Tempo di verifica
- Verifica della revoca
- Valori di marca temporale
L'impostazione di queste opzioni consente di specificare il tempo di verifica. Ad esempio, è possibile selezionare l'ora corrente (l'ora nel computer del validatore), che indica di utilizzare l'ora corrente. Per informazioni sui diversi valori di ora, vedere il valore di enumerazione VerificationTime in Riferimento API di AEM Forms.
È inoltre possibile specificare se eseguire il controllo di revoca come parte del processo di verifica. È ad esempio possibile eseguire un controllo di revoca per determinare se il certificato è stato revocato. Per informazioni sulle opzioni di controllo delle revoche, vedere il valore di enumerazione RevocationCheckStyle in Riferimento API di AEM Forms.
Per eseguire il controllo di revoca su un certificato, specificare un URL di un server di elenco di revoche di certificati (CRL) utilizzando un oggetto CRLOptionSpec. Tuttavia, se non si specifica un URL per un server CRL, il servizio di firma ottiene l'URL dal certificato.
Anziché utilizzare un server CRL, è possibile utilizzare un server OCSP (Certificate Status Protocol) online durante la verifica della revoca. In genere, quando si utilizza un server OCSP invece di un server CRL, il controllo di revoca viene eseguito più rapidamente. (Vedi Protocollo di stato del certificato in linea.)
È possibile impostare l'ordine dei server CRL e OCSP utilizzato dal servizio di firma utilizzando le applicazioni e i servizi Adobe. Ad esempio, se il server OCSP è impostato per primo in Adobe Applications and Services, viene controllato il server OCSP, seguito dal server CRL.
Se non si esegue il controllo della revoca, il servizio di firma non verifica se il certificato è stato revocato. In altre parole, le informazioni del server CRL e OCSP vengono ignorate.
CRLOptionSpec e un oggetto OCSPOptionSpec. Ad esempio, per ignorare il server CRL, è possibile richiamare il metodo CRLOptionSpec dell'oggetto setLocalURI.La marca temporale è il processo di registrazione dell'ora in cui un documento firmato o certificato è stato modificato. Dopo aver firmato 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 oggetto TSPOptionSpec. Ad esempio, puoi specificare l’URL di un server provider di marca temporale (TSP).
VerificationTime.CURRENT_TIME e la verifica della revoca su RevocationCheckStyle.BestEffort. Poiché non vengono specificate informazioni sul server CRL o OCSP, le informazioni sul server vengono ottenute dal certificato.Recupera tutte le firme digitali
Per verificare tutte le firme digitali in un documento PDF, recuperare le firme digitali dal documento PDF. Tutte le firme vengono restituite in un elenco. Per verificare una firma digitale, controllare lo stato della firma.
Iterare tutte le firme
Scorrere ogni firma. In altre parole, per ogni firma, verificare la firma digitale e verificare l'identità del firmatario e lo stato di ogni firma. (Vedi Verifica delle firme digitali.)
Consulta anche
Verificare più firme digitali tramite API Java
Verifica di più firme digitali tramite l’API del servizio web
Verificare più firme digitali tramite API Java verify-multiple-digital-signatures-using-the-java-api
Verificare più firme digitali utilizzando l'API Signature Service (Java):
-
Includi file di progetto
Includi i file JAR dei client, ad esempio adobe-signatures-client.jar, nel percorso di classe del progetto Java.
-
Creare un client di firma
- Creare un oggetto
ServiceClientFactorycontenente le proprietà di connessione. - Creare un oggetto
SignatureServiceClientutilizzando il relativo costruttore e passando l'oggettoServiceClientFactory.
- Creare un oggetto
-
Ottieni il documento PDF contenente le firme da verificare
- Creare un oggetto
java.io.FileInputStreamche rappresenta il documento di PDF contenente più firme digitali da verificare utilizzando il relativo costruttore. Passa un valore stringa che specifica la posizione del documento PDF. - Creare un oggetto
com.adobe.idp.Documentutilizzando il relativo costruttore e passando l'oggettojava.io.FileInputStream.
- Creare un oggetto
-
Imposta opzioni runtime PKI
- Creare un oggetto
PKIOptionsutilizzando il relativo costruttore. - Impostare il tempo di verifica richiamando il metodo
PKIOptionsdell'oggettosetVerificationTimee passando un valore di enumerazioneVerificationTimeche specifica il tempo di verifica. - Impostare l'opzione di controllo della revoca richiamando il metodo
PKIOptionsdell'oggettosetRevocationCheckStylee passando un valore di enumerazioneRevocationCheckStyleche specifica se eseguire il controllo della revoca.
- Creare un oggetto
-
Recupera tutte le firme digitali
Richiama il metodo
SignatureServiceClientdell'oggettoverifyPDFDocumente passa i seguenti valori:- Oggetto
com.adobe.idp.Documentcontenente un documento di PDF contenente più firme digitali. - Oggetto
PKIOptionscontenente opzioni di runtime PKI. - Istanza
VerifySPIOptionscontenente informazioni SPI. È possibile specificarenullper questo parametro.
Il metodo
verifyPDFDocumentrestituisce un oggettoPDFDocumentVerificationInfoche contiene informazioni su tutte le firme digitali nel documento di PDF. - Oggetto
-
Iterazione di tutte le firme
- Scorrere tutte le firme richiamando il metodo
PDFDocumentVerificationInfodell'oggettogetVerificationInfos. Questo metodo restituisce un oggettojava.util.Listin cui ogni elemento è un oggettoPDFSignatureVerificationInfo. Utilizzare un oggettojava.util.Iteratorper scorrere l'elenco delle firme. - Utilizzando l'oggetto
PDFSignatureVerificationInfo, è possibile eseguire attività quali la determinazione dello stato della firma richiamando il metodoPDFSignatureVerificationInfodell'oggettogetStatus. Questo metodo restituisce un oggettoSignatureStatusil cui membro dati statico fornisce informazioni sullo stato della firma. Se ad esempio la firma è sconosciuta, questo metodo restituisceSignatureStatus.DocumentSignatureUnknown.
- Scorrere tutte le firme richiamando il metodo
Consulta anche
Verifica di più firme digitali
Quick Start (modalità SOAP): verifica di più firme digitali tramite l’API Java
Verifica di più firme digitali tramite l’API del servizio web verifying-multiple-digital-signatures-using-the-web-service-api
Verificare più firme digitali utilizzando l'API del servizio di firma (servizio Web):
-
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.note note NOTE Sostituisci localhostcon l'indirizzo IP del server che ospita AEM Forms. -
Creare un client di firma
-
Creare un oggetto
SignatureServiceClientutilizzando il relativo costruttore predefinito. -
Creare un oggetto
SignatureServiceClient.Endpoint.Addressutilizzando il costruttoreSystem.ServiceModel.EndpointAddress. Passa un valore stringa che specifica il WSDL al servizio AEM Forms (ad esempio,http://localhost:8080/soap/services/SignatureService?WSDL). Non è necessario utilizzare l'attributolc_version. Questo attributo viene utilizzato quando si crea un riferimento a un servizio.) -
Creare un oggetto
System.ServiceModel.BasicHttpBindingottenendo il valore del campoSignatureServiceClient.Endpoint.Binding. Eseguire il cast del valore restituito inBasicHttpBinding. -
Impostare il campo
System.ServiceModel.BasicHttpBindingdell'oggettoMessageEncodingsuWSMessageEncoding.Mtom. Questo valore assicura che venga utilizzato MTOM. -
Abilita l’autenticazione HTTP di base eseguendo le seguenti attività:
- Assegnare il nome utente di AEM Forms al campo
SignatureServiceClient.ClientCredentials.UserName.UserName. - Assegnare il valore della password corrispondente al campo
SignatureServiceClient.ClientCredentials.UserName.Password. - Assegnare il valore costante
HttpClientCredentialType.Basical campoBasicHttpBindingSecurity.Transport.ClientCredentialType. - Assegnare il valore costante
BasicHttpSecurityMode.TransportCredentialOnlyal campoBasicHttpBindingSecurity.Security.Mode.
- Assegnare il nome utente di AEM Forms al campo
-
-
Ottieni il documento PDF contenente le firme da verificare
- Creare un oggetto
BLOButilizzando il relativo costruttore. L'oggettoBLOBmemorizza un documento PDF contenente più firme digitali da verificare. - Creare un oggetto
System.IO.FileStreamrichiamando il relativo costruttore. Passa un valore stringa che rappresenta la posizione del file del documento PDF e la modalità di apertura del file. - Creare una matrice di byte che memorizza il contenuto dell'oggetto
System.IO.FileStream. È possibile determinare le dimensioni della matrice di byte ottenendo la proprietàSystem.IO.FileStreamdell'oggettoLength. - Compilare la matrice di byte con i dati di flusso richiamando il metodo
System.IO.FileStreamdell'oggettoRead. Passare la matrice di byte, la posizione iniziale e la lunghezza del flusso da leggere. - Compilare l'oggetto
BLOBassegnando alla relativa proprietàMTOMil contenuto della matrice di byte.
- Creare un oggetto
-
Imposta opzioni runtime PKI
- Creare un oggetto
PKIOptionsutilizzando il relativo costruttore. - Impostare il tempo di verifica assegnando al membro dati
PKIOptionsdell'oggettoverificationTimeun valore di enumerazioneVerificationTimeche specifica il tempo di verifica. - Impostare l'opzione di controllo della revoca assegnando al membro dati
PKIOptionsdell'oggettorevocationCheckStyleun valore di enumerazioneRevocationCheckStyleche specifica se eseguire il controllo della revoca.
- Creare un oggetto
-
Recupera tutte le firme digitali
Richiama il metodo
SignatureServiceClientdell'oggettoverifyPDFDocumente passa i seguenti valori:- Oggetto
BLOBcontenente un documento di PDF contenente più firme digitali. - Oggetto
PKIOptionscontenente opzioni di runtime PKI. - Istanza
VerifySPIOptionscontenente informazioni SPI. È possibile specificare null per questo parametro.
Il metodo
verifyPDFDocumentrestituisce un oggettoPDFDocumentVerificationInfoche contiene informazioni su tutte le firme digitali nel documento di PDF. - Oggetto
-
Iterazione di tutte le firme
- Scorrere tutte le firme ottenendo il membro dati
PDFDocumentVerificationInfodell'oggettoverificationInfos. Questo membro dati restituisce un arrayObjectin cui ogni elemento è un oggettoPDFSignatureVerificationInfo. - Utilizzando l'oggetto
PDFSignatureVerificationInfo, è possibile eseguire attività quali la determinazione dello stato della firma ottenendo il membro datiPDFSignatureVerificationInfodell'oggettostatus. Questo membro dati restituisce un oggettoSignatureStatusil cui membro dati statico fornisce informazioni sullo stato della firma. Se ad esempio la firma è sconosciuta, questo metodo restituisceSignatureStatus.DocumentSignatureUnknown.
- Scorrere tutte le firme ottenendo il membro dati
Consulta anche
Verifica di più firme digitali
Rimozione di firme digitali removing-digital-signatures
Per poter applicare una firma digitale più recente, è necessario rimuovere le firme digitali da un campo di firma. Impossibile sovrascrivere una firma digitale. Se si tenta di applicare una firma digitale a un campo firma contenente una firma, si verifica un'eccezione.
Riepilogo dei passaggi summary_of_steps-8
Per rimuovere una firma digitale da un campo firma, eseguire le operazioni seguenti:
- Includi file di progetto.
- Creare un client di firma.
- Ottiene il documento PDF contenente una firma da rimuovere.
- Rimuovere la firma digitale dal campo firma.
- Salvare il documento PDF come file PDF.
Includi file di progetto
Includi i file necessari nel progetto di sviluppo. Se stai creando un’applicazione client utilizzando Java, includi i file JAR necessari. Se utilizzi i servizi web, accertati 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 è implementato su JBoss)
- jbossall-client.jar (obbligatorio se AEM Forms è distribuito su JBoss)
Per informazioni sul percorso di questi file JAR, vedi Inclusi i file della libreria Java di AEM Forms.
Creare un client di firma
Prima di poter eseguire un'operazione del servizio di firma a livello di programmazione, è necessario creare un client del servizio di firma.
Ottieni il documento PDF contenente una firma da rimuovere
Per rimuovere una firma da un documento PDF, è necessario ottenere un documento PDF contenente una firma.
Rimuovi la firma digitale dal campo della firma
Per rimuovere correttamente una firma digitale da un documento di PDF, è necessario specificare il nome del campo della firma che contiene la firma digitale. È inoltre necessario disporre dell'autorizzazione per rimuovere la firma digitale. In caso contrario, si verificherà un'eccezione.
Salvare il documento PDF come file PDF
Dopo che il servizio di firma rimuove una firma digitale da un campo di firma, è possibile salvare il documento PDF come file PDF in modo che gli utenti possano aprirlo in Acrobat o Adobe Reader.
Consulta anche
Rimuovere le firme digitali utilizzando l’API Java
Rimuovere le firme digitali utilizzando l’API del servizio web
Inclusione dei file della libreria Java di AEM Forms
Rimuovere le firme digitali utilizzando l’API Java remove-digital-signatures-using-the-java-api
Rimuovere una firma digitale utilizzando Signature API (Java):
-
Includi file di progetto
Includi i file JAR dei client, ad esempio adobe-signatures-client.jar, nel percorso di classe del progetto Java.
-
Creare un client di firma.
- Creare un oggetto
ServiceClientFactorycontenente le proprietà di connessione. - Creare un oggetto
SignatureServiceClientutilizzando il relativo costruttore e passando l'oggettoServiceClientFactory.
- Creare un oggetto
-
Ottieni il documento PDF contenente una firma da rimuovere
- Creare un oggetto
java.io.FileInputStreamche rappresenta il documento PDF contenente la firma da rimuovere utilizzando il relativo costruttore e passando un valore stringa che specifica la posizione del documento PDF. - Creare un oggetto
com.adobe.idp.Documentutilizzando il relativo costruttore e passando l'oggettojava.io.FileInputStream.
- Creare un oggetto
-
Rimuovi la firma digitale dal campo firma
Rimuovere una firma digitale da un campo di firma richiamando il metodo
SignatureServiceClientdell'oggettoclearSignatureFielde passando i valori seguenti:- Oggetto
com.adobe.idp.Documentche rappresenta il documento di PDF contenente la firma da rimuovere. - Valore string che specifica il nome del campo firma contenente la firma digitale.
Il metodo
clearSignatureFieldrestituisce un oggettocom.adobe.idp.Documentche rappresenta il documento PDF da cui è stata rimossa la firma digitale. - Oggetto
-
Salvare il documento PDF come file PDF
- Creare un oggetto
java.io.Filee verificare che l'estensione del file sia .pdf. - Richiama il metodo
com.adobe.idp.Documentdell'oggettocopyToFile. Passa l'oggettojava.io.Fileper copiare il contenuto dell'oggettocom.adobe.idp.Documentnel file. Assicurarsi di utilizzare l'oggettoDocumentrestituito dal metodoclearSignatureField.
- Creare un oggetto
Consulta anche
Quick Start (modalità SOAP): rimozione di una firma digitale tramite l’API Java
Rimuovere le firme digitali utilizzando l’API del servizio web remove-digital-signatures-using-the-web-service-api
Rimuovere una firma digitale utilizzando l’API di firma (servizio web):
-
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.note note NOTE Sostituisci localhostcon l'indirizzo IP del server che ospita AEM Forms. -
Creare un client di firma
-
Creare un oggetto
SignatureServiceClientutilizzando il relativo costruttore predefinito. -
Creare un oggetto
SignatureServiceClient.Endpoint.Addressutilizzando il costruttoreSystem.ServiceModel.EndpointAddress. Passa un valore stringa che specifica il WSDL al servizio AEM Forms (ad esempio,http://localhost:8080/soap/services/SignatureService?WSDL). Non è necessario utilizzare l'attributolc_version. Questo attributo viene utilizzato quando si crea un riferimento a un servizio.) -
Creare un oggetto
System.ServiceModel.BasicHttpBindingottenendo il valore del campoSignatureServiceClient.Endpoint.Binding. Eseguire il cast del valore restituito inBasicHttpBinding. -
Impostare il campo
System.ServiceModel.BasicHttpBindingdell'oggettoMessageEncodingsuWSMessageEncoding.Mtom. Questo valore assicura che venga utilizzato MTOM. -
Abilita l’autenticazione HTTP di base eseguendo le seguenti attività:
- Assegnare il nome utente di AEM Forms al campo
SignatureServiceClient.ClientCredentials.UserName.UserName. - Assegnare il valore della password corrispondente al campo
SignatureServiceClient.ClientCredentials.UserName.Password. - Assegnare il valore costante
HttpClientCredentialType.Basical campoBasicHttpBindingSecurity.Transport.ClientCredentialType. - Assegnare il valore costante
BasicHttpSecurityMode.TransportCredentialOnlyal campoBasicHttpBindingSecurity.Security.Mode.
- Assegnare il nome utente di AEM Forms al campo
-
-
Ottieni il documento PDF contenente una firma da rimuovere
- Creare un oggetto
BLOButilizzando il relativo costruttore. L'oggettoBLOBviene utilizzato per memorizzare un documento di PDF contenente una firma digitale da rimuovere. - Creare un oggetto
System.IO.FileStreamrichiamandone il costruttore e passando un valore stringa che rappresenta la posizione del file del documento PDF firmato e la modalità di apertura del file. - Creare una matrice di byte che memorizza il contenuto dell'oggetto
System.IO.FileStream. È possibile determinare le dimensioni della matrice di byte ottenendo la proprietàSystem.IO.FileStreamdell'oggettoLength. - Compilare la matrice di byte con i dati di flusso richiamando il metodo
System.IO.FileStreamdell'oggettoRead. Passare la matrice di byte, la posizione iniziale e la lunghezza del flusso da leggere. - Compilare l'oggetto
BLOBassegnando la relativa proprietàMTOMal contenuto della matrice di byte.
- Creare un oggetto
-
Rimuovi la firma digitale dal campo firma
Rimuovere la firma digitale richiamando il metodo
SignatureServiceClientdell'oggettoclearSignatureFielde passando i valori seguenti:- Oggetto
BLOBcontenente il documento PDF firmato. - Valore string che rappresenta il nome del campo firma contenente la firma digitale da rimuovere.
Il metodo
clearSignatureFieldrestituisce un oggettoBLOBche rappresenta il documento PDF da cui è stata rimossa la firma digitale. - Oggetto
-
Salvare il documento PDF come file PDF
- Creare un oggetto
System.IO.FileStreamrichiamando il relativo costruttore e passando un valore stringa che rappresenta la posizione del file del documento di PDF contenente un campo firma vuoto e la modalità di apertura del file. - Creare una matrice di byte che memorizza il contenuto dell'oggetto
BLOBrestituito dal metodosign. Popolare la matrice di byte ottenendo il valore del membro datiBLOBdell'oggettoMTOM. - Creare un oggetto
System.IO.BinaryWriterrichiamandone il costruttore e passando l'oggettoSystem.IO.FileStream. - Scrivere il contenuto della matrice di byte nel file PDF richiamando il metodo
System.IO.BinaryWriterdell'oggettoWritee passando la matrice di byte.
- Creare un oggetto
Consulta anche
Richiamare AEM Forms tramite MTOM
Richiamare AEM Forms con SwaRef