Firma digitale e certificazione dei documenti digitally-signing-and-certifying-documents
Informazioni sul servizio Firma
Il servizio Firma consente alla tua organizzazione di proteggere la sicurezza e la privacy dei documenti Adobe PDF che distribuisce e riceve. Questo servizio utilizza le firme digitali e la certificazione per garantire che solo i destinatari a cui è destinato possano modificare i documenti. Poiché le funzioni di protezione vengono applicate al documento stesso, il documento rimane protetto e controllato per l'intero ciclo di vita. Un documento rimane protetto oltre il firewall, quando viene scaricato offline e quando viene inviato nuovamente all'organizzazione.
Nomi dei campi firma
Per alcune operazioni del servizio Firma è necessario specificare il nome del campo firma in cui viene eseguita un’operazione. Ad esempio, quando si firma un documento PDF, è necessario specificare il nome del campo firma da firmare. Si supponga che il nome completo di un campo firma sia form1[0].Form1[0].SignatureField1[0]
. Puoi specificare SignatureField1[0]
anziché form1[0].Form1[0].SignatureField1[0]
.
A volte un conflitto causa la firma del campo errato da parte del servizio Firma o l’esecuzione di un’altra operazione che richiede il nome del campo firma. Questo conflitto è il risultato del nome SignatureField1[0]
in due o più posizioni nello stesso documento PDF. Ad esempio, si consideri un documento PDF contenente due campi firma denominati form1[0].Form1[0].SignatureField1[0]
e form1[0].Form1[0].SubForm1[0].SignatureField1[0]
e specificare SignatureField1[0]
. In questo caso, il servizio Firma firma firma firma il primo campo firma rilevato durante l’iterazione su tutti i campi firma del documento.
Se all’interno di un documento PDF sono presenti più campi firma, è consigliabile specificare i nomi completi dei campi firma. Cioè, specifica form1[0].Form1[0].SignatureField1[0]
anziché SignatureField1[0]
.
È possibile eseguire queste attività utilizzando il servizio Firma:
- Aggiungere ed eliminare campi firma digitale in un documento PDF. (Vedi Aggiunta di campi firma.)
- Recupera i nomi dei campi firma presenti in un documento PDF. (Vedi Recupero dei nomi dei campi firma.)
- Modificare i campi firma. (Vedi Modifica dei campi firma.)
- Firma digitale dei documenti PDF. (Vedi Firma digitale di documenti PDF.)
- Certifica i documenti PDF. (Vedi Certificazione dei documenti PDF.)
- Convalida delle firme digitali in un documento PDF. (Vedi Verifica delle firme digitali.)
- Convalida di tutte le firme digitali presenti in un documento PDF. (Vedi Verifica di più firme digitali.)
- Rimuovere una firma digitale da un campo firma. (Vedi Rimozione di 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 firma possono essere visibili o invisibili. I firmatari possono utilizzare un campo firma preesistente oppure aggiungere un campo firma a livello di programmazione. In entrambi i casi, è necessario che il campo firma esista prima che sia possibile firmare un documento PDF.
È possibile aggiungere un campo firma a livello di programmazione utilizzando l’API Java del servizio Firma o l’API del servizio Web Firma. È possibile aggiungere più campi firma a un documento PDF; tuttavia, ogni nome del campo firma deve essere univoco.
Riepilogo dei passaggi summary-of-steps
Per aggiungere un campo firma a un documento PDF, eseguire le operazioni seguenti:
- Includi file di progetto.
- Creare un client di firma.
- Ottenere un documento PDF a cui viene aggiunto un campo firma.
- Aggiungere 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, assicurati di includere i file proxy.
I seguenti file JAR devono essere aggiunti al percorso di classe del progetto:
- adobe-livecycle-client.jar
- adobe-usermanager-client.jar
- adobe-signatures-client.jar
- adobe-utilities.jar (richiesto se AEM Forms è distribuito su JBoss)
- jbossall-client.jar (richiesto se AEM Forms è distribuito su JBoss)
Creare un client di firma
Prima di poter eseguire un’operazione del servizio Firma a livello di programmazione, è necessario creare un client del servizio Signature.
Ottenere un documento PDF al quale viene aggiunto un campo firma
È necessario ottenere un documento PDF a cui viene aggiunto un campo firma.
Aggiungere un campo firma
Per aggiungere correttamente un campo firma a un documento 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 PDF vengono bloccati dopo l’applicazione di una firma al campo firma.
Salvare il documento PDF come file PDF
Dopo aver aggiunto un campo firma al documento PDF, è possibile salvarlo come file PDF in modo che gli utenti possano aprirlo in Acrobat o Adobe Reader.
Consulta anche
Inclusione dei file libreria Java di AEM Forms
Impostazione delle proprietà di connessione
Firma digitale di documenti PDF
Aggiungere campi firma utilizzando l’API Java add-signature-fields-using-the-java-api
Aggiungere un campo firma utilizzando l’API Firma (Java):
-
Includi file di progetto
Includi file JAR client, ad esempio adobe-signatures-client.jar, nel percorso di classe del progetto Java.
-
Creare un client di firma
- Crea un
ServiceClientFactory
oggetto contenente le proprietà di connessione. - Crea un
SignatureServiceClient
utilizzando il relativo costruttore e passandoServiceClientFactory
oggetto.
- Crea un
-
Ottenere un documento PDF al quale viene aggiunto un campo firma
- Crea un
java.io.FileInputStream
oggetto che rappresenta il documento PDF a cui viene aggiunto un campo firma utilizzando il relativo costruttore e passando un valore di stringa che specifica la posizione del documento PDF. - Crea un
com.adobe.idp.Document
utilizzando il relativo costruttore e passandojava.io.FileInputStream
oggetto.
- Crea un
-
Aggiungere un campo firma
-
Crea un
PositionRectangle
oggetto che specifica la posizione del campo firma utilizzando il relativo costruttore. All'interno del costruttore, specificare i valori delle coordinate. -
Se necessario, crea un
FieldMDPOptions
oggetto che specifica i campi bloccati quando viene applicata una firma digitale al campo firma. -
Aggiungere un campo firma a un documento PDF richiamando il
SignatureServiceClient
dell’oggettoaddSignatureField
e passando i seguenti valori:- A
com.adobe.idp
.Document
oggetto che rappresenta il documento PDF a cui viene aggiunto un campo firma. - Valore stringa che specifica il nome del campo firma.
- A
java.lang.Integer
che rappresenta il numero di pagina a cui viene aggiunto un campo firma. - A
PositionRectangle
oggetto che specifica la posizione del campo firma. - A
FieldMDPOptions
oggetto che specifica i campi del documento PDF bloccati dopo l’applicazione di una firma digitale al campo firma. Questo valore del parametro è facoltativo ed è possibile trasmetterenull
.
- A
-
A
PDFSeedValueOptions
oggetto che specifica diversi valori di esecuzione. Questo valore del parametro è facoltativo ed è possibile trasmetterenull
.La
addSignatureField
restituisce uncom.adobe.idp
.Document
oggetto che rappresenta un documento PDF contenente un campo firma.
note note NOTE È possibile richiamare SignatureServiceClient
dell’oggettoaddInvisibleSignatureField
per aggiungere un campo firma invisibile. -
-
Salvare il documento PDF come file PDF
- Crea un
java.io.File
e assicurati che l'estensione del file sia .pdf. - Richiama il
com.adobe.idp
.Document
dell’oggettocopyToFile
per copiare il contenuto delDocument
al file. Assicurati di utilizzarecom.adobe.idp
.Document
oggetto restituito daaddSignatureField
metodo .
- Crea un
Consulta anche
Avvio rapido API Servizio firma
Aggiungere campi firma utilizzando l’API del servizio Web add-signature-fields-using-the-web-service-api
Per aggiungere un campo firma utilizzando l’API Firma (servizio Web):
-
Includi file di progetto
Creare un progetto Microsoft .NET che utilizza MTOM. Assicurati di utilizzare la seguente definizione WSDL:
http://localhost:8080/soap/services/SignatureService?WSDL&lc_version=9.0.1
.note note NOTE Sostituisci localhost
con l’indirizzo IP del server che ospita AEM Forms. -
Creare un client di firma
-
Crea un
SignatureServiceClient
utilizzando il relativo costruttore predefinito. -
Crea un
SignatureServiceClient.Endpoint.Address
utilizzandoSystem.ServiceModel.EndpointAddress
costruttore. Passa un valore stringa che specifica il WSDL al servizio AEM Forms (ad esempio,http://localhost:8080/soap/services/SignatureService?WSDL
). Non è necessario utilizzare illc_version
attributo. Questo attributo viene utilizzato quando si crea un riferimento a un servizio.) -
Crea un
System.ServiceModel.BasicHttpBinding
ottenendo il valore delSignatureServiceClient.Endpoint.Binding
campo . Imposta il valore restituito suBasicHttpBinding
. -
Imposta la
System.ServiceModel.BasicHttpBinding
dell’oggettoMessageEncoding
campo aWSMessageEncoding.Mtom
. Questo valore assicura che venga utilizzato MTOM. -
Abilita l’autenticazione HTTP di base eseguendo le seguenti attività:
- Assegnare il nome utente del modulo di AEM al campo
SignatureServiceClient.ClientCredentials.UserName.UserName
. - Assegna il valore della password corrispondente al campo
SignatureServiceClient.ClientCredentials.UserName.Password
. - Assegna il valore costante
HttpClientCredentialType.Basic
al campoBasicHttpBindingSecurity.Transport.ClientCredentialType
. - Assegna il valore costante
BasicHttpSecurityMode.TransportCredentialOnly
al campoBasicHttpBindingSecurity.Security.Mode
.
- Assegnare il nome utente del modulo di AEM al campo
-
-
Ottenere un documento PDF al quale viene aggiunto un campo firma
- Crea un
BLOB
utilizzando il relativo costruttore. LaBLOB
viene utilizzato per memorizzare il documento PDF che conterrà un campo firma. - Crea un
System.IO.FileStream
richiamando il relativo costruttore e passando un valore di stringa che rappresenta la posizione del file del documento PDF e la modalità di apertura del file. - Creare un array di byte che memorizza il contenuto del
System.IO.FileStream
oggetto. È possibile determinare le dimensioni dell'array di byte ottenendo ilSystem.IO.FileStream
dell’oggettoLength
proprietà. - Compilare l'array di byte con i dati del flusso richiamando il
System.IO.FileStream
dell’oggettoRead
e passare l'array di byte, la posizione iniziale e la lunghezza del flusso da leggere. - Popolare
BLOB
oggetto assegnando il relativoMTOM
con il contenuto dell'array di byte.
- Crea un
-
Aggiungere un campo firma
Aggiungere un campo firma al documento PDF richiamando il
SignatureServiceClient
dell’oggettoaddSignatureField
e passando i seguenti valori:- A
BLOB
oggetto che rappresenta il documento PDF a cui viene aggiunto un campo firma. - Valore stringa che specifica il nome del campo firma.
- Un valore intero che rappresenta il numero di pagina a cui viene aggiunto un campo firma.
- A
PositionRect
oggetto che specifica la posizione del campo firma. - A
FieldMDPOptions
oggetto che specifica i campi del documento PDF bloccati dopo l’applicazione di una firma digitale al campo firma. Questo valore del parametro è facoltativo ed è possibile trasmetterenull
. - A
PDFSeedValueOptions
oggetto che specifica diversi valori di esecuzione. Questo valore del parametro è facoltativo ed è possibile trasmetterenull
.
La
addSignatureField
restituisce unBLOB
oggetto che rappresenta un documento PDF contenente un campo firma. - A
-
Salvare il documento PDF come file PDF
- Crea un
System.IO.FileStream
richiamando il relativo costruttore e passando un valore di stringa che rappresenta la posizione del file del documento PDF che conterrà il campo firma e la modalità di apertura del file. - Creare un array di byte che memorizza il contenuto del
BLOB
oggetto restituito daaddSignatureField
metodo . Compilare l’array di byte ottenendo il valore delBLOB
dell’oggettobinaryData
membro dati. - Crea un
System.IO.BinaryWriter
richiamando il relativo costruttore e passandoSystem.IO.FileStream
oggetto. - Scrivi il contenuto dell’array di byte in un file PDF richiamando il
System.IO.BinaryWriter
dell’oggettoWrite
e passare l'array di byte.
- Crea un
Consulta anche
Richiamo di AEM Forms tramite MTOM
Richiamo di AEM Forms tramite SwaRef
Recupero dei nomi dei campi firma retrieving-signature-field-names
È possibile recuperare i nomi di tutti i campi firma presenti in un documento PDF che si desidera firmare o certificare. Se non si è certi dei nomi dei campi firma presenti in un documento PDF o si desidera verificarli, è possibile recuperarli a livello di programmazione. Il servizio Firma restituisce il nome completo del campo firma, ad esempio form1[0].grantApplication[0].page1[0].SignatureField1[0]
.
Riepilogo dei passaggi summary_of_steps-1
Per recuperare i nomi dei campi firma, eseguire le operazioni seguenti:
- Includi file di progetto.
- Creare un client di firma.
- Ottenere il documento PDF contenente i campi firma.
- Recupera 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, assicurati di includere i file proxy.
I seguenti file JAR devono essere aggiunti al percorso di classe del progetto:
- adobe-livecycle-client.jar
- adobe-usermanager-client.jar
- adobe-signatures-client.jar
- adobe-utilities.jar (richiesto se AEM Forms è distribuito su JBoss)
- jbossall-client.jar (richiesto se AEM Forms è distribuito su JBoss)
Per informazioni sulla posizione di questi file JAR, vedi Inclusione dei file libreria Java di AEM Forms.
Creare un client di firma
Prima di poter eseguire un’operazione del servizio Firma a livello di programmazione, è necessario creare un client del servizio Signature.
Ottenere il documento PDF contenente i campi firma
Recupera un documento PDF contenente campi firma.
Recupera i nomi dei campi firma
È possibile recuperare i nomi dei campi firma dopo aver recuperato un documento PDF contenente uno o più campi firma.
Consulta anche
Recupera i nomi dei campi firma utilizzando l’API Java
Recupera il campo firma utilizzando l’API del servizio Web
Inclusione dei file libreria Java di AEM Forms
Impostazione delle proprietà di connessione
Recupera i nomi dei campi firma utilizzando l’API Java retrieve-signature-field-names-using-the-java-api
Recupera i nomi dei campi firma utilizzando l’API firma (Java):
-
Includi file di progetto
Includi file JAR client, come adobe-signatures-client.jar, nel percorso di classe del progetto Java.
-
Creare un client di firma
- Crea un
ServiceClientFactory
oggetto contenente le proprietà di connessione. - Crea un
SignatureServiceClient
utilizzando il relativo costruttore e passandoServiceClientFactory
oggetto.
- Crea un
-
Ottenere il documento PDF contenente i campi firma
- Crea un
java.io.FileInputStream
oggetto che rappresenta il documento PDF contenente campi firma utilizzando il relativo costruttore e passando un valore di stringa che specifica la posizione del documento PDF. - Crea un
com.adobe.idp.Document
utilizzando il relativo costruttore e passandojava.io.FileInputStream
oggetto.
- Crea un
-
Recupera i nomi dei campi firma
- Recupera i nomi dei campi firma richiamando il
SignatureServiceClient
dell’oggettogetSignatureFieldList
e passarecom.adobe.idp.Document
oggetto contenente il documento PDF contenente i campi firma. Questo metodo restituisce unjava.util.List
oggetto in cui ogni elemento contiene unPDFSignatureField
oggetto. Utilizzando questo oggetto è possibile ottenere informazioni aggiuntive su un campo firma, ad esempio se è visibile. - Itera attraverso il
java.util.List
oggetto per determinare se sono presenti nomi di campo firma. Per ogni campo firma del documento PDF, è possibile ottenere unPDFSignatureField
oggetto. Per ottenere il nome del campo firma, richiamare l’PDFSignatureField
dell’oggettogetName
metodo . Questo metodo restituisce un valore stringa che specifica il nome del campo firma.
- Recupera i nomi dei campi firma richiamando il
Consulta anche
Recupero dei nomi dei campi firma
Avvio rapido (modalità SOAP): Recupero dei nomi dei campi firma tramite API Java
Inclusione dei file libreria Java di AEM Forms
Impostazione delle proprietà di connessione
Recupera il campo firma utilizzando l’API del servizio Web retrieve-signature-field-using-the-web-service-api
Recupera i nomi dei campi firma utilizzando l’API firma (servizio Web):
-
Includi file di progetto
Creare un progetto Microsoft .NET che utilizza MTOM. Assicurati di utilizzare la seguente definizione WSDL:
http://localhost:8080/soap/services/SignatureService?WSDL&lc_version=9.0.1
.note note NOTE Sostituisci localhost
con l’indirizzo IP del server che ospita AEM Forms. -
Creare un client di firma
-
Crea un
SignatureServiceClient
utilizzando il relativo costruttore predefinito. -
Crea un
SignatureServiceClient.Endpoint.Address
utilizzandoSystem.ServiceModel.EndpointAddress
costruttore. Passa un valore stringa che specifica il WSDL al servizio AEM Forms (ad esempio,http://localhost:8080/soap/services/SignatureService?WSDL
). Non è necessario utilizzare illc_version
attributo. Questo attributo viene utilizzato quando si crea un riferimento a un servizio.) -
Crea un
System.ServiceModel.BasicHttpBinding
ottenendo il valore delSignatureServiceClient.Endpoint.Binding
campo . Imposta il valore restituito suBasicHttpBinding
. -
Imposta la
System.ServiceModel.BasicHttpBinding
dell’oggettoMessageEncoding
campo aWSMessageEncoding.Mtom
. Questo valore assicura che venga utilizzato MTOM. -
Abilita l’autenticazione HTTP di base eseguendo le seguenti attività:
- Assegnare il nome utente del modulo di AEM al campo
SignatureServiceClient.ClientCredentials.UserName.UserName
. - Assegna il valore della password corrispondente al campo
SignatureServiceClient.ClientCredentials.UserName.Password
. - Assegna il valore costante
HttpClientCredentialType.Basic
al campoBasicHttpBindingSecurity.Transport.ClientCredentialType
. - Assegna il valore costante
BasicHttpSecurityMode.TransportCredentialOnly
al campoBasicHttpBindingSecurity.Security.Mode
.
- Assegnare il nome utente del modulo di AEM al campo
-
-
Ottenere il documento PDF contenente i campi firma
- Crea un
BLOB
utilizzando il relativo costruttore. LaBLOB
viene utilizzato per memorizzare il documento PDF contenente campi firma. - Crea un
System.IO.FileStream
richiamando il relativo costruttore e passando un valore di stringa che rappresenta la posizione del file del documento PDF e la modalità di apertura del file. - Creare un array di byte che memorizza il contenuto del
System.IO.FileStream
oggetto. È possibile determinare le dimensioni dell'array di byte ottenendo ilSystem.IO.FileStream
dell’oggettoLength
proprietà. - Compilare l'array di byte con i dati del flusso richiamando il
System.IO.FileStream
dell’oggettoRead
e passare l'array di byte, la posizione iniziale e la lunghezza del flusso da leggere. - Popolare
BLOB
oggetto assegnando il relativoMTOM
il contenuto dell'array di byte.
- Crea un
-
Recupera i nomi dei campi firma
- Recupera i nomi dei campi firma richiamando
SignatureServiceClient
dell’oggettogetSignatureFieldList
e passareBLOB
oggetto contenente il documento PDF contenente i campi firma. Questo metodo restituisce unMyArrayOfPDFSignatureField
oggetto raccolta in cui ogni elemento contiene unPDFSignatureField
oggetto. - Itera attraverso il
MyArrayOfPDFSignatureField
oggetto per determinare se sono presenti nomi di campo firma. Per ogni campo firma del documento PDF, è possibile ottenere unPDFSignatureField
oggetto. Per ottenere il nome del campo firma, richiamare l’PDFSignatureField
dell’oggettogetName
metodo . Questo metodo restituisce un valore stringa che specifica il nome del campo firma.
- Recupera i nomi dei campi firma richiamando
Consulta anche
Recupero dei nomi dei campi firma
Richiamo di AEM Forms tramite MTOM
Richiamo di AEM Forms tramite SwaRef
Modifica dei campi firma modifying-signature-fields
È possibile modificare i campi firma che si trovano in un documento PDF utilizzando l’API Java e l’API del servizio Web. La modifica di un campo firma comporta la manipolazione dei valori del dizionario di blocco del campo firma o dei valori del dizionario dei valori di seed.
A dizionario a blocchi di campo specifica un elenco di campi bloccati al momento della firma del campo firma. Un campo bloccato impedisce agli utenti di apportare modifiche al campo. A dizionario dei valori di seed contiene informazioni di vincolo utilizzate al momento dell'applicazione della firma. Ad esempio, è possibile modificare le autorizzazioni per controllare le azioni che possono verificarsi senza annullare la validità di una firma.
Modificando un campo firma esistente, è possibile apportare modifiche al documento PDF per riflettere i cambiamenti dei requisiti aziendali. Ad esempio, un nuovo requisito aziendale potrebbe richiedere il blocco di tutti i campi del documento dopo la firma del documento.
In questa sezione viene illustrato come modificare un campo firma modificando sia i valori del dizionario di blocco dei campi che i valori del dizionario dei valori dei valori di seed. Le modifiche apportate al dizionario di blocco dei campi firma comportano il blocco di tutti i campi del documento PDF al momento della firma di un campo firma. Le modifiche apportate al dizionario dei valori di seed non consentono l’utilizzo di tipi specifici di modifiche al documento.
Riepilogo dei passaggi summary_of_steps-2
Per modificare i campi firma presenti in un documento PDF, eseguire le operazioni seguenti:
- Includi file di progetto.
- Creare un client di firma.
- Ottenere 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, assicurati di includere i file proxy.
I seguenti file JAR devono essere aggiunti al percorso di classe del progetto:
- adobe-livecycle-client.jar
- adobe-usermanager-client.jar
- adobe-signatures-client.jar
- adobe-utilities.jar (richiesto se AEM Forms è distribuito su JBoss)
- jbossall-client.jar (richiesto se AEM Forms è distribuito su JBoss)
Per informazioni sulla posizione di questi file JAR, vedi Inclusione dei file libreria Java di LiveCycle.
Creare un client di firma
Prima di poter eseguire un’operazione del servizio Firma a livello di programmazione, è necessario creare un client del servizio Signature.
Ottenere il documento PDF contenente il campo firma da modificare
Recupera un documento PDF contenente il campo firma da modificare.
Impostare i valori dei dizionari
Per modificare un campo firma, assegnare valori al dizionario di blocco dei campi o al dizionario dei valori di seed corrispondente. Per specificare i valori del dizionario di blocco dei campi firma è necessario specificare i campi del documento PDF che sono bloccati al momento della firma del campo firma. (Questa sezione illustra come bloccare tutti i campi.)
È possibile impostare i seguenti valori del dizionario dei valori di seed:
-
Controllo delle revisioni: Specifica se il controllo di revoca viene eseguito quando viene applicata una firma al campo firma.
-
Opzioni del certificato: Assegna valori al dizionario dei valori di seed del certificato. Prima di specificare le opzioni del certificato, è consigliabile acquisire familiarità con un dizionario dei valori di seed del certificato. (Vedi Riferimento PDF.)
-
Opzioni digest: Assegna algoritmi digest utilizzati per la firma. I valori validi sono SHA1, SHA256, SHA384, SHA512 e RIPEMD160.
-
Filtro: Specifica il filtro utilizzato con il campo firma. Ad esempio, puoi utilizzare il filtro Adobe.PPKLite . (Vedi Riferimento PDF.)
-
Opzioni contrassegno: Specifica i valori dei flag associati al campo 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. Ecco le posizioni Bit:
- 1(Filtro): Gestore di firme da utilizzare per la firma del campo firma
- 2 (SubFilter): Matrice di nomi che indicano codifiche accettabili da utilizzare per la firma
- 3 (V): Numero di versione minimo richiesto del gestore di firme da utilizzare per firmare il campo firma
- 4 (Motivi): Matrice di stringhe che specificano possibili motivi per la firma di un documento
- 5 (PDFLegalWarnings): Un array di stringhe che specificano possibili attestazioni legali
-
Attestati legali: Quando un documento è certificato, viene automaticamente analizzato per specifici tipi di contenuto che possono rendere ambigui o fuorvianti i contenuti visibili di un documento. Ad esempio, un’annotazione può oscurare il testo importante per comprendere cosa viene certificato. Il processo di scansione genera avvisi che indicano la presenza di questo tipo di contenuto. Fornisce inoltre una spiegazione aggiuntiva del contenuto che potrebbe aver generato avvisi.
-
Autorizzazioni: Specifica le autorizzazioni che possono essere utilizzate in un documento PDF senza invalidare la firma.
-
Motivi: Specifica i motivi per cui il documento deve essere firmato.
-
Timestamp: Specifica le opzioni di marca temporale. Ad esempio, è possibile impostare l’URL del server di marca temporale utilizzato.
-
Versione: Specifica il numero di versione minimo del gestore di firme da utilizzare per firmare il campo firma.
Modificare il campo firma
Dopo aver creato un client del servizio Firma, recuperare il documento PDF contenente il campo firma da modificare e impostare i valori del dizionario, è possibile richiedere al servizio Firma di modificare il campo firma. Il servizio Firma restituisce quindi un documento PDF contenente il campo firma modificato. Il documento PDF originale non viene modificato.
Salvare il documento PDF come file PDF
Salvare come file PDF il documento PDF contenente il campo firma modificato in modo che gli utenti possano aprirlo in Acrobat o Adobe Reader.
Consulta anche
Inclusione dei file libreria Java di AEM Forms
Impostazione delle proprietà di connessione
Avvio rapido API Servizio firma
Firma digitale di documenti PDF
Modificare i campi firma tramite l’API Java modify-signature-fields-using-the-java-api
Modificare un campo firma utilizzando l’API Firma (Java):
-
Includi file di progetto
Includi file JAR client, ad esempio adobe-signatures-client.jar, nel percorso di classe del progetto Java.
-
Creare un client di firma
- Crea un
ServiceClientFactory
oggetto contenente le proprietà di connessione. - Crea un
SignatureServiceClient
utilizzando il relativo costruttore e passandoServiceClientFactory
oggetto.
- Crea un
-
Ottenere il documento PDF contenente il campo firma da modificare
- Crea un
java.io.FileInputStream
oggetto che rappresenta il documento PDF contenente il campo firma da modificare utilizzando il relativo costruttore e passando un valore di stringa che specifica la posizione del documento PDF. - Crea un
com.adobe.idp.Document
utilizzando il relativo costruttore e passandojava.io.FileInputStream
oggetto.
- Crea un
-
Impostare i valori dei dizionari
- Crea un
PDFSignatureFieldProperties
utilizzando il relativo costruttore. APDFSignatureFieldProperties
l'oggetto memorizza le informazioni sul dizionario di blocco dei campi firma e sul dizionario dei valori di seed. - Crea un
PDFSeedValueOptionSpec
utilizzando il relativo costruttore. Questo oggetto consente di impostare i valori del dizionario dei valori di seed. - Disabilitare le modifiche al documento PDF richiamando il
PDFSeedValueOptionSpec
dell’oggettosetMdpValue
e passareMDPPermissions.NoChanges
valore di enumerazione. - Crea un
FieldMDPOptionSpec
utilizzando il relativo costruttore. Questo oggetto consente di impostare i valori del dizionario di blocco dei campi firma. - Blocca tutti i campi nel documento PDF richiamando il
FieldMDPOptionSpec
dell’oggettosetMdpValue
e passareFieldMDPAction.ALL
valore di enumerazione. - Imposta le informazioni sul dizionario del valore di seed richiamando il
PDFSignatureFieldProperties
dell’oggettosetSeedValue
e passarePDFSeedValueOptionSpec
oggetto. - Impostare le informazioni sul dizionario di blocco dei campi firma richiamando
PDFSignatureFieldProperties
dell’oggettosetFieldMDP
e passareFieldMDPOptionSpec
oggetto.
note note NOTE Per visualizzare tutti i valori del dizionario dei valori di seed che è possibile impostare, vedi PDFSeedValueOptionSpec
riferimento della classe. (Vedi Riferimento API di AEM Forms.) - Crea un
-
Modificare il campo firma
Modificare il campo firma richiamando il
SignatureServiceClient
dell’oggettomodifySignatureField
e passando i seguenti valori:- La
com.adobe.idp.Document
oggetto che memorizza il documento PDF contenente il campo firma da modificare - Valore stringa che specifica il nome del campo firma
- La
PDFSignatureFieldProperties
oggetto che memorizza informazioni sul dizionario di blocco dei campi firma e sul dizionario dei valori di seed
La
modifySignatureField
restituisce uncom.adobe.idp.Document
oggetto che memorizza un documento PDF contenente il campo firma modificato. - La
-
Salvare il documento PDF come file PDF
- Crea un
java.io.File
e assicurati che l'estensione del nome del file sia .pdf. - Richiama il
com.adobe.idp.Document
dell’oggettocopyToFile
per copiare il contenuto delcom.adobe.idp.Document
al file. Assicurati di utilizzarecom.adobe.idp.Document
oggetto chemodifySignatureField
metodo restituito.
- Crea un
Modificare i campi firma utilizzando l’API del servizio Web modify-signature-fields-using-the-web-service-api
Modificare un campo firma utilizzando l’API Firma (servizio Web):
-
Includi file di progetto
Creare un progetto Microsoft .NET che utilizza MTOM. Assicurati di utilizzare la seguente definizione WSDL:
http://localhost:8080/soap/services/SignatureService?WSDL&lc_version=9.0.1
.note note NOTE Sostituisci localhost
con l’indirizzo IP del server che ospita AEM Forms. -
Creare un client di firma
-
Crea un
SignatureServiceClient
utilizzando il relativo costruttore predefinito. -
Crea un
SignatureServiceClient.Endpoint.Address
utilizzandoSystem.ServiceModel.EndpointAddress
costruttore. Passa un valore stringa che specifica il WSDL al servizio AEM Forms (ad esempio,http://localhost:8080/soap/services/SignatureService?WSDL
). Non è necessario utilizzare illc_version
attributo. Questo attributo viene utilizzato quando si crea un riferimento a un servizio.) -
Crea un
System.ServiceModel.BasicHttpBinding
ottenendo il valore delSignatureServiceClient.Endpoint.Binding
campo . Imposta il valore restituito suBasicHttpBinding
. -
Imposta la
System.ServiceModel.BasicHttpBinding
dell’oggettoMessageEncoding
campo aWSMessageEncoding.Mtom
. Questo valore assicura che venga utilizzato MTOM. -
Abilita l’autenticazione HTTP di base eseguendo le seguenti attività:
- Assegnare il nome utente del modulo di AEM al campo
SignatureServiceClient.ClientCredentials.UserName.UserName
. - Assegna il valore della password corrispondente al campo
SignatureServiceClient.ClientCredentials.UserName.Password
. - Assegna il valore costante
HttpClientCredentialType.Basic
al campoBasicHttpBindingSecurity.Transport.ClientCredentialType
. - Assegna il valore costante
BasicHttpSecurityMode.TransportCredentialOnly
al campoBasicHttpBindingSecurity.Security.Mode
.
- Assegnare il nome utente del modulo di AEM al campo
-
-
Ottenere il documento PDF contenente il campo firma da modificare
- Crea un
BLOB
utilizzando il relativo costruttore. LaBLOB
viene utilizzato per memorizzare il documento PDF contenente il campo firma da modificare. - Crea un
System.IO.FileStream
richiamando il relativo costruttore e passando un valore di stringa che rappresenta la posizione del file del documento PDF e la modalità di apertura del file. - Creare un array di byte che memorizza il contenuto del
System.IO.FileStream
oggetto. È possibile determinare le dimensioni dell'array di byte ottenendo ilSystem.IO.FileStream
dell’oggettoLength
proprietà. - Compilare l'array di byte con i dati del flusso richiamando il
System.IO.FileStream
dell’oggettoRead
e passare l'array di byte, la posizione iniziale e la lunghezza del flusso da leggere. - Popolare
BLOB
oggetto assegnando il relativoMTOM
proprietà il contenuto dell'array di byte.
- Crea un
-
Impostare i valori dei dizionari
- Crea un
PDFSignatureFieldProperties
utilizzando il relativo costruttore. Questo oggetto memorizza le informazioni sul dizionario di blocco dei campi firma e sul dizionario dei valori di seed. - Crea un
PDFSeedValueOptionSpec
utilizzando il relativo costruttore. Questo oggetto consente di impostare i valori del dizionario dei valori di seed. - Disabilitare le modifiche al documento PDF assegnando il
MDPPermissions.NoChanges
valore di enumerazione nelPDFSeedValueOptionSpec
dell’oggettomdpValue
membro dati. - Crea un
FieldMDPOptionSpec
utilizzando il relativo costruttore. Questo oggetto consente di impostare i valori del dizionario di blocco dei campi firma. - Bloccare tutti i campi nel documento PDF assegnando il
FieldMDPAction.ALL
valore di enumerazione nelFieldMDPOptionSpec
dell’oggettomdpValue
membro dati. - Impostare le informazioni sul dizionario del valore di seed assegnando
PDFSeedValueOptionSpec
dell'oggettoPDFSignatureFieldProperties
dell’oggettoseedValue
membro dati. - Impostare le informazioni sul dizionario di blocco dei campi firma assegnando
FieldMDPOptionSpec
dell'oggettoPDFSignatureFieldProperties
dell’oggettofieldMDP
membro dati.
note note NOTE Per visualizzare tutti i valori del dizionario dei valori di seed che è possibile impostare, vedi PDFSeedValueOptionSpec
riferimento della classe. (Vedi Riferimento API di AEM Forms). - Crea un
-
Modificare il campo firma
Modificare il campo firma richiamando il
SignatureServiceClient
dell’oggettomodifySignatureField
e passando i seguenti valori:- La
BLOB
oggetto che memorizza il documento PDF contenente il campo firma da modificare - Valore stringa che specifica il nome del campo firma
- La
PDFSignatureFieldProperties
oggetto che memorizza informazioni sul dizionario di blocco dei campi firma e sul dizionario dei valori di seed
La
modifySignatureField
restituisce unBLOB
oggetto che memorizza un documento PDF contenente il campo firma modificato. - La
-
Salvare il documento PDF come file PDF
- Crea un
System.IO.FileStream
richiamando il relativo costruttore e passando un valore di stringa che rappresenta la posizione del file del documento PDF che conterrà il campo firma e la modalità di apertura del file. - Creare un array di byte che memorizza il contenuto del
BLOB
oggetto cheaddSignatureField
restituisce il metodo . Compilare l’array di byte ottenendo il valore delBLOB
dell’oggettoMTOM
membro dati. - Crea un
System.IO.BinaryWriter
richiamando il relativo costruttore e passandoSystem.IO.FileStream
oggetto. - Scrivi il contenuto dell’array di byte in un file PDF richiamando il
System.IO.BinaryWriter
dell’oggettoWrite
e passare l'array di byte.
- Crea un
Consulta anche
Richiamo di AEM Forms tramite MTOM
Richiamo di AEM Forms tramite SwaRef
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 con cui i firmatari si identificano e fanno dichiarazioni su un documento. La tecnologia utilizzata per la firma digitale dei documenti aiuta a garantire che sia il firmatario che i destinatari siano chiari su ciò che è stato firmato e fiduciosi che il documento non sia stato modificato dopo la firma.
I documenti PDF sono firmati tramite tecnologie a chiave pubblica. Un firmatario ha due chiavi: una chiave pubblica e una chiave privata. La chiave privata viene memorizzata nella credenziale di un utente che deve essere disponibile al momento della firma. La chiave pubblica è memorizzata nel certificato dell’utente e deve essere disponibile ai destinatari per convalidare la firma. Le informazioni sui certificati revocati si trovano nelle risposte degli elenchi di revoche dei certificati (CRL) e del protocollo di stato dei certificati online (OCSP) distribuite dalle autorità di certificazione (CA). L’ora della firma può essere ottenuta da una fonte attendibile nota come Autorità di marcatura temporale.
È possibile firmare digitalmente i documenti PDF a livello di programmazione. Durante la firma digitale di un documento PDF, è necessario fare riferimento a una credenziale di protezione esistente in AEM Forms. La credenziale è la chiave privata utilizzata per la firma.
Quando un documento PDF viene firmato, il servizio Firma esegue i seguenti passaggi:
- Il servizio Signature recupera la credenziale dal TrustStore passando l'alias specificato nella richiesta.
- Il TrustStore cerca la credenziale specificata.
- La credenziale viene restituita al servizio Firma e viene utilizzata per firmare il documento. La credenziale viene anche memorizzata nella cache rispetto all’alias per le richieste future.
Per informazioni sulla gestione delle credenziali di protezione, consulta la guida all’installazione e alla distribuzione di AEM Forms* per il server delle applicazioni.
PDFOperationException
. Per risolvere il problema, convertire il file XDP in un file PDF utilizzando il servizio Utilità di PDF e quindi passare il file PDF convertito a un’operazione del servizio Signature. (Vedi Utilizzo delle utility di PDF.)Cipher in Shield credenziale HSM
Quando si utilizza una credenziale HSM Cipher in Shield per firmare o certificare un documento PDF, non è possibile utilizzare la nuova credenziale finché non viene riavviato il server dell'applicazione J2EE in cui viene distribuito AEM Forms. Tuttavia, è possibile impostare un valore di configurazione, in modo che l'operazione di firma o certificazione funzioni senza riavviare il server dell'applicazione J2EE.
Puoi aggiungere il seguente valore di configurazione nel file cknfastrc, che si trova in /opt/nfast/cknfastrc (o c:\nfast\cknfastrc):
CKNFAST_ASSUME_SINGLE_PROCESS=0
Dopo aver aggiunto questo valore di configurazione al file cknfastrc, è possibile utilizzare la nuova credenziale senza riavviare il server dell'applicazione J2EE.
Firma non attendibile
Durante la certificazione e la firma dello stesso documento PDF, se la firma di certificazione non è attendibile, viene visualizzato un triangolo giallo rispetto alla prima firma all’apertura del documento PDF in Acrobat o Adobe Reader. La firma di certificazione deve essere attendibile per evitare questa situazione.
Firma di documenti che sono moduli basati su XFA
Se tenti di firmare un modulo basato su XFA utilizzando l’API del servizio Firma, i dati potrebbero mancare nella View
Signed
Version
in Acrobat. Ad esempio, considera il seguente flusso di lavoro:
- Se si utilizza un file XDP creato utilizzando Designer, è possibile unire una struttura del modulo contenente un campo firma e dati XML contenenti i dati del modulo. Il servizio Forms consente di generare un documento PDF interattivo.
- È possibile firmare il documento PDF utilizzando l’API del servizio Firma.
Riepilogo dei passaggi summary_of_steps-3
Per firmare digitalmente un documento PDF, eseguire le operazioni seguenti:
- Includi file di progetto.
- Creare un client del servizio Firma.
- Richiedere la firma del documento PDF.
- 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, assicurati di includere i file proxy.
I seguenti file JAR devono essere aggiunti al percorso di classe del progetto:
- adobe-livecycle-client.jar
- adobe-usermanager-client.jar
- adobe-signatures-client.jar
- adobe-utilities.jar (richiesto se AEM Forms è distribuito su JBoss)
- jbossall-client.jar (richiesto se AEM Forms è distribuito su JBoss)
Creare un client di firme
Prima di poter eseguire un’operazione del servizio Firma a livello di programmazione, è necessario creare un client del servizio Signature.
Richiedere la firma del documento PDF
Per firmare un documento PDF, è necessario ottenere un documento PDF contenente un campo firma. Se un documento PDF non contiene un campo firma, non può essere firmato. È possibile aggiungere un campo firma utilizzando Designer o a livello di programmazione.
Firma il documento PDF
Quando si firma un documento PDF, è possibile impostare le opzioni di esecuzione utilizzate dal servizio Firma. Puoi impostare le seguenti opzioni:
- Opzioni di aspetto
- Controllo della revoca
- Valori di marca temporale
Puoi impostare le opzioni di aspetto utilizzando una PDFSignatureAppearanceOptionSpec
oggetto. Ad esempio, è possibile visualizzare la data all’interno di una firma richiamando il PDFSignatureAppearanceOptionSpec
dell’oggetto setShowDate
metodo e passaggio true
.
È inoltre possibile specificare se eseguire o meno un controllo di revoca che determini la revoca del certificato utilizzato per la firma digitale di un documento PDF. Per eseguire il controllo di revoca, è possibile specificare uno dei seguenti valori:
- NoCheck: Non eseguire il controllo di revoca.
- BestEffort: Tentare sempre di verificare la revoca di tutti i certificati nella catena. Se si verifica un problema nel controllo, si presume che la revoca sia valida. Se si verifica un errore, si supponga che il certificato non sia revocato.
- CheckIfAvailable: Se sono disponibili informazioni sulla revoca, verificare la revoca di tutti i certificati della catena. Se si verifica un problema nel controllo, si presume che la revoca non sia valida. Se si verifica un errore, si supponga che il certificato sia revocato e non valido. (Questo è il valore predefinito.)
- AlwaysCheck: Verifica la revoca di tutti i certificati nella catena. Se le informazioni di revoca non sono presenti in alcun certificato, si presume che la revoca non sia valida.
Per eseguire il controllo di revoca di un certificato, è possibile specificare un URL di un server dell’elenco di revoche di certificati (CRL) utilizzando un CRLOptionSpec
oggetto. Tuttavia, se si desidera eseguire il controllo di revoca e non si specifica un URL a un server CRL, il servizio Signature ottiene l’URL dal certificato.
Invece di utilizzare un server CRL, è possibile utilizzare un server OCSP (Online Certificate Status Protocol) quando si esegue il controllo di 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 online" in https://tools.ietf.org/html/rfc2560.)
È possibile impostare l'ordine del server CRL e OCSP utilizzato dal servizio Signature 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. (Consulta "Gestione di certificati e credenziali tramite Trust Store" nella Guida di AAC).
Se si specifica di non eseguire il controllo di revoca, il servizio Firma non controlla se il certificato utilizzato per firmare o certificare un documento è stato revocato. In altre parole, le informazioni sul server CRL e OCSP vengono ignorate.
CRLOptionSpec
e OCSPOptionSpec
oggetto. Ad esempio, per ignorare il server CRL, è possibile richiamare CRLOptionSpec
dell’oggetto setLocalURI
metodo .Per marca temporale si intende il 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. L’indicazione dell’ora aiuta a garantire la validità di un documento firmato o certificato. È possibile impostare le opzioni di marca temporale utilizzando un TSPOptionSpec
oggetto. Ad esempio, puoi specificare l’URL di un server del provider di servizi di marca temporale (TSP).
Per firmare correttamente un documento PDF, è possibile specificare il nome completo del campo firma che conterrà la firma digitale, ad esempio form1[0].#subform[1].SignatureField3[3]
. Quando si utilizza un campo modulo XFA, è possibile utilizzare anche il nome parziale del campo firma: SignatureField3[3]
.
È inoltre necessario fare riferimento a una credenziale di protezione per firmare digitalmente un documento PDF. Per fare riferimento a una credenziale di protezione, 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 protezione hardware (HSM). Per informazioni sulle credenziali di protezione, consulta la guida all’installazione e alla distribuzione di AEM Forms* per il server delle applicazioni.
Salvare il documento PDF firmato
Dopo aver apposto la firma digitale al documento PDF da parte del servizio Firma, è possibile salvarlo come file PDF in modo che gli utenti possano aprirlo in Acrobat o Adobe Reader.
Consulta anche
Firma digitale dei documenti PDF tramite l’API Java
Firma digitale di documenti PDF tramite l’API del servizio Web
Inclusione dei file libreria Java di AEM Forms
Impostazione delle proprietà di connessione
Recupero dei nomi dei campi firma
Firma digitale dei documenti PDF tramite l’API Java digitally-sign-pdf-documents-using-the-java-api
Firma digitale di un documento PDF utilizzando l’API Firma (Java):
-
Includi file di progetto
Includi file JAR client, ad esempio adobe-signatures-client.jar, nel percorso di classe del progetto Java.
-
Creare un client di firme
- Crea un
ServiceClientFactory
oggetto contenente le proprietà di connessione. - Crea un
SignatureServiceClient
utilizzando il relativo costruttore e passandoServiceClientFactory
oggetto.
- Crea un
-
Richiedere la firma del documento PDF
- Crea un
java.io.FileInputStream
oggetto che rappresenta il documento PDF da firmare digitalmente utilizzando il relativo costruttore e passando un valore di stringa che specifica la posizione del documento PDF. - Crea un
com.adobe.idp.Document
utilizzando il relativo costruttore e passandojava.io.FileInputStream
oggetto.
- Crea un
-
Firma il documento PDF
Firma il documento PDF richiamando il
SignatureServiceClient
dell’oggettosign
e passando i seguenti valori:- A
com.adobe.idp.Document
oggetto che rappresenta il documento PDF da firmare. - Valore stringa che rappresenta il nome del campo firma che conterrà la firma digitale.
- A
Credential
oggetto che rappresenta la credenziale utilizzata per firmare digitalmente il documento di PDF. Crea unCredential
richiamando l'oggettoCredential
statico dell’oggettogetInstance
e passare un valore di stringa che specifica il valore di alias corrispondente alla credenziale di sicurezza. - A
HashAlgorithm
oggetto che specifica un membro di dati statico che rappresenta l’algoritmo hash da utilizzare per digest del documento PDF. Ad esempio, puoi specificareHashAlgorithm.SHA1
per 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.
- A
PDFSignatureAppearanceOptions
oggetto che controlla l'aspetto della firma digitale. Ad esempio, è possibile utilizzare questo oggetto per aggiungere un logo personalizzato a una firma digitale. - A
java.lang.Boolean
oggetto che specifica se eseguire il controllo di revoca sul certificato del firmatario. - Un
OCSPOptionSpec
oggetto che memorizza le preferenze per il supporto del protocollo OCSP (Online Certificate Status Protocol). Se il controllo di revoca non viene eseguito, questo parametro non viene utilizzato e puoi specificarenull
. - A
CRLPreferences
oggetto che memorizza le preferenze dell'elenco di revoche dei certificati (CRL). Se il controllo di revoca non viene eseguito, questo parametro non viene utilizzato e puoi specificarenull
. - A
TSPPreferences
oggetto che memorizza le preferenze per il supporto del provider di timestamp (TSP). Questo parametro è facoltativo e può esserenull
. Per ulteriori informazioni, consulta Riferimento API di AEM Forms.
La
sign
restituisce uncom.adobe.idp.Document
oggetto che rappresenta il documento PDF firmato. - A
-
Salvare il documento PDF firmato
- Crea un
java.io.File
e assicurati che l'estensione del file sia .pdf. - Richiama il
com.adobe.idp.Document
dell’oggettocopyToFile
metodo e passaggiojava.io.File
per copiare il contenuto delDocument
al file. Assicurati di utilizzarecom.adobe.idp.Document
oggetto restituito dasign
metodo .
- Crea un
Consulta anche
Firma digitale di documenti PDF
Avvio rapido (modalità SOAP): Firma digitale di un documento PDF tramite l’API Java
Inclusione dei file libreria Java di AEM Forms
Impostazione delle proprietà di connessione
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 Signature (servizio Web):
-
Includi file di progetto
Creare un progetto Microsoft .NET che utilizza MTOM. Assicurati di utilizzare la seguente definizione WSDL:
http://localhost:8080/soap/services/SignatureService?WSDL&lc_version=9.0.1
.note note NOTE Sostituisci localhost
con l’indirizzo IP del server che ospita AEM Forms. -
Creare un client di firme
-
Crea un
SignatureServiceClient
utilizzando il relativo costruttore predefinito. -
Crea un
SignatureServiceClient.Endpoint.Address
utilizzandoSystem.ServiceModel.EndpointAddress
costruttore. Passa un valore stringa che specifica il WSDL al servizio AEM Forms (ad esempio,http://localhost:8080/soap/services/SignatureService?WSDL
). Non è necessario utilizzare illc_version
attributo. Questo attributo viene utilizzato quando si crea un riferimento a un servizio.) -
Crea un
System.ServiceModel.BasicHttpBinding
ottenendo il valore delSignatureServiceClient.Endpoint.Binding
campo . Imposta il valore restituito suBasicHttpBinding
. -
Imposta la
System.ServiceModel.BasicHttpBinding
dell’oggettoMessageEncoding
campo aWSMessageEncoding.Mtom
. Questo valore assicura che venga utilizzato MTOM. -
Abilita l’autenticazione HTTP di base eseguendo le seguenti attività:
- Assegnare il nome utente del modulo di AEM al campo
SignatureServiceClient.ClientCredentials.UserName.UserName
. - Assegna il valore della password corrispondente al campo
SignatureServiceClient.ClientCredentials.UserName.Password
. - Assegna il valore costante
HttpClientCredentialType.Basic
al campoBasicHttpBindingSecurity.Transport.ClientCredentialType
. - Assegna il valore costante
BasicHttpSecurityMode.TransportCredentialOnly
al campoBasicHttpBindingSecurity.Security.Mode
.
- Assegnare il nome utente del modulo di AEM al campo
-
-
Richiedere la firma del documento PDF
- Crea un
BLOB
utilizzando il relativo costruttore. LaBLOB
viene utilizzato per memorizzare un documento PDF firmato. - Crea un
System.IO.FileStream
richiamando il relativo costruttore e passando un valore di stringa che rappresenta la posizione del file del documento PDF da firmare e la modalità di apertura del file. - Creare un array di byte che memorizza il contenuto del
System.IO.FileStream
oggetto. È possibile determinare le dimensioni dell'array di byte ottenendo ilSystem.IO.FileStream
dell’oggettoLength
proprietà. - Compilare l'array di byte con i dati del flusso richiamando il
System.IO.FileStream
dell’oggettoRead
e passare l'array di byte, la posizione iniziale e la lunghezza del flusso da leggere. - Popolare
BLOB
oggetto assegnando il relativoMTOM
proprietà il contenuto dell'array di byte.
- Crea un
-
Firma il documento PDF
Firma il documento PDF richiamando il
SignatureServiceClient
dell’oggettosign
e passando i seguenti valori:- A
BLOB
oggetto che rappresenta il documento PDF da firmare. - Valore stringa che rappresenta il nome del campo firma che conterrà la firma digitale.
- A
Credential
oggetto che rappresenta la credenziale utilizzata per firmare digitalmente il documento di PDF. Crea unCredential
utilizzando il relativo costruttore e specificando l'alias assegnando un valore alCredential
dell’oggettoalias
proprietà. - A
HashAlgorithm
oggetto che specifica un membro di dati statico che rappresenta l’algoritmo hash da utilizzare per digest del documento PDF. Ad esempio, puoi specificareHashAlgorithm.SHA1
per 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.
- A
PDFSignatureAppearanceOptions
oggetto che controlla l'aspetto della firma digitale. Ad esempio, è possibile utilizzare questo oggetto per aggiungere un logo personalizzato a una firma digitale. - A
System.Boolean
oggetto che specifica se eseguire il controllo di revoca sul certificato del firmatario. Se il controllo di revoca viene eseguito, viene incorporato nella firma. Il valore predefinito èfalse
. - Un
OCSPOptionSpec
oggetto che memorizza le preferenze per il supporto del protocollo OCSP (Online Certificate Status Protocol). Se il controllo di revoca non viene eseguito, questo parametro non viene utilizzato e puoi specificarenull
. Per informazioni sull'oggetto, vedere Riferimento API di AEM Forms. - A
CRLPreferences
oggetto che memorizza le preferenze dell'elenco di revoche dei certificati (CRL). Se il controllo di revoca non viene eseguito, questo parametro non viene utilizzato e puoi specificarenull
. - A
TSPPreferences
oggetto che memorizza le preferenze per il supporto del provider di timestamp (TSP). Questo parametro è facoltativo e può esserenull
.
La
sign
restituisce unBLOB
oggetto che rappresenta il documento PDF firmato. - A
-
Salvare il documento PDF firmato
- Crea un
System.IO.FileStream
richiamando 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 un array di byte che memorizza il contenuto del
BLOB
oggetto restituito dasign
metodo . Compilare l’array di byte ottenendo il valore delBLOB
dell’oggettoMTOM
membro dati. - Crea un
System.IO.BinaryWriter
richiamando il relativo costruttore e passandoSystem.IO.FileStream
oggetto. - Scrivi il contenuto dell’array di byte in un file PDF richiamando il
System.IO.BinaryWriter
dell’oggettoWrite
e passare l'array di byte.
- Crea un
Consulta anche
Firma digitale di documenti PDF
Richiamo di AEM Forms tramite MTOM
Richiamo di AEM Forms tramite SwaRef
Firma digitale di Forms interattivo 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 contenuti in un documento XML utilizzando il servizio Forms. Il server Forms esegue il rendering di un modulo interattivo.
- È possibile firmare il modulo interattivo utilizzando l’API del servizio Firma.
Il risultato è un modulo PDF interattivo con firma digitale. Quando si firma un modulo PDF basato su un modulo XFA, assicurarsi di salvare il file PDF come modulo PDF statico Adobe. Se si tenta di firmare un modulo PDF salvato come modulo Adobe Dynamic PDF, si verifica un’eccezione. Poiché si firma il modulo restituito dal servizio Forms, assicurarsi che contenga un campo firma.
Quando utilizzi l’API del servizio Forms, imposta la variabile GenerateServerAppearance
opzione di esecuzione su true
. Questa opzione di esecuzione assicura che l’aspetto del modulo generato sul server rimanga valido quando viene aperto in Acrobat o Adobe Reader. È consigliabile impostare questa opzione di esecuzione quando si genera un modulo interattivo da firmare utilizzando l’API Forms.
Riepilogo dei passaggi summary_of_steps-4
Per firmare digitalmente un modulo interattivo restituito dal servizio Forms, eseguire le operazioni seguenti:
- Includi file di progetto.
- Creare un client Forms e Firme.
- Ottenere 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, assicurati di includere i file proxy.
I seguenti file JAR devono essere aggiunti al percorso di classe del progetto:
- adobe-livecycle-client.jar
- adobe-usermanager-client.jar
- adobe-signatures-client.jar
- adobe-forms-client.jar
- adobe-utilities.jar (richiesto se AEM Forms è distribuito su JBoss)
- jbossall-client.jar (richiesto se AEM Forms è distribuito su JBoss)
Per informazioni sulla posizione di questi file JAR, vedi Inclusione dei file libreria Java di AEM Forms.
Creare un client Forms e Firme
Poiché questo flusso di lavoro richiama sia Forms che i servizi Signature, crea sia un client di servizio Forms che un client di servizio Signature.
Ottenere il modulo interattivo utilizzando il servizio Forms
È possibile utilizzare il servizio Forms per ottenere il modulo interattivo PDF da firmare. A partire da AEM Forms, puoi trasmettere un com.adobe.idp.Document
al servizio Forms che contiene il modulo di cui eseguire il rendering. Il nome di questo metodo è renderPDFForm2
. Questo metodo restituisce un com.adobe.idp.Document
oggetto contenente il modulo da firmare. Puoi passare questo com.adobe.idp.Document
istanza al servizio Firma.
Allo stesso modo, se utilizzi i servizi web, puoi passare il BLOB
istanza che il servizio Forms restituisce al servizio Signature.
renderPDFForm2
metodo .Firma del modulo interattivo
Quando si firma un documento PDF, è possibile impostare le opzioni di esecuzione utilizzate dal servizio Firma. Puoi impostare le seguenti opzioni:
- Opzioni di aspetto
- Controllo della revoca
- Valori di marca temporale
Puoi impostare le opzioni di aspetto utilizzando una PDFSignatureAppearanceOptionSpec
oggetto. Ad esempio, è possibile visualizzare la data all’interno di una firma richiamando il PDFSignatureAppearanceOptionSpec
dell’oggetto setShowDate
metodo e passaggio true
.
Salvare il documento PDF firmato
Dopo aver apposto la firma digitale al documento PDF, è possibile salvarlo come file PDF. Il file PDF può essere aperto in Acrobat o Adobe Reader.
Consulta anche
Firma digitale di un modulo interattivo utilizzando l’API Java
Firma digitale di un modulo interattivo utilizzando l’API del servizio Web
Inclusione dei file libreria Java di AEM Forms
Impostazione delle proprietà di connessione
Firma digitale di documenti PDF
Rendering di PDF forms interattivi
Firma digitale di un modulo interattivo utilizzando l’API Java digitally-sign-an-interactive-form-using-the-java-api
Firma digitale di un modulo interattivo utilizzando l’API Forms e Signature (Java):
-
Includi file di progetto
Includi file JAR client, come adobe-signatures-client.jar e adobe-forms-client.jar, nel percorso classico del progetto Java.
-
Creare un client Forms e Firme
- Crea un
ServiceClientFactory
oggetto contenente le proprietà di connessione. - Crea un
SignatureServiceClient
utilizzando il relativo costruttore e passandoServiceClientFactory
oggetto. - Crea un
FormsServiceClient
utilizzando il relativo costruttore e passandoServiceClientFactory
oggetto.
- Crea un
-
Ottenere il modulo interattivo utilizzando il servizio Forms
-
Crea un
java.io.FileInputStream
oggetto che rappresenta il documento PDF da passare al servizio Forms utilizzando il relativo costruttore. Passa un valore stringa che specifica la posizione del documento PDF. -
Crea un
com.adobe.idp.Document
utilizzando il relativo costruttore e passandojava.io.FileInputStream
oggetto. -
Crea un
java.io.FileInputStream
oggetto che rappresenta il documento XML contenente i dati del modulo da passare al servizio Forms utilizzando il relativo costruttore. Passa un valore di stringa che specifica la posizione del file XML. -
Crea un
com.adobe.idp.Document
utilizzando il relativo costruttore e passandojava.io.FileInputStream
oggetto. -
Crea un
PDFFormRenderSpec
oggetto utilizzato per impostare le opzioni di esecuzione. Richiama ilPDFFormRenderSpec
dell’oggettosetGenerateServerAppearance
metodo e passaggiotrue
. -
Richiama il
FormsServiceClient
dell’oggettorenderPDFForm2
e passare i seguenti valori:- A
com.adobe.idp.Document
oggetto che contiene il modulo PDF di cui eseguire il rendering. - A
com.adobe.idp.Document
oggetto contenente i dati da unire al modulo. - A
PDFFormRenderSpec
oggetto che memorizza le opzioni di esecuzione. - A
URLSpec
oggetto che contiene i valori URI richiesti dal servizio Forms. Puoi specificarenull
per questo valore di parametro. - A
java.util.HashMap
oggetto che memorizza gli allegati di file. Si tratta di un parametro facoltativo ed è possibile specificarenull
se non si desidera allegare file al modulo.
La
renderPDFForm2
restituisce unFormsResult
oggetto contenente un flusso di dati del modulo - A
-
Recupera il modulo PDF richiamando il
FormsResult
dell’oggettogetOutputContent
metodo . Questo metodo restituisce uncom.adobe.idp.Document
oggetto che rappresenta il modulo interattivo.
-
-
Firma del modulo interattivo
Firma il documento PDF richiamando il
SignatureServiceClient
dell’oggettosign
e passando i seguenti valori:- A
com.adobe.idp.Document
oggetto che rappresenta il documento PDF da firmare. Assicurati che questo oggetto siacom.adobe.idp.Document
oggetto ottenuto dal servizio Forms. - Valore stringa che rappresenta il nome del campo firma firmato.
- A
Credential
oggetto che rappresenta la credenziale utilizzata per firmare digitalmente il documento di PDF. Crea unCredential
richiamando l'oggettoCredential
statico dell’oggettogetInstance
metodo . Passa un valore di stringa che specifica il valore di alias corrispondente alla credenziale di sicurezza. - A
HashAlgorithm
oggetto che specifica un membro di dati statico che rappresenta l’algoritmo hash da utilizzare per digest del documento PDF. Ad esempio, puoi specificareHashAlgorithm.SHA1
per 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.
- A
PDFSignatureAppearanceOptions
oggetto che controlla l'aspetto della firma digitale. Ad esempio, è possibile utilizzare questo oggetto per aggiungere un logo personalizzato a una firma digitale. - A
java.lang.Boolean
oggetto che specifica se eseguire il controllo di revoca sul certificato del firmatario. - Un
OCSPPreferences
oggetto che memorizza le preferenze per il supporto del protocollo OCSP (Online Certificate Status Protocol). Se il controllo di revoca non viene eseguito, questo parametro non viene utilizzato e puoi specificarenull
. - A
CRLPreferences
oggetto che memorizza le preferenze dell'elenco di revoche dei certificati (CRL). Se il controllo di revoca non viene eseguito, questo parametro non viene utilizzato e puoi specificarenull
. - A
TSPPreferences
oggetto che memorizza le preferenze per il supporto del provider di timestamp (TSP). Questo parametro è facoltativo e può esserenull
.
La
sign
restituisce uncom.adobe.idp.Document
oggetto che rappresenta il documento PDF firmato. - A
-
Salvare il documento PDF firmato
- Crea un
java.io.File
e assicurati che l'estensione del nome del file sia .pdf. - Richiama il
com.adobe.idp.Document
dell’oggettocopyToFile
metodo e passaggiojava.io.File
per copiare il contenuto delDocument
al file. Assicurati di utilizzarecom.adobe.idp.Document
oggetto chesign
metodo restituito.
- Crea un
Consulta anche
Firma digitale di Forms interattivo
Avvio rapido (modalità SOAP): Firma digitale di un documento PDF tramite l’API Java
Inclusione dei file libreria Java di AEM Forms
Impostazione delle proprietà di connessione
Firma digitale di un modulo interattivo utilizzando l’API del servizio Web digitally-sign-an-interactive-form-using-the-web-service-api
Firma digitale di un modulo interattivo utilizzando l’API Forms e Signature (servizio Web):
-
Includi file di progetto
Creare un progetto Microsoft .NET che utilizza MTOM. Poiché questa applicazione client richiama due servizi AEM Forms, crea due riferimenti al servizio. Utilizzare la seguente definizione WSDL per il riferimento al servizio associato al servizio Signature:
http://localhost:8080/soap/services/SignatureService?WSDL&lc_version=9.0.1
.Utilizza 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
.Perché
BLOB
il tipo di dati è comune a entrambi i riferimenti di servizio e definisce completamente ilBLOB
tipo di dati quando viene utilizzato. All'avvio rapido del servizio Web corrispondente,BLOB
le istanze sono completamente qualificate.note note NOTE Sostituisci localhost
con l’indirizzo IP del server che ospita AEM Forms. -
Creare un client Forms e Firme
-
Crea un
SignatureServiceClient
utilizzando il relativo costruttore predefinito. -
Crea un
SignatureServiceClient.Endpoint.Address
utilizzandoSystem.ServiceModel.EndpointAddress
costruttore. Passa un valore stringa che specifica il WSDL al servizio AEM Forms (ad esempio,http://localhost:8080/soap/services/SignatureService?WSDL
). Non è necessario utilizzare illc_version
attributo. Questo attributo viene utilizzato quando si crea un riferimento a un servizio.) -
Crea un
System.ServiceModel.BasicHttpBinding
ottenendo il valore delSignatureServiceClient.Endpoint.Binding
campo . Imposta il valore restituito suBasicHttpBinding
. -
Imposta la
System.ServiceModel.BasicHttpBinding
dell’oggettoMessageEncoding
campo aWSMessageEncoding.Mtom
. Questo valore assicura che venga utilizzato MTOM. -
Abilita l’autenticazione HTTP di base eseguendo le seguenti attività:
- Assegnare il nome utente del modulo di AEM al campo
SignatureServiceClient.ClientCredentials.UserName.UserName
. - Assegna il valore della password corrispondente al campo
SignatureServiceClient.ClientCredentials.UserName.Password
. - Assegna il valore costante
HttpClientCredentialType.Basic
al campoBasicHttpBindingSecurity.Transport.ClientCredentialType
.
- Assegnare il nome utente del modulo di AEM al campo
-
Assegna il valore costante
BasicHttpSecurityMode.TransportCredentialOnly
al campoBasicHttpBindingSecurity.Security.Mode
.
note note NOTE Ripeti questi passaggi per il client di servizio Forms. -
-
Ottenere il modulo interattivo utilizzando il servizio Forms
-
Crea un
BLOB
utilizzando il relativo costruttore. LaBLOB
viene utilizzato per memorizzare un documento PDF firmato. -
Crea un
System.IO.FileStream
richiamando il relativo costruttore e passando un valore di stringa che rappresenta la posizione del file del documento PDF da firmare e la modalità di apertura del file. -
Creare un array di byte che memorizza il contenuto del
System.IO.FileStream
oggetto. È possibile determinare le dimensioni dell'array di byte ottenendo ilSystem.IO.FileStream
dell’oggettoLength
proprietà. -
Compilare l'array di byte con i dati del flusso richiamando il
System.IO.FileStream
dell’oggettoRead
e passare l'array di byte, la posizione iniziale e la lunghezza del flusso da leggere. -
Popolare
BLOB
oggetto assegnando il relativoMTOM
proprietà il contenuto dell'array di byte. -
Crea un
BLOB
utilizzando il relativo costruttore. LaBLOB
viene utilizzato per memorizzare i dati del modulo. -
Crea un
System.IO.FileStream
richiamando il relativo costruttore e passando un valore di stringa che rappresenta la posizione del file XML contenente i dati del modulo e la modalità di apertura del file. -
Creare un array di byte che memorizza il contenuto del
System.IO.FileStream
oggetto. È possibile determinare le dimensioni dell'array di byte ottenendo ilSystem.IO.FileStream
dell’oggettoLength
proprietà. -
Compilare l'array di byte con i dati del flusso richiamando il
System.IO.FileStream
dell’oggettoRead
e passare l'array di byte, la posizione iniziale e la lunghezza del flusso da leggere. -
Popolare
BLOB
oggetto assegnando il relativoMTOM
proprietà il contenuto dell'array di byte. -
Crea un
PDFFormRenderSpec
oggetto utilizzato per impostare le opzioni di esecuzione. Assegna il valoretrue
alPDFFormRenderSpec
dell’oggettogenerateServerAppearance
campo . -
Richiama il
FormsServiceClient
dell’oggettorenderPDFForm2
e passare i seguenti valori:- A
BLOB
oggetto che contiene il modulo PDF di cui eseguire il rendering. - A
BLOB
oggetto contenente i dati da unire al modulo. - A
PDFFormRenderSpec
oggetto che memorizza le opzioni di esecuzione. - A
URLSpec
oggetto che contiene i valori URI richiesti dal servizio Forms. Puoi specificarenull
per questo valore di parametro. - A
java.util.HashMap
oggetto che memorizza gli allegati di file. Si tratta di un parametro facoltativo ed è possibile specificarenull
se non si desidera allegare file al modulo. - Parametro di output lungo utilizzato per memorizzare il numero di pagine nel modulo.
- Un parametro di output della stringa utilizzato per il valore delle impostazioni internazionali.
- A
FormResult
che è un parametro di output utilizzato per memorizzare il modulo interattivo.
- A
-
Recupera il modulo PDF richiamando il
FormsResult
dell’oggettooutputContent
campo . Questo campo memorizza unBLOB
oggetto che rappresenta il modulo interattivo.
-
-
Firma del modulo interattivo
Firma il documento PDF richiamando il
SignatureServiceClient
dell’oggettosign
e passando i seguenti valori:- A
BLOB
oggetto che rappresenta il documento PDF da firmare. Utilizza laBLOB
istanza restituita dal servizio Forms. - Valore stringa che rappresenta il nome del campo firma firmato.
- A
Credential
oggetto che rappresenta la credenziale utilizzata per firmare digitalmente il documento di PDF. Crea unCredential
utilizzando il relativo costruttore e specificando l'alias assegnando un valore alCredential
dell’oggettoalias
proprietà. - A
HashAlgorithm
oggetto che specifica un membro di dati statico che rappresenta l’algoritmo hash da utilizzare per digest del documento PDF. Ad esempio, puoi specificareHashAlgorithm.SHA1
per 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.
- A
PDFSignatureAppearanceOptions
oggetto che controlla l'aspetto della firma digitale. Ad esempio, è possibile utilizzare questo oggetto per aggiungere un logo personalizzato a una firma digitale. - A
System.Boolean
oggetto che specifica se eseguire il controllo di revoca sul certificato del firmatario. Se il controllo di revoca viene eseguito, viene incorporato nella firma. Il valore predefinito èfalse
. - Un
OCSPPreferences
oggetto che memorizza le preferenze per il supporto del protocollo OCSP (Online Certificate Status Protocol). Se il controllo di revoca non viene eseguito, questo parametro non viene utilizzato e puoi specificarenull
. Per informazioni sull'oggetto, vedere Riferimento API di AEM Forms. - A
CRLPreferences
oggetto che memorizza le preferenze dell'elenco di revoche dei certificati (CRL). Se il controllo di revoca non viene eseguito, questo parametro non viene utilizzato e puoi specificarenull
. - A
TSPPreferences
oggetto che memorizza le preferenze per il supporto del provider di timestamp (TSP). Questo parametro è facoltativo e può esserenull
.
La
sign
restituisce unBLOB
oggetto che rappresenta il documento PDF firmato. - A
-
Salvare il documento PDF firmato
- Crea un
System.IO.FileStream
richiamando 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 un array di byte che memorizza il contenuto del
BLOB
oggetto restituito dasign
metodo . Compilare l’array di byte ottenendo il valore delBLOB
dell’oggettoMTOM
membro dati. - Crea un
System.IO.BinaryWriter
richiamando il relativo costruttore e passandoSystem.IO.FileStream
oggetto. - Scrivi il contenuto dell’array di byte in un file PDF richiamando il
System.IO.BinaryWriter
dell’oggettoWrite
e passare l'array di byte.
- Crea un
Consulta anche
Firma digitale di Forms interattivo
Richiamo di AEM Forms tramite MTOM
Certificazione dei documenti PDF certifying-pdf-documents
È possibile proteggere un documento PDF certificandolo con un particolare tipo di firma denominato firma certificata. Una firma certificata si distingue da una firma digitale nei seguenti modi:
- Deve essere la prima firma applicata al documento PDF; in altre parole, al momento dell’applicazione della firma certificata, tutti gli altri campi firma del documento devono essere defirmati. In un documento PDF è consentita una sola firma certificata. Se si desidera firmare e certificare un documento PDF, è necessario certificarlo prima di firmarlo. Dopo aver certificato un documento PDF, è possibile firmare digitalmente campi firma aggiuntivi.
- L'autore o l'autore del documento può specificare che il documento può essere modificato in alcuni modi senza invalidare la firma certificata. Ad esempio, il documento può consentire la compilazione di moduli o commenti. Se l’autore specifica che 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 visualizza 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 il contenuto di un documento ambiguo o fuorviante. Ad esempio, un’annotazione potrebbe nascondere del testo in una pagina importante per comprendere cosa viene certificato. Una spiegazione (attestato legale) può essere fornita su tale contenuto.
È possibile certificare i documenti PDF a livello di programmazione utilizzando l’API Java del servizio Firma o l’API del servizio Web Firma. Quando si certifica un documento PDF, è necessario fare riferimento a una credenziale di sicurezza esistente nel servizio Credenziali. Per informazioni sulle credenziali di protezione, consulta la Installazione e distribuzione di AEM Forms guida per il server applicazioni.
Puoi aggiungere il seguente valore di configurazione nel file cknfastrc, che si trova in /opt/nfast/cknfastrc (o c:\nfast\cknfastrc):
CKNFAST_ASSUME_SINGLE_PROCESS=0
Dopo aver aggiunto questo valore di configurazione al file cknfastrc, è possibile utilizzare la nuova credenziale senza riavviare il server dell'applicazione J2EE.
Riepilogo dei passaggi summary_of_steps-5
Per certificare un documento PDF, eseguire le operazioni seguenti:
- Includi file di progetto.
- Creare un client di firma.
- Ottenere 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, assicurati di includere i file proxy.
I seguenti file JAR devono essere aggiunti al percorso di classe del progetto:
- adobe-livecycle-client.jar
- adobe-usermanager-client.jar
- adobe-signatures-client.jar
- adobe-utilities.jar (richiesto se AEM Forms è distribuito su JBoss)
- jbossall-client.jar (richiesto se AEM Forms è distribuito su JBoss)
Per informazioni sulla posizione di questi file JAR, vedi Inclusione dei file libreria Java di AEM Forms.
Creare un client di firma
Prima di poter eseguire un’operazione Firma a livello di programmazione, è necessario creare un client Signature.
Ottenere il documento PDF da certificare
Per certificare un documento PDF, è necessario ottenere un documento PDF contenente un campo firma. Se un documento PDF non contiene un campo firma, non può essere certificato. È possibile aggiungere un campo firma utilizzando Designer o a livello di programmazione. Per informazioni sull’aggiunta programmatica di un campo firma, vedere Aggiunta di campi firma.
Certifica il documento PDF
Per certificare correttamente un documento PDF, è necessario immettere i seguenti valori utilizzati dal servizio Firma per certificare un documento PDF:
- documento PDF: Documento 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 del campo firma: Nome completo del campo firma certificato. Il seguente valore è un esempio:
form1[0].#subform[1].SignatureField3[3]
. Quando si utilizza un campo modulo XFA, è possibile utilizzare anche il nome parziale del campo firma:SignatureField3[3]
. Se per il nome del campo viene passato un valore nullo, viene creato e certificato in modo dinamico un campo firma invisibile. - Credenziali di protezione: Credenziale utilizzata per certificare il documento PDF. Questa credenziale di sicurezza contiene una password e un alias, che devono corrispondere a un alias visualizzato nella credenziale che si trova all'interno del servizio Credenziali. L’alias è un riferimento a una credenziale effettiva che può trovarsi in un file PKCS#12 (con estensione .pfx) o in un modulo di protezione hardware (HSM).
- Algoritmo hash: Algoritmo hash da utilizzare per digest del documento PDF.
- Motivo della firma: Un valore visualizzato in Acrobat o Adobe Reader in modo che altri utenti siano a conoscenza del motivo per cui il documento PDF è stato certificato.
- Posizione del firmatario: Posizione del firmatario specificata dalla credenziale.
- Informazioni di contatto: Informazioni di contatto del firmatario, ad esempio indirizzo e numero di telefono.
- Informazioni sulle autorizzazioni: Autorizzazioni che controllano le azioni che un utente finale può eseguire su un documento senza che la firma certificata risulti non valida. Ad esempio, è possibile impostare l’autorizzazione in modo che qualsiasi modifica apportata al documento PDF impedisca la firma certificata.
- Spiegazione legale: Quando un documento viene certificato, viene automaticamente analizzato per specifici tipi di contenuto che potrebbero rendere il contenuto di un documento ambiguo o fuorviante. Ad esempio, un’annotazione potrebbe nascondere del testo in una pagina importante per comprendere cosa viene certificato. Il processo di scansione genera avvisi su questi tipi di contenuto. Questo valore fornisce un’ulteriore spiegazione del contenuto che potrebbe aver generato avvisi.
- Opzioni di aspetto: Opzioni che controllano l’aspetto della firma certificata. Ad esempio, la firma certificata può visualizzare informazioni sulla data.
- Controllo della revoca: Questo valore specifica se il controllo di revoca viene eseguito per il certificato del firmatario. Impostazione predefinita di
false
significa che il controllo di revoca non viene eseguito. - Impostazioni OCSP: Impostazioni per il supporto del protocollo OCSP (Online Certificate Status Protocol), che fornisce informazioni sullo stato delle credenziali utilizzate per certificare il documento PDF. Ad esempio, è possibile specificare l’URL del server che fornisce informazioni sulle credenziali utilizzate per accedere al documento PDF.
- Impostazioni CRL: Impostazioni delle preferenze dell'elenco di revoche dei certificati (CRL) se si esegue il controllo di revoca. Ad esempio, è possibile specificare di verificare sempre se una credenziale è stata revocata.
- Timestamp: Impostazioni che definiscono le informazioni di marca temporale applicate alla firma certificata. Una marca temporale indica che dati specifici sono stati stabiliti prima di un certo periodo di tempo. Questa conoscenza aiuta a creare un rapporto di fiducia tra il firmatario e il verificatore.
Salvare il documento PDF certificato come file PDF
Dopo che il servizio Firma ha certificato il documento PDF, è possibile salvarlo come file PDF in modo che gli utenti possano aprirlo in Acrobat o Adobe Reader.
Consulta anche
Certificare i documenti PDF utilizzando l’API Java
Certificare i documenti PDF utilizzando l’API del servizio Web
Inclusione dei file libreria Java di AEM Forms
Impostazione delle proprietà di connessione
Certificare i documenti PDF utilizzando l’API Java certify-pdf-documents-using-the-java-api
Certifica un documento PDF utilizzando l’API Signature (Java):
-
Includi file di progetto
Includi file JAR client, ad esempio adobe-signatures-client.jar, nel percorso di classe del progetto Java.
-
Creare un client di firma
- Crea un
ServiceClientFactory
oggetto contenente le proprietà di connessione. - Crea un
SignatureServiceClient
utilizzando il relativo costruttore e passandoServiceClientFactory
oggetto.
- Crea un
-
Ottenere il documento PDF da certificare
- Crea un
java.io.FileInputStream
oggetto che rappresenta il documento PDF da certificare utilizzando il relativo costruttore e passando un valore di stringa che specifica la posizione del documento PDF. - Crea un
com.adobe.idp.Document
utilizzando il relativo costruttore e passandojava.io.FileInputStream
oggetto.
- Crea un
-
Certifica il documento PDF
Certifica il documento PDF richiamando il
SignatureServiceClient
dell’oggettocertify
e passando i seguenti valori:- La
com.adobe.idp.Document
oggetto che rappresenta il documento PDF da certificare. - Valore stringa che rappresenta il nome del campo firma che conterrà la firma.
- A
Credential
oggetto che rappresenta la credenziale utilizzata per certificare il documento PDF. Crea unCredential
richiamando l'oggettoCredential
statico dell’oggettogetInstance
e passare un valore di stringa che specifica il valore di alias corrispondente alla credenziale di sicurezza. - A
HashAlgorithm
oggetto che specifica un membro di dati statico che rappresenta l’algoritmo hash utilizzato per digest del documento PDF. Ad esempio, puoi specificareHashAlgorithm.SHA1
per 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.
- A
MDPPermissions
oggetto che specifica le azioni che possono essere eseguite sul documento PDF che invalida la firma. - A
PDFSignatureAppearanceOptions
oggetto che controlla l'aspetto della firma certificata. Se lo desideri, modifica l’aspetto della firma richiamando un metodo, ad esempiosetShowDate
. - Valore stringa che fornisce una spiegazione delle azioni che invalidano la firma.
- A
java.lang.Boolean
oggetto che specifica se eseguire il controllo di revoca sul certificato del firmatario. Se il controllo di revoca viene eseguito, viene incorporato nella firma. Il valore predefinito èfalse
. - A
java.lang.Boolean
oggetto che specifica se il campo firma certificato è bloccato. Se il campo è bloccato, il campo firma è contrassegnato come di sola lettura, le relative proprietà non possono essere modificate e non può essere cancellato da un utente che non dispone delle autorizzazioni necessarie. Il valore predefinito èfalse
. - Un
OCSPPreferences
oggetto che memorizza le preferenze per il supporto del protocollo OCSP (Online Certificate Status Protocol). Se il controllo di revoca non viene eseguito, questo parametro non viene utilizzato e puoi specificarenull
. Per informazioni sull'oggetto, vedere Riferimento API di AEM Forms. - A
CRLPreferences
oggetto che memorizza le preferenze dell'elenco di revoche dei certificati (CRL). Se il controllo di revoca non viene eseguito, questo parametro non viene utilizzato e puoi specificarenull
. - A
TSPPreferences
oggetto che memorizza le preferenze per il supporto del provider di timestamp (TSP). Ad esempio, dopo aver creato unTSPPreferences
è possibile impostare l'URL del server TSP richiamando l'TSPPreferences
dell’oggettosetTspServerURL
metodo . Questo parametro è facoltativo e può esserenull
. Per ulteriori informazioni, consulta Riferimento servizi per AEM Forms.
La
certify
restituisce uncom.adobe.idp.Document
oggetto che rappresenta il documento PDF certificato. - La
-
Salvare il documento PDF certificato come file PDF
- Crea un
java.io.File
e assicurati che l'estensione del file sia .pdf. - Richiama il
com.adobe.idp.Document
dell’oggettocopyToFile
per copiare il contenuto delcom.adobe.idp.Document
al file.
- Crea un
Consulta anche
Certificazione dei documenti PDF
Avvio rapido (modalità SOAP): Certificazione di un documento PDF tramite l’API Java
Inclusione dei file libreria Java di AEM Forms
Impostazione delle proprietà di connessione
Certificare i documenti PDF utilizzando l’API del servizio Web certify-pdf-documents-using-the-web-service-api
Certifica un documento PDF utilizzando l’API Signature (servizio Web):
-
Includi file di progetto
Creare un progetto Microsoft .NET che utilizza MTOM. Assicurati di utilizzare la seguente definizione WSDL:
http://localhost:8080/soap/services/SignatureService?WSDL&lc_version=9.0.1
.note note NOTE Sostituisci localhost
con l’indirizzo IP del server che ospita AEM Forms. -
Creare un client di firma
-
Crea un
SignatureServiceClient
utilizzando il relativo costruttore predefinito. -
Crea un
SignatureServiceClient.Endpoint.Address
utilizzandoSystem.ServiceModel.EndpointAddress
costruttore. Passa un valore stringa che specifica il WSDL al servizio AEM Forms (ad esempio,http://localhost:8080/soap/services/SignatureService?WSDL
). Non è necessario utilizzare illc_version
attributo. Questo attributo viene utilizzato quando si crea un riferimento a un servizio.) -
Crea un
System.ServiceModel.BasicHttpBinding
ottenendo il valore delSignatureServiceClient.Endpoint.Binding
campo . Imposta il valore restituito suBasicHttpBinding
. -
Imposta la
System.ServiceModel.BasicHttpBinding
dell’oggettoMessageEncoding
campo aWSMessageEncoding.Mtom
. Questo valore assicura che venga utilizzato MTOM. -
Abilita l’autenticazione HTTP di base eseguendo le seguenti attività:
- Assegnare il nome utente del modulo di AEM al campo
SignatureServiceClient.ClientCredentials.UserName.UserName
. - Assegna il valore della password corrispondente al campo
SignatureServiceClient.ClientCredentials.UserName.Password
. - Assegna il valore costante
HttpClientCredentialType.Basic
al campoBasicHttpBindingSecurity.Transport.ClientCredentialType
. - Assegna il valore costante
BasicHttpSecurityMode.TransportCredentialOnly
al campoBasicHttpBindingSecurity.Security.Mode
.
- Assegnare il nome utente del modulo di AEM al campo
-
-
Ottenere il documento PDF da certificare
- Crea un
BLOB
utilizzando il relativo costruttore. LaBLOB
viene utilizzato per memorizzare un documento PDF certificato. - Crea un
System.IO.FileStream
richiamando il relativo costruttore e passando un valore di stringa che rappresenta la posizione del file del documento PDF da certificare e la modalità di apertura del file. - Creare un array di byte che memorizza il contenuto del
System.IO.FileStream
oggetto. È possibile determinare le dimensioni dell'array di byte ottenendo ilSystem.IO.FileStream
dell’oggettoLength
proprietà. - Compilare l'array di byte con i dati del flusso richiamando il
System.IO.FileStream
dell’oggettoRead
e passare l'array di byte, la posizione iniziale e la lunghezza del flusso da leggere. - Popolare
BLOB
oggetto assegnando il relativoMTOM
il contenuto dell'array di byte.
- Crea un
-
Certifica il documento PDF
Certifica il documento PDF richiamando il
SignatureServiceClient
dell’oggettocertify
e passando i seguenti valori:- La
BLOB
oggetto che rappresenta il documento PDF da certificare. - Valore stringa che rappresenta il nome del campo firma che conterrà la firma.
- A
Credential
oggetto che rappresenta la credenziale utilizzata per certificare il documento PDF. Crea unCredential
utilizzando il relativo costruttore e specificando l'alias assegnando un valore alCredential
dell’oggettoalias
proprietà. - A
HashAlgorithm
oggetto che specifica un membro di dati statico che rappresenta l’algoritmo hash utilizzato per digest del documento PDF. Ad esempio, puoi specificareHashAlgorithm.SHA1
per 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.
- Un
MDPPermissions
membro dati statico dell’oggetto che specifica le azioni che possono essere eseguite sul documento PDF che invalida la firma. - Un valore booleano che specifica se utilizzare il
MDPPermissions
oggetto passato come valore del parametro precedente. - Valore stringa che spiega le azioni che invalidano la firma.
- A
PDFSignatureAppearanceOptions
oggetto che controlla l'aspetto della firma certificata. Crea unPDFSignatureAppearanceOptions
utilizzando il relativo costruttore. È possibile modificare l’aspetto della firma impostando uno dei relativi membri dati. - A
System.Boolean
oggetto che specifica se eseguire il controllo di revoca sul certificato del firmatario. Se il controllo di revoca viene eseguito, viene incorporato nella firma. Il valore predefinito èfalse
. - A
System.Boolean
oggetto che specifica se il campo firma certificato è bloccato. Se il campo è bloccato, il campo firma è contrassegnato come di sola lettura, le relative proprietà non possono essere modificate e non può essere cancellato da un utente che non dispone delle autorizzazioni necessarie. Il valore predefinito èfalse
. - A
System.Boolean
oggetto che specifica se il campo firma è bloccato. Se passitrue
al parametro precedente, quindi passatrue
a questo parametro. - Un
OCSPPreferences
oggetto che memorizza le preferenze per il supporto del protocollo OCSP (Online Certificate Status Protocol), che fornisce informazioni sullo stato della credenziale utilizzata per certificare il documento PDF. Se il controllo di revoca non viene eseguito, questo parametro non viene utilizzato e puoi specificarenull
. - A
CRLPreferences
oggetto che memorizza le preferenze dell'elenco di revoche dei certificati (CRL). Se il controllo di revoca non viene eseguito, questo parametro non viene utilizzato e puoi specificarenull
. - A
TSPPreferences
oggetto che memorizza le preferenze per il supporto del provider di timestamp (TSP). Ad esempio, dopo aver creato unTSPPreferences
è possibile impostare l'URL del TSP impostando ilTSPPreferences
dell’oggettotspServerURL
membro dati. Questo parametro è facoltativo e può esserenull
.
La
certify
restituisce unBLOB
oggetto che rappresenta il documento PDF certificato. - La
-
Salvare il documento PDF certificato come file PDF
- Crea un
System.IO.FileStream
richiamando il relativo costruttore e passando un valore di stringa che rappresenta la posizione del file del documento PDF che conterrà il documento PDF certificato e la modalità di apertura del file. - Creare un array di byte che memorizza il contenuto del
BLOB
oggetto restituito dacertify
metodo . Compilare l’array di byte ottenendo il valore delBLOB
dell’oggettobinaryData
membro dati. - Crea un
System.IO.BinaryWriter
richiamando il relativo costruttore e passandoSystem.IO.FileStream
oggetto. - Scrivi il contenuto dell’array di byte in un file PDF richiamando il
System.IO.BinaryWriter
dell’oggettoWrite
e passare l'array di byte.
- Crea un
Consulta anche
Certificazione dei documenti PDF
Richiamo di AEM Forms tramite MTOM
Richiamo di AEM Forms tramite SwaRef
Verifica delle firme digitali verifying-digital-signatures
È possibile verificare che un documento PDF firmato non sia stato modificato e che la firma digitale sia valida. Quando si verifica 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. Quando si verifica una firma digitale, fare riferimento a un documento PDF contenente una firma digitale.
Supponiamo che l’identità del firmatario sia sconosciuta. Quando si apre il documento PDF in Acrobat, un messaggio di avviso segnala che l’identità del firmatario è sconosciuta, come illustrato nella figura seguente.
Allo stesso modo, quando si verifica programmaticamente una firma digitale, è possibile determinare lo stato dell’identità del firmatario. Ad esempio, se si verifica la firma digitale nel documento mostrato nell’illustrazione precedente, l’identità del firmatario è 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.
- Ottenere il documento PDF contenente la firma da verificare.
- Impostare le opzioni di esecuzione PKI.
- Verificare la firma digitale.
- Determinare lo stato della firma.
- Determinare 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 utilizzi i servizi web, includi i file proxy.
I seguenti file JAR devono essere aggiunti al percorso di classe del progetto:
- adobe-livecycle-client.jar
- adobe-usermanager-client.jar
- adobe-signatures-client.jar
- adobe-utilities.jar (richiesto se AEM Forms è distribuito su JBoss)
- jbossall-client.jar (richiesto se AEM Forms è distribuito su JBoss)
Per informazioni sulla posizione di questi file JAR, vedi Inclusione dei file libreria Java di AEM Forms.
Creare un client di firma
Prima di eseguire un’operazione del servizio Firma a livello di programmazione, creare un client del servizio Signature.
Ottenere il documento PDF contenente la firma da verificare
Per verificare una firma utilizzata per firmare o certificare digitalmente un documento PDF, ottenere un documento PDF contenente una firma.
Impostare le opzioni di esecuzione PKI
Impostare le opzioni di esecuzione PKI che il servizio Signature utilizza per la verifica delle firme in un documento PDF:
- Tempo di verifica
- Controllo della revoca
- Valori di marca temporale
Per impostare queste opzioni, puoi specificare il tempo di verifica. Ad esempio, è possibile selezionare l'ora corrente (l'ora nel computer della convalida), che indica l'ora corrente. Per informazioni sui diversi valori temporali, consulta la sezione VerificationTime
valore di enumerazione in Riferimento API di AEM Forms.
È inoltre possibile specificare se eseguire il controllo di revoca nell'ambito del processo di verifica. Ad esempio, è possibile eseguire un controllo di revoca per determinare se il certificato è revocato. Per informazioni sulle opzioni di verifica della revoca, vedere la RevocationCheckStyle
valore di enumerazione in Riferimento API di AEM Forms.
Per eseguire il controllo di revoca di un certificato, specifica un URL a un server dell’elenco di revoche di certificati (CRL) utilizzando un CRLOptionSpec
oggetto. Tuttavia, se non si specifica un URL per il server CRL, il servizio Firma ottiene l’URL dal certificato.
Invece di utilizzare un server CRL, è possibile utilizzare un server OCSP (Online Certificate Status Protocol) quando si esegue il controllo di 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 online.)
È possibile impostare l'ordine del server CRL e OCSP utilizzato dal servizio Signature utilizzando Adobe Applications e Services. 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 di revoca, il servizio Firma non controlla la revoca del certificato. In altre parole, le informazioni sul server CRL e OCSP vengono ignorate.
CRLOptionSpec
e OCSPOptionSpec
oggetto. Ad esempio, per ignorare il server CRL, è possibile richiamare CRLOptionSpec
dell’oggetto setLocalURI
metodo .Timestamp è il processo di tracciamento dell'ora in cui un documento firmato o certificato è stato modificato. Dopo la firma di un documento, nessuno può modificarlo. L’indicazione dell’ora aiuta a garantire la validità di un documento firmato o certificato. È possibile impostare le opzioni di marca temporale utilizzando un TSPOptionSpec
oggetto. Ad esempio, puoi specificare l’URL di un server del provider di servizi di marca temporale (TSP).
VerificationTime.CURRENT_TIME
e il controllo di revoca è impostato su RevocationCheckStyle.BestEffort
. Poiché non sono specificate informazioni sul server CRL o OCSP, le informazioni sul server vengono ottenute dal certificato.Verificare la firma digitale
Per verificare correttamente una firma, specificare il nome completo del campo firma contenente la firma, ad esempio form1[0].#subform[1].SignatureField3[3]
. Quando si utilizza un campo modulo XFA, è anche possibile utilizzare il nome parziale del campo firma : SignatureField3
.
Per impostazione predefinita, il servizio Firma limita a 65 minuti il tempo di firma di un documento dopo il periodo di convalida. Se un utente tenta di verificare una firma al momento attuale e l’ora di firma è successiva all’ora corrente ed è entro 65 minuti, il servizio Firma non crea un errore di verifica.
Determinare lo stato della firma
Per verificare lo stato della firma digitale, è possibile controllarne lo stato.
Determinare l’identità del firmatario
Puoi determinare l’identità del firmatario, che può essere uno dei seguenti valori:
- Sconosciuto: Il firmatario è sconosciuto perché non è possibile eseguire la verifica del firmatario.
- Attendibile: Questo firmatario è affidabile.
- Non attendibile: Il firmatario non è attendibile.
Consulta anche
Verificare le firme digitali tramite l’API Java
Verifica delle firme digitali tramite l’API del servizio Web
Inclusione dei file libreria Java di AEM Forms
Impostazione delle proprietà di connessione
Verificare le firme digitali tramite l’API Java verify-digital-signatures-using-the-java-api
Verificare la firma digitale utilizzando l’API Servizio firme (Java):
-
Includi file di progetto
Includi file JAR client, ad esempio adobe-signatures-client.jar, nel percorso di classe del progetto Java.
-
- Crea un
ServiceClientFactory
oggetto contenente le proprietà di connessione. - Crea un
SignatureServiceClient
utilizzando il relativo costruttore e passandoServiceClientFactory
oggetto.
- Crea un
-
Ottenere il documento PDF contenente la firma da verificare
- Crea un
java.io.FileInputStream
oggetto che rappresenta il documento PDF contenente la firma da verificare utilizzando il relativo costruttore. Passa un valore stringa che specifica la posizione del documento PDF. - Crea un
com.adobe.idp.Document
utilizzando il relativo costruttore e passandojava.io.FileInputStream
oggetto.
- Crea un
-
Impostare le opzioni di esecuzione PKI
- Crea un
PKIOptions
utilizzando il relativo costruttore. - Imposta il tempo di verifica richiamando il
PKIOptions
dell’oggettosetVerificationTime
e passare unVerificationTime
valore di enumerazione che specifica il tempo di verifica. - Impostare l'opzione di verifica della revoca richiamando
PKIOptions
dell’oggettosetRevocationCheckStyle
e passare unRevocationCheckStyle
valore di enumerazione che specifica se eseguire il controllo di revoca.
- Crea un
-
Verificare la firma digitale
Verificare la firma richiamando il
SignatureServiceClient
dell’oggettoverify2
e passando i seguenti valori:- A
com.adobe.idp.Document
oggetto contenente un documento PDF con firma digitale o certificato. - Valore stringa che rappresenta il nome del campo firma contenente la firma da verificare.
- A
PKIOptions
oggetto contenente le opzioni di esecuzione PKI. - A
VerifySPIOptions
istanza che contiene informazioni SPI. Puoi specificarenull
per questo parametro.
La
verify2
restituisce unPDFSignatureVerificationInfo
oggetto contenente informazioni che possono essere utilizzate per verificare la firma digitale. - A
-
Determinare lo stato della firma
- Determinare lo stato della firma richiamando il
PDFSignatureVerificationInfo
dell’oggettogetStatus
metodo . Questo metodo restituisce unSignatureStatus
oggetto che specifica lo stato della firma. Ad esempio, se un documento PDF firmato non viene modificato, questo metodo restituisceSignatureStatus.DocumentSigNoChanges
.
- Determinare lo stato della firma richiamando il
-
Determinare l’identità del firmatario
- Determinare l’identità del firmatario richiamando il
PDFSignatureVerificationInfo
dell’oggettogetSigner
metodo . Questo metodo restituisce unIdentityInformation
oggetto. - Richiama il
IdentityInformation
dell’oggettogetStatus
metodo per determinare l’identità del firmatario. Questo metodo restituisce unIdentityStatus
valore di enumerazione che specifica l'identità. Ad esempio, se il firmatario è attendibile, questo metodo restituisceIdentityStatus.TRUSTED
.
- Determinare l’identità del firmatario richiamando il
Consulta anche
Avvio rapido (modalità SOAP): Verifica di una firma digitale tramite l’API Java
Inclusione dei file libreria Java di AEM Forms
Impostazione delle proprietà di connessione
Verifica delle firme digitali tramite l’API del servizio Web verify-digital-signatures-using-the-web-service-api
Verificare la firma digitale utilizzando l’API Servizio firme (servizio Web):
-
Includi file di progetto
Creare un progetto Microsoft .NET che utilizza MTOM. Assicurati di utilizzare la seguente definizione WSDL:
http://localhost:8080/soap/services/SignatureService?WSDL&lc_version=9.0.1
.note note NOTE Sostituisci localhost
con l’indirizzo IP del server che ospita AEM Forms. -
Creare un client di firma
-
Crea un
SignatureServiceClient
utilizzando il relativo costruttore predefinito. -
Crea un
SignatureServiceClient.Endpoint.Address
utilizzandoSystem.ServiceModel.EndpointAddress
costruttore. Passa un valore stringa che specifica il WSDL al servizio AEM Forms (ad esempio,http://localhost:8080/soap/services/SignatureService?WSDL
). Non è necessario utilizzare illc_version
attributo. Questo attributo viene utilizzato quando si crea un riferimento a un servizio.) -
Crea un
System.ServiceModel.BasicHttpBinding
ottenendo il valore delSignatureServiceClient.Endpoint.Binding
campo . Imposta il valore restituito suBasicHttpBinding
. -
Imposta la
System.ServiceModel.BasicHttpBinding
dell’oggettoMessageEncoding
campo aWSMessageEncoding.Mtom
. Questo valore assicura che venga utilizzato MTOM. -
Abilita l’autenticazione HTTP di base eseguendo le seguenti attività:
- Assegnare il nome utente del modulo di AEM al campo
SignatureServiceClient.ClientCredentials.UserName.UserName
. - Assegna il valore della password corrispondente al campo
SignatureServiceClient.ClientCredentials.UserName.Password
. - Assegna il valore costante
HttpClientCredentialType.Basic
al campoBasicHttpBindingSecurity.Transport.ClientCredentialType
. - Assegna il valore costante
BasicHttpSecurityMode.TransportCredentialOnly
al campoBasicHttpBindingSecurity.Security.Mode
.
- Assegnare il nome utente del modulo di AEM al campo
-
-
Ottenere il documento PDF contenente la firma da verificare
- Crea un
BLOB
utilizzando il relativo costruttore. LaBLOB
viene utilizzato per memorizzare un documento PDF contenente una firma digitale o certificata da verificare. - Crea un
System.IO.FileStream
richiamando 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 un array di byte che memorizza il contenuto del
System.IO.FileStream
oggetto. È possibile determinare le dimensioni dell'array di byte ottenendo ilSystem.IO.FileStream
dell’oggettoLength
proprietà. - Compilare l'array di byte con i dati del flusso richiamando il
System.IO.FileStream
dell’oggettoRead
metodo . Passa la matrice dei byte, la posizione iniziale e la lunghezza del flusso da leggere. - Popolare
BLOB
oggetto assegnando il relativoMTOM
proprietà il contenuto dell'array di byte.
- Crea un
-
Impostare le opzioni di esecuzione PKI
- Crea un
PKIOptions
utilizzando il relativo costruttore. - Impostare il tempo di verifica assegnando il
PKIOptions
dell’oggettoverificationTime
membroVerificationTime
valore di enumerazione che specifica il tempo di verifica. - Impostare l'opzione di verifica della revoca assegnando il
PKIOptions
dell’oggettorevocationCheckStyle
membroRevocationCheckStyle
valore di enumerazione che specifica se eseguire il controllo di revoca.
- Crea un
-
Verificare la firma digitale
Verificare la firma richiamando il
SignatureServiceClient
dell’oggettoverify2
e passando i seguenti valori:- La
BLOB
oggetto contenente un documento PDF con firma digitale o certificato. - Valore stringa che rappresenta il nome del campo firma contenente la firma da verificare.
- A
PKIOptions
oggetto contenente le opzioni di esecuzione PKI. - A
VerifySPIOptions
istanza che contiene informazioni SPI. Puoi specificarenull
per questo parametro.
La
verify2
restituisce unPDFSignatureVerificationInfo
oggetto contenente informazioni che possono essere utilizzate per verificare la firma digitale. - La
-
Determinare lo stato della firma
Determinare lo stato della firma ottenendo il valore della
PDFSignatureVerificationInfo
dell’oggettostatus
membro dati. Questo membro dati memorizza unSignatureStatus
oggetto che specifica lo stato della firma. Ad esempio, se un documento PDF firmato viene modificato, lastatus
il membro dati memorizza il valoreSignatureStatus.DocumentSigNoChanges
. -
Determinare l’identità del firmatario
- Determinare l’identità del firmatario recuperando il valore del
PDFSignatureVerificationInfo
dell’oggettosigner
membro dati. Questo membro restituisce unIdentityInformation
oggetto. - Recupera il
IdentityInformation
dell’oggettostatus
membro dati per determinare l’identità del firmatario. Questo membro dati restituisce unIdentityStatus
valore di enumerazione che specifica l'identità. Ad esempio, se il firmatario è attendibile, questo membro restituisceIdentityStatus.TRUSTED
.
- Determinare l’identità del firmatario recuperando il valore del
Consulta anche
Richiamo di AEM Forms tramite MTOM
Richiamo di AEM Forms tramite SwaRef
Verifica di più firme digitali verifying-multiple-digital-signatures
AEM Forms consente di verificare tutte le firme digitali presenti in un documento PDF. Si supponga che un documento di PDF contenga più firme digitali in seguito a un processo aziendale che richiede la firma di più firmatari. Ad esempio, considera una transazione finanziaria che richiede sia la firma di un funzionario del prestito che di un responsabile. È possibile utilizzare l’API Java del servizio Firma o l’API del servizio Web per verificare tutte le firme presenti nel documento PDF. Quando si verificano più firme digitali, è possibile controllare lo stato e le proprietà di ciascuna firma. Prima di considerare attendibile una firma digitale, è consigliabile verificarla. Si consiglia di verificare una firma digitale unica.
Riepilogo dei passaggi summary_of_steps-7
Per verificare 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 esecuzione PKI.
- Recupera tutte le firme digitali.
- Itera 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 utilizzi i servizi web, includi i file proxy.
I seguenti file JAR devono essere aggiunti al percorso di classe del progetto:
- adobe-livecycle-client.jar
- adobe-usermanager-client.jar
- adobe-signatures-client.jar
- adobe-utilities.jar (richiesto se AEM Forms è distribuito su JBoss)
- jbossall-client.jar (richiesto se AEM Forms è distribuito su JBoss)
Per informazioni sulla posizione di questi file JAR, vedi Inclusione dei file libreria Java di AEM Forms.
Creare un client di firma
Prima di eseguire un’operazione del servizio Firma a livello di programmazione, creare un client del servizio Signature.
Ottenere il documento PDF contenente le firme da verificare
Per verificare una firma utilizzata per firmare o certificare digitalmente un documento PDF, ottenere un documento PDF contenente una firma.
Impostare le opzioni di runtime PKI
Impostare le opzioni di esecuzione PKI che il servizio Signature utilizza per verificare tutte le firme di un documento PDF:
- Tempo di verifica
- Controllo della revoca
- Valori di marca temporale
Per impostare queste opzioni, puoi specificare il tempo di verifica. Ad esempio, è possibile selezionare l'ora corrente (l'ora nel computer della convalida), che indica l'ora corrente. Per informazioni sui diversi valori temporali, consulta la sezione VerificationTime
valore di enumerazione in Riferimento API di AEM Forms.
È inoltre possibile specificare se eseguire il controllo di revoca nell'ambito del processo di verifica. Ad esempio, è possibile eseguire un controllo di revoca per determinare se il certificato è revocato. Per informazioni sulle opzioni di verifica della revoca, vedere la RevocationCheckStyle
valore di enumerazione in Riferimento API di AEM Forms.
Per eseguire il controllo di revoca di un certificato, specifica un URL a un server dell’elenco di revoche di certificati (CRL) utilizzando un CRLOptionSpec
oggetto. Tuttavia, se non si specifica un URL per un server CRL, il servizio Firma ottiene l’URL dal certificato.
Invece di utilizzare un server CRL, è possibile utilizzare un server OCSP (Online Certificate Status Protocol) quando si esegue il controllo di 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 online.)
È possibile impostare l'ordine del server CRL e OCSP utilizzato dal servizio Signature utilizzando Adobe Applications e Services. Ad esempio, se il server OCSP è impostato per primo in Adobe Applications and Services, il server OCSP viene controllato, seguito dal server CRL.
Se non si esegue il controllo di revoca, il servizio Firma non controlla la revoca del certificato. In altre parole, le informazioni sul server CRL e OCSP vengono ignorate.
CRLOptionSpec
e OCSPOptionSpec
oggetto. Ad esempio, per ignorare il server CRL, è possibile richiamare CRLOptionSpec
dell’oggetto setLocalURI
metodo .Timestamp è il processo di tracciamento dell'ora in cui un documento firmato o certificato è stato modificato. Dopo la firma di un documento, nessuno può modificarlo. L’indicazione dell’ora aiuta a garantire la validità di un documento firmato o certificato. È possibile impostare le opzioni di marca temporale utilizzando un TSPOptionSpec
oggetto. Ad esempio, puoi specificare l’URL di un server del provider di servizi di marca temporale (TSP).
VerificationTime.CURRENT_TIME
e il controllo di revoca è impostato su RevocationCheckStyle.BestEffort
. Poiché non sono 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 presenti 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.
Itera attraverso tutte le firme
Itera attraverso ogni firma. In altre parole, per ogni firma, verifica la firma digitale e controlla l’identità del firmatario e lo stato di ciascuna firma. (Vedi Verifica delle firme digitali.)
Consulta anche
Verifica di più firme digitali tramite l’API Java
Verifica di più firme digitali tramite l’API del servizio Web
Inclusione dei file libreria Java di AEM Forms
Impostazione delle proprietà di connessione
Verifica di più firme digitali tramite l’API Java verify-multiple-digital-signatures-using-the-java-api
Verificare più firme digitali utilizzando l’API Servizio firme (Java):
-
Includi file di progetto
Includi file JAR client, ad esempio adobe-signatures-client.jar, nel percorso di classe del progetto Java.
-
Creare un client di firma
- Crea un
ServiceClientFactory
oggetto contenente le proprietà di connessione. - Crea un
SignatureServiceClient
utilizzando il relativo costruttore e passandoServiceClientFactory
oggetto.
- Crea un
-
Ottenere il documento PDF contenente le firme da verificare
- Crea un
java.io.FileInputStream
oggetto che rappresenta il documento PDF contenente più firme digitali da verificare utilizzando il relativo costruttore. Passa un valore stringa che specifica la posizione del documento PDF. - Crea un
com.adobe.idp.Document
utilizzando il relativo costruttore e passandojava.io.FileInputStream
oggetto.
- Crea un
-
Impostare le opzioni di runtime PKI
- Crea un
PKIOptions
utilizzando il relativo costruttore. - Imposta il tempo di verifica richiamando il
PKIOptions
dell’oggettosetVerificationTime
e passare unVerificationTime
valore di enumerazione che specifica il tempo di verifica. - Impostare l'opzione di controllo della revoca richiamando
PKIOptions
dell’oggettosetRevocationCheckStyle
e passare unRevocationCheckStyle
valore di enumerazione che specifica se eseguire il controllo di revoca.
- Crea un
-
Recupera tutte le firme digitali
Richiama il
SignatureServiceClient
dell’oggettoverifyPDFDocument
e passare i seguenti valori:- A
com.adobe.idp.Document
oggetto contenente un documento PDF contenente più firme digitali. - A
PKIOptions
oggetto contenente le opzioni di esecuzione PKI. - A
VerifySPIOptions
istanza che contiene informazioni SPI. Puoi specificarenull
per questo parametro.
La
verifyPDFDocument
restituisce unPDFDocumentVerificationInfo
oggetto contenente informazioni su tutte le firme digitali presenti nel documento PDF. - A
-
Itera attraverso tutte le firme
- Itera tutte le firme richiamando il
PDFDocumentVerificationInfo
dell’oggettogetVerificationInfos
metodo . Questo metodo restituisce unjava.util.List
oggetto in cui ogni elemento èPDFSignatureVerificationInfo
oggetto. Utilizza unjava.util.Iterator
oggetto per eseguire iterazioni nell'elenco di firme. - Utilizzo della
PDFSignatureVerificationInfo
è possibile eseguire attività quali la determinazione dello stato della firma richiamando ilPDFSignatureVerificationInfo
dell’oggettogetStatus
metodo . Questo metodo restituisce unSignatureStatus
oggetto il cui membro dati statico ti informa sullo stato della firma. Ad esempio, se la firma è sconosciuta, questo metodo restituisceSignatureStatus.DocumentSignatureUnknown
.
- Itera tutte le firme richiamando il
Consulta anche
Verifica di più firme digitali
Avvio rapido (modalità SOAP): Verifica di più firme digitali tramite l’API Java
Inclusione dei file libreria Java di AEM Forms
Impostazione delle proprietà di connessione
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 Servizio firme (servizio Web):
-
Includi file di progetto
Creare un progetto Microsoft .NET che utilizza MTOM. Assicurati di utilizzare la seguente definizione WSDL:
http://localhost:8080/soap/services/SignatureService?WSDL&lc_version=9.0.1
.note note NOTE Sostituisci localhost
con l’indirizzo IP del server che ospita AEM Forms. -
Creare un client di firma
-
Crea un
SignatureServiceClient
utilizzando il relativo costruttore predefinito. -
Crea un
SignatureServiceClient.Endpoint.Address
utilizzandoSystem.ServiceModel.EndpointAddress
costruttore. Passa un valore stringa che specifica il WSDL al servizio AEM Forms (ad esempio,http://localhost:8080/soap/services/SignatureService?WSDL
). Non è necessario utilizzare illc_version
attributo. Questo attributo viene utilizzato quando si crea un riferimento a un servizio.) -
Crea un
System.ServiceModel.BasicHttpBinding
ottenendo il valore delSignatureServiceClient.Endpoint.Binding
campo . Imposta il valore restituito suBasicHttpBinding
. -
Imposta la
System.ServiceModel.BasicHttpBinding
dell’oggettoMessageEncoding
campo aWSMessageEncoding.Mtom
. Questo valore assicura che venga utilizzato MTOM. -
Abilita l’autenticazione HTTP di base eseguendo le seguenti attività:
- Assegnare il nome utente del modulo di AEM al campo
SignatureServiceClient.ClientCredentials.UserName.UserName
. - Assegna il valore della password corrispondente al campo
SignatureServiceClient.ClientCredentials.UserName.Password
. - Assegna il valore costante
HttpClientCredentialType.Basic
al campoBasicHttpBindingSecurity.Transport.ClientCredentialType
. - Assegna il valore costante
BasicHttpSecurityMode.TransportCredentialOnly
al campoBasicHttpBindingSecurity.Security.Mode
.
- Assegnare il nome utente del modulo di AEM al campo
-
-
Ottenere il documento PDF contenente le firme da verificare
- Crea un
BLOB
utilizzando il relativo costruttore. LaBLOB
memorizza un documento PDF contenente più firme digitali da verificare. - Crea un
System.IO.FileStream
richiamando il relativo costruttore. Passa un valore stringa che rappresenta la posizione del file del documento PDF e la modalità di apertura del file. - Creare un array di byte che memorizza il contenuto del
System.IO.FileStream
oggetto. È possibile determinare le dimensioni dell'array di byte ottenendo ilSystem.IO.FileStream
dell’oggettoLength
proprietà. - Compilare l'array di byte con i dati del flusso richiamando il
System.IO.FileStream
dell’oggettoRead
metodo . Passa la matrice dei byte, la posizione iniziale e la lunghezza del flusso da leggere. - Popolare
BLOB
oggetto assegnando il relativoMTOM
proprietà il contenuto dell'array di byte.
- Crea un
-
Impostare le opzioni di runtime PKI
- Crea un
PKIOptions
utilizzando il relativo costruttore. - Impostare il tempo di verifica assegnando il
PKIOptions
dell’oggettoverificationTime
membroVerificationTime
valore di enumerazione che specifica il tempo di verifica. - Impostare l'opzione di controllo della revoca assegnando il
PKIOptions
dell’oggettorevocationCheckStyle
membroRevocationCheckStyle
valore di enumerazione che specifica se eseguire il controllo di revoca.
- Crea un
-
Recupera tutte le firme digitali
Richiama il
SignatureServiceClient
dell’oggettoverifyPDFDocument
e passare i seguenti valori:- A
BLOB
oggetto contenente un documento PDF contenente più firme digitali. - A
PKIOptions
oggetto contenente le opzioni di esecuzione PKI. - A
VerifySPIOptions
istanza che contiene informazioni SPI. È possibile specificare null per questo parametro.
La
verifyPDFDocument
restituisce unPDFDocumentVerificationInfo
oggetto contenente informazioni su tutte le firme digitali presenti nel documento PDF. - A
-
Itera attraverso tutte le firme
- Itera tutte le firme ottenendo il
PDFDocumentVerificationInfo
dell’oggettoverificationInfos
membro dati. Questo membro dati restituisce unObject
array in cui ogni elemento èPDFSignatureVerificationInfo
oggetto. - Utilizzo della
PDFSignatureVerificationInfo
è possibile eseguire attività quali determinare lo stato della firma ottenendoPDFSignatureVerificationInfo
dell’oggettostatus
membro dati. Questo membro dati restituisce unSignatureStatus
oggetto il cui membro dati statico ti informa sullo stato della firma. Ad esempio, se la firma è sconosciuta, questo metodo restituisceSignatureStatus.DocumentSignatureUnknown
.
- Itera tutte le firme ottenendo il
Consulta anche
Verifica di più firme digitali
Richiamo di AEM Forms tramite MTOM
Richiamo di AEM Forms tramite SwaRef
Rimozione di firme digitali removing-digital-signatures
È necessario rimuovere le firme digitali da un campo firma prima di poter applicare una firma digitale più recente. 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.
- Ottenere 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, assicurati di includere i file proxy.
I seguenti file JAR devono essere aggiunti al percorso di classe del progetto:
- adobe-livecycle-client.jar
- adobe-usermanager-client.jar
- adobe-signatures-client.jar
- adobe-utilities.jar (richiesto se AEM Forms è distribuito su JBoss)
- jbossall-client.jar (richiesto se AEM Forms è distribuito su JBoss)
Per informazioni sulla posizione di questi file JAR, vedi Inclusione dei file libreria Java di AEM Forms.
Creare un client di firma
Prima di poter eseguire un’operazione del servizio Firma a livello di programmazione, è necessario creare un client del servizio Signature.
Ottenere il documento PDF contenente una firma da rimuovere
Per rimuovere una firma da un documento PDF, è necessario ottenere un documento PDF contenente una firma.
Rimuovere la firma digitale dal campo firma
Per rimuovere correttamente una firma digitale da un documento PDF, è necessario specificare il nome del campo firma contenente la firma digitale. Inoltre, è necessario disporre dell'autorizzazione per rimuovere la firma digitale; in caso contrario, si verifica un'eccezione.
Salvare il documento PDF come file PDF
Dopo che il servizio Firma rimuove una firma digitale da un campo 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 tramite l’API Java
Rimuovere le firme digitali tramite l’API del servizio Web
Inclusione dei file libreria Java di AEM Forms
Impostazione delle proprietà di connessione
Rimuovere le firme digitali tramite l’API Java remove-digital-signatures-using-the-java-api
Rimuovere una firma digitale utilizzando l’API Firma (Java):
-
Includi file di progetto
Includi file JAR client, ad esempio adobe-signatures-client.jar, nel percorso di classe del progetto Java.
-
Creare un client di firma.
- Crea un
ServiceClientFactory
oggetto contenente le proprietà di connessione. - Crea un
SignatureServiceClient
utilizzando il relativo costruttore e passandoServiceClientFactory
oggetto.
- Crea un
-
Ottenere il documento PDF contenente una firma da rimuovere
- Crea un
java.io.FileInputStream
oggetto che rappresenta il documento PDF contenente la firma da rimuovere utilizzando il relativo costruttore e passando un valore di stringa che specifica la posizione del documento PDF. - Crea un
com.adobe.idp.Document
utilizzando il relativo costruttore e passandojava.io.FileInputStream
oggetto.
- Crea un
-
Rimuovere la firma digitale dal campo firma
Rimuovere una firma digitale da un campo firma richiamando il
SignatureServiceClient
dell’oggettoclearSignatureField
e passando i seguenti valori:- A
com.adobe.idp.Document
oggetto che rappresenta il documento PDF contenente la firma da rimuovere. - Valore stringa che specifica il nome del campo firma contenente la firma digitale.
La
clearSignatureField
restituisce uncom.adobe.idp.Document
oggetto che rappresenta il documento PDF da cui è stata rimossa la firma digitale. - A
-
Salvare il documento PDF come file PDF
- Crea un
java.io.File
e assicurati che l'estensione del file sia .pdf. - Richiama il
com.adobe.idp.Document
dell’oggettocopyToFile
metodo . Passa lajava.io.File
per copiare il contenuto delcom.adobe.idp.Document
al file. Assicurati di utilizzareDocument
oggetto restituito daclearSignatureField
metodo .
- Crea un
Consulta anche
Avvio rapido (modalità SOAP): Rimozione di una firma digitale tramite l’API Java
Inclusione dei file libreria Java di AEM Forms
Impostazione delle proprietà di connessione
Rimuovere le firme digitali tramite l’API del servizio Web remove-digital-signatures-using-the-web-service-api
Rimuovere una firma digitale utilizzando l’API Signature (servizio Web):
-
Includi file di progetto
Creare un progetto Microsoft .NET che utilizza MTOM. Assicurati di utilizzare la seguente definizione WSDL:
http://localhost:8080/soap/services/SignatureService?WSDL&lc_version=9.0.1
.note note NOTE Sostituisci localhost
con l’indirizzo IP del server che ospita AEM Forms. -
Creare un client di firma
-
Crea un
SignatureServiceClient
utilizzando il relativo costruttore predefinito. -
Crea un
SignatureServiceClient.Endpoint.Address
utilizzandoSystem.ServiceModel.EndpointAddress
costruttore. Passa un valore stringa che specifica il WSDL al servizio AEM Forms (ad esempio,http://localhost:8080/soap/services/SignatureService?WSDL
). Non è necessario utilizzare illc_version
attributo. Questo attributo viene utilizzato quando si crea un riferimento a un servizio.) -
Crea un
System.ServiceModel.BasicHttpBinding
ottenendo il valore delSignatureServiceClient.Endpoint.Binding
campo . Imposta il valore restituito suBasicHttpBinding
. -
Imposta la
System.ServiceModel.BasicHttpBinding
dell’oggettoMessageEncoding
campo aWSMessageEncoding.Mtom
. Questo valore assicura che venga utilizzato MTOM. -
Abilita l’autenticazione HTTP di base eseguendo le seguenti attività:
- Assegnare il nome utente del modulo di AEM al campo
SignatureServiceClient.ClientCredentials.UserName.UserName
. - Assegna il valore della password corrispondente al campo
SignatureServiceClient.ClientCredentials.UserName.Password
. - Assegna il valore costante
HttpClientCredentialType.Basic
al campoBasicHttpBindingSecurity.Transport.ClientCredentialType
. - Assegna il valore costante
BasicHttpSecurityMode.TransportCredentialOnly
al campoBasicHttpBindingSecurity.Security.Mode
.
- Assegnare il nome utente del modulo di AEM al campo
-
-
Ottenere il documento PDF contenente una firma da rimuovere
- Crea un
BLOB
utilizzando il relativo costruttore. LaBLOB
viene utilizzato per memorizzare un documento PDF contenente una firma digitale da rimuovere. - Crea un
System.IO.FileStream
richiamando il relativo costruttore e passando un valore di stringa che rappresenta la posizione del file del documento PDF firmato e la modalità di apertura del file. - Creare un array di byte che memorizza il contenuto del
System.IO.FileStream
oggetto. È possibile determinare le dimensioni dell'array di byte ottenendo ilSystem.IO.FileStream
dell’oggettoLength
proprietà. - Compilare l'array di byte con i dati del flusso richiamando il
System.IO.FileStream
dell’oggettoRead
metodo . Passa la matrice dei byte, la posizione iniziale e la lunghezza del flusso da leggere. - Popolare
BLOB
oggetto assegnando il relativoMTOM
con il contenuto dell'array di byte.
- Crea un
-
Rimuovere la firma digitale dal campo firma
Rimuovere la firma digitale richiamando il
SignatureServiceClient
dell’oggettoclearSignatureField
e passando i seguenti valori:- A
BLOB
oggetto contenente il documento PDF firmato. - Valore stringa che rappresenta il nome del campo firma contenente la firma digitale da rimuovere.
La
clearSignatureField
restituisce unBLOB
oggetto che rappresenta il documento PDF da cui è stata rimossa la firma digitale. - A
-
Salvare il documento PDF come file PDF
- Crea un
System.IO.FileStream
richiamando il relativo costruttore e passando un valore di stringa che rappresenta la posizione del file del documento PDF contenente un campo firma vuoto e la modalità di apertura del file. - Creare un array di byte che memorizza il contenuto del
BLOB
oggetto restituito dasign
metodo . Compilare l’array di byte ottenendo il valore delBLOB
dell’oggettoMTOM
membro dati. - Crea un
System.IO.BinaryWriter
richiamando il relativo costruttore e passandoSystem.IO.FileStream
oggetto. - Scrivi il contenuto dell’array di byte al file PDF richiamando il
System.IO.BinaryWriter
dell’oggettoWrite
e passare l'array di byte.
- Crea un
Consulta anche
Richiamo di AEM Forms tramite MTOM
Richiamo di AEM Forms tramite SwaRef