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.
È possibile creare un gestore di firme personalizzato per il servizio Signature che viene richiamato quando vengono invocate determinate operazioni, ad esempio la firma di un documento PDF.
Nomi dei campi firma
Per alcune operazioni del servizio Firma è necessario specificare il nome del campo firma in cui viene eseguita 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]
. È possibile specificare SignatureField1[0]
invece di form1[0].Form1[0].SignatureField1[0]
.
A volte un conflitto causa la firma del campo errato da parte del servizio Firma o l’esecuzione di un’altra operazione che richiede il nome del campo firma. Questo conflitto è il risultato del nome SignatureField1[0]
visualizzato 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 si specifica 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]
invece di SignatureField1[0]
.
È possibile eseguire queste attività utilizzando il servizio Firma:
Per ulteriori informazioni sul servizio Signature, vedere Riferimento servizi per AEM Forms.
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.
Alcuni tipi di documenti PDF non consentono l’aggiunta programmatica di un campo firma. Per ulteriori informazioni sul servizio Signature e sull'aggiunta di campi firma, vedere Riferimento servizi per AEM Forms.
Per aggiungere un campo firma a un documento PDF, eseguire le operazioni seguenti:
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:
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 al quale viene aggiunto un campo firma.
Aggiungere un campo firma
Per aggiungere correttamente un campo firma a un documento PDF, è necessario specificare i 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 sono bloccati dopo l’applicazione della 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 per consentire agli utenti di 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 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
ServiceClientFactory
contenente le proprietà di connessione.SignatureServiceClient
utilizzando il relativo costruttore e passando l'oggetto ServiceClientFactory
.Ottenere un documento PDF al quale viene aggiunto un campo firma
java.io.FileInputStream
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.com.adobe.idp.Document
utilizzando il relativo costruttore e passando l'oggetto java.io.FileInputStream
.Aggiungere un campo firma
Creare un oggetto PositionRectangle
che specifica la posizione del campo firma utilizzando il relativo costruttore. All'interno del costruttore, specificare i valori delle coordinate.
Se necessario, creare un oggetto FieldMDPOptions
che specifichi i campi bloccati quando al campo firma viene applicata una firma digitale.
Aggiungere un campo firma a un documento PDF richiamando il metodo addSignatureField
dell’oggetto SignatureServiceClient
e passando i seguenti valori:
com.adobe.idp
. Document
oggetto che rappresenta il documento PDF a cui viene aggiunto un campo firma.java.lang.Integer
che rappresenta il numero di pagina a cui viene aggiunto un campo firma.PositionRectangle
che specifica la posizione del campo firma.FieldMDPOptions
che specifica i campi del documento PDF bloccati dopo l’applicazione della firma digitale al campo firma. Questo valore del parametro è facoltativo ed è possibile trasmettere null
.Un oggetto PDFSeedValueOptions
che specifica diversi valori di esecuzione. Questo valore del parametro è facoltativo ed è possibile trasmettere null
.
Il metodo addSignatureField
restituisce un valore com.adobe.idp
. Document
oggetto che rappresenta un documento PDF contenente un campo firma.
È possibile richiamare il metodo addInvisibleSignatureField
dell'oggetto SignatureServiceClient
per aggiungere un campo firma invisibile.
Salvare il documento PDF come file PDF
java.io.File
e assicurati che l'estensione del file sia .pdf.com.adobe.idp
. Document
il copyToFile
metodo dell'oggetto per copiare il contenuto dell' Document
oggetto nel file. Assicurati di utilizzare il com.adobe.idp
. Document
oggetto restituito dal addSignatureField
metodo .Consulta anche
Avvio rapido API Servizio firma
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
.
Sostituisci localhost
con l'indirizzo IP del server che ospita AEM Forms.
Creare un client di firma
Creare un oggetto SignatureServiceClient
utilizzando il relativo costruttore predefinito.
Creare un oggetto SignatureServiceClient.Endpoint.Address
utilizzando il costruttore System.ServiceModel.EndpointAddress
. Passa un valore stringa che specifica il WSDL al servizio AEM Forms (ad esempio, http://localhost:8080/soap/services/SignatureService?WSDL
). Non è necessario utilizzare l'attributo lc_version
. Questo attributo viene utilizzato quando si crea un riferimento a un servizio.)
Crea un oggetto System.ServiceModel.BasicHttpBinding
ottenendo il valore del campo SignatureServiceClient.Endpoint.Binding
. Imposta il valore restituito su BasicHttpBinding
.
Impostare il campo MessageEncoding
dell'oggetto System.ServiceModel.BasicHttpBinding
su WSMessageEncoding.Mtom
. Questo valore assicura che venga utilizzato MTOM.
Abilita l’autenticazione HTTP di base eseguendo le seguenti attività:
SignatureServiceClient.ClientCredentials.UserName.UserName
.SignatureServiceClient.ClientCredentials.UserName.Password
.HttpClientCredentialType.Basic
al campo BasicHttpBindingSecurity.Transport.ClientCredentialType
.BasicHttpSecurityMode.TransportCredentialOnly
al campo BasicHttpBindingSecurity.Security.Mode
.Ottenere un documento PDF al quale viene aggiunto un campo firma
BLOB
utilizzando il relativo costruttore. L’oggetto BLOB
viene utilizzato per memorizzare il documento PDF che conterrà un campo firma.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.System.IO.FileStream
. È possibile determinare le dimensioni dell'array di byte ottenendo la proprietà Length
dell'oggetto System.IO.FileStream
.Read
dell’oggetto System.IO.FileStream
e passando l’array di byte, la posizione iniziale e la lunghezza del flusso da leggere.BLOB
assegnando la relativa proprietà MTOM
con il contenuto dell'array di byte.Aggiungere un campo firma
Aggiungere un campo firma al documento PDF richiamando il metodo addSignatureField
dell’oggetto SignatureServiceClient
e passando i seguenti valori:
BLOB
che rappresenta il documento PDF a cui viene aggiunto un campo firma.PositionRect
che specifica la posizione del campo firma.FieldMDPOptions
che specifica i campi del documento PDF bloccati dopo l’applicazione della firma digitale al campo firma. Questo valore del parametro è facoltativo ed è possibile trasmettere null
.PDFSeedValueOptions
che specifica diversi valori di esecuzione. Questo valore del parametro è facoltativo ed è possibile trasmettere null
.Il metodo addSignatureField
restituisce un oggetto BLOB
che rappresenta un documento PDF contenente un campo firma.
Salvare il documento PDF come file PDF
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.BLOB
restituito dal metodo addSignatureField
. Compilare l'array di byte ottenendo il valore del membro dati BLOB
dell'oggetto binaryData
.System.IO.BinaryWriter
richiamandone il costruttore e passando l'oggetto System.IO.FileStream
.Write
dell’oggetto System.IO.BinaryWriter
e passando l’array di byte.Consulta anche
Richiamo di AEM Forms tramite MTOM
Richiamo di AEM Forms tramite SwaRef
È 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]
.
Per ulteriori informazioni sul servizio Firma, vedere Riferimento servizi per AEM Forms
Per recuperare i nomi dei campi firma, eseguire le operazioni seguenti:
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:
Per informazioni sulla posizione di questi file JAR, consulta Inclusione dei file della libreria Java 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 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
ServiceClientFactory
contenente le proprietà di connessione.SignatureServiceClient
utilizzando il relativo costruttore e passando l'oggetto ServiceClientFactory
.Ottenere il documento PDF contenente i campi firma
java.io.FileInputStream
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.com.adobe.idp.Document
utilizzando il relativo costruttore e passando l'oggetto java.io.FileInputStream
.Recupera i nomi dei campi firma
getSignatureFieldList
dell’oggetto SignatureServiceClient
e passando l’oggetto com.adobe.idp.Document
che contiene il documento PDF contenente i campi firma. Questo metodo restituisce un oggetto java.util.List
, in cui ogni elemento contiene un oggetto PDFSignatureField
. Utilizzando questo oggetto è possibile ottenere informazioni aggiuntive su un campo firma, ad esempio se è visibile.java.util.List
per determinare se sono presenti nomi di campo firma. Per ogni campo firma del documento PDF è possibile ottenere un oggetto PDFSignatureField
separato. Per ottenere il nome del campo firma, richiamare il metodo getName
dell’oggetto PDFSignatureField
. Questo metodo restituisce un valore stringa che specifica il nome del campo firma.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 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
.
Sostituisci localhost
con l'indirizzo IP del server che ospita AEM Forms.
Creare un client di firma
Creare un oggetto SignatureServiceClient
utilizzando il relativo costruttore predefinito.
Creare un oggetto SignatureServiceClient.Endpoint.Address
utilizzando il costruttore System.ServiceModel.EndpointAddress
. Passa un valore stringa che specifica il WSDL al servizio AEM Forms (ad esempio, http://localhost:8080/soap/services/SignatureService?WSDL
). Non è necessario utilizzare l'attributo lc_version
. Questo attributo viene utilizzato quando si crea un riferimento a un servizio.)
Crea un oggetto System.ServiceModel.BasicHttpBinding
ottenendo il valore del campo SignatureServiceClient.Endpoint.Binding
. Imposta il valore restituito su BasicHttpBinding
.
Impostare il campo MessageEncoding
dell'oggetto System.ServiceModel.BasicHttpBinding
su WSMessageEncoding.Mtom
. Questo valore assicura che venga utilizzato MTOM.
Abilita l’autenticazione HTTP di base eseguendo le seguenti attività:
SignatureServiceClient.ClientCredentials.UserName.UserName
.SignatureServiceClient.ClientCredentials.UserName.Password
.HttpClientCredentialType.Basic
al campo BasicHttpBindingSecurity.Transport.ClientCredentialType
.BasicHttpSecurityMode.TransportCredentialOnly
al campo BasicHttpBindingSecurity.Security.Mode
.Ottenere il documento PDF contenente i campi firma
BLOB
utilizzando il relativo costruttore. L’oggetto BLOB
viene utilizzato per memorizzare il documento PDF contenente campi firma.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.System.IO.FileStream
. È possibile determinare le dimensioni dell'array di byte ottenendo la proprietà Length
dell'oggetto System.IO.FileStream
.Read
dell’oggetto System.IO.FileStream
e passando l’array di byte, la posizione iniziale e la lunghezza del flusso da leggere.BLOB
assegnando al relativo campo MTOM
il contenuto dell'array di byte.Recupera i nomi dei campi firma
getSignatureFieldList
dell’oggetto BLOB
e passando l’oggetto SignatureServiceClient
che contiene il documento PDF contenente i campi firma. Questo metodo restituisce un oggetto raccolta MyArrayOfPDFSignatureField
in cui ogni elemento contiene un oggetto PDFSignatureField
.MyArrayOfPDFSignatureField
per determinare se sono presenti nomi di campo firma. Per ogni campo firma del documento PDF è possibile ottenere un oggetto PDFSignatureField
. Per ottenere il nome del campo firma, richiamare il metodo getName
dell’oggetto PDFSignatureField
. Questo metodo restituisce un valore stringa che specifica il nome del campo firma.Consulta anche
Recupero dei nomi dei campi firma
Richiamo di AEM Forms tramite MTOM
Richiamo di AEM Forms tramite SwaRef
È 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.
Un dizionario di blocco dei campi specifica un elenco di campi che sono bloccati al momento della firma del campo firma. Un campo bloccato impedisce agli utenti di apportare modifiche al campo. Un dizionario dei valori di seed contiene informazioni vincolanti 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 quando un campo firma viene firmato. Le modifiche apportate al dizionario dei valori di seed non consentono l’utilizzo di tipi specifici di modifiche al documento.
Per ulteriori informazioni sul servizio Firma e sulla modifica dei campi firma, vedere Guida di riferimento ai servizi per AEM Forms.
Per modificare i campi firma presenti in un documento PDF, eseguire le operazioni seguenti:
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:
Per informazioni sulla posizione di questi file JAR, consulta Inclusione dei file della 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
Recuperare 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 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 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. (Vedere 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 . (Vedere 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:
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 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
ServiceClientFactory
contenente le proprietà di connessione.SignatureServiceClient
utilizzando il relativo costruttore e passando l'oggetto ServiceClientFactory
.Ottenere il documento PDF contenente il campo firma da modificare
java.io.FileInputStream
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.com.adobe.idp.Document
utilizzando il relativo costruttore e passando l'oggetto java.io.FileInputStream
.Impostare i valori dei dizionari
PDFSignatureFieldProperties
utilizzando il relativo costruttore. Un oggetto PDFSignatureFieldProperties
memorizza informazioni sul dizionario di blocco dei campi firma e sul dizionario dei valori di seed.PDFSeedValueOptionSpec
utilizzando il relativo costruttore. Questo oggetto consente di impostare i valori del dizionario dei valori di seed.setMdpValue
dell’oggetto MDPPermissions.NoChanges
e passando il valore di enumerazione PDFSeedValueOptionSpec
.FieldMDPOptionSpec
utilizzando il relativo costruttore. Questo oggetto consente di impostare i valori del dizionario di blocco dei campi firma.setMdpValue
dell’oggetto FieldMDPAction.ALL
e passando il valore di enumerazione FieldMDPOptionSpec
.setSeedValue
dell’oggetto PDFSeedValueOptionSpec
e passando l’oggetto PDFSignatureFieldProperties
.setFieldMDP
dell’oggetto FieldMDPOptionSpec
e passare l’oggetto PDFSignatureFieldProperties
.Per visualizzare tutti i valori del dizionario dei valori di seed che è possibile impostare, vedere il riferimento alla classe PDFSeedValueOptionSpec
. (Consulta Riferimento API di AEM Forms.)
Modificare il campo firma
Modificare il campo firma richiamando il metodo modifySignatureField
dell’oggetto SignatureServiceClient
e passando i seguenti valori:
com.adobe.idp.Document
che memorizza il documento PDF contenente il campo firma da modificarePDFSignatureFieldProperties
che memorizza le informazioni sul dizionario di blocco dei campi firma e sul dizionario dei valori di seedIl metodo modifySignatureField
restituisce un oggetto com.adobe.idp.Document
che memorizza un documento PDF contenente il campo firma modificato.
Salvare il documento PDF come file PDF
java.io.File
e assicurati che l'estensione del nome file sia .pdf.copyToFile
dell'oggetto com.adobe.idp.Document
per copiare nel file il contenuto dell'oggetto com.adobe.idp.Document
. Assicurarsi di utilizzare l'oggetto com.adobe.idp.Document
restituito dal metodo modifySignatureField
.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
.
Sostituisci localhost
con l'indirizzo IP del server che ospita AEM Forms.
Creare un client di firma
Creare un oggetto SignatureServiceClient
utilizzando il relativo costruttore predefinito.
Creare un oggetto SignatureServiceClient.Endpoint.Address
utilizzando il costruttore System.ServiceModel.EndpointAddress
. Passa un valore stringa che specifica il WSDL al servizio AEM Forms (ad esempio, http://localhost:8080/soap/services/SignatureService?WSDL
). Non è necessario utilizzare l'attributo lc_version
. Questo attributo viene utilizzato quando si crea un riferimento a un servizio.)
Crea un oggetto System.ServiceModel.BasicHttpBinding
ottenendo il valore del campo SignatureServiceClient.Endpoint.Binding
. Imposta il valore restituito su BasicHttpBinding
.
Impostare il campo MessageEncoding
dell'oggetto System.ServiceModel.BasicHttpBinding
su WSMessageEncoding.Mtom
. Questo valore assicura che venga utilizzato MTOM.
Abilita l’autenticazione HTTP di base eseguendo le seguenti attività:
SignatureServiceClient.ClientCredentials.UserName.UserName
.SignatureServiceClient.ClientCredentials.UserName.Password
.HttpClientCredentialType.Basic
al campo BasicHttpBindingSecurity.Transport.ClientCredentialType
.BasicHttpSecurityMode.TransportCredentialOnly
al campo BasicHttpBindingSecurity.Security.Mode
.Ottenere il documento PDF contenente il campo firma da modificare
BLOB
utilizzando il relativo costruttore. L’oggetto BLOB
viene utilizzato per memorizzare il documento PDF contenente il campo firma da modificare.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.System.IO.FileStream
. È possibile determinare le dimensioni dell'array di byte ottenendo la proprietà Length
dell'oggetto System.IO.FileStream
.Read
dell’oggetto System.IO.FileStream
e passando l’array di byte, la posizione iniziale e la lunghezza del flusso da leggere.BLOB
assegnando alla relativa proprietà MTOM
il contenuto dell'array di byte.Impostare i valori dei dizionari
PDFSignatureFieldProperties
utilizzando il relativo costruttore. Questo oggetto memorizza le informazioni sul dizionario di blocco dei campi firma e sul dizionario dei valori di seed.PDFSeedValueOptionSpec
utilizzando il relativo costruttore. Questo oggetto consente di impostare i valori del dizionario dei valori di seed.MDPPermissions.NoChanges
al membro dati PDFSeedValueOptionSpec
dell'oggetto mdpValue
.FieldMDPOptionSpec
utilizzando il relativo costruttore. Questo oggetto consente di impostare i valori del dizionario di blocco dei campi firma.FieldMDPAction.ALL
al membro dati FieldMDPOptionSpec
dell’oggetto mdpValue
.PDFSeedValueOptionSpec
al membro dati PDFSignatureFieldProperties
dell'oggetto seedValue
.FieldMDPOptionSpec
al membro dati PDFSignatureFieldProperties
dell'oggetto fieldMDP
.Per visualizzare tutti i valori del dizionario dei valori di seed che è possibile impostare, vedere il riferimento alla classe PDFSeedValueOptionSpec
. (Consulta Riferimento API AEM Forms).
Modificare il campo firma
Modificare il campo firma richiamando il metodo modifySignatureField
dell’oggetto SignatureServiceClient
e passando i seguenti valori:
BLOB
che memorizza il documento PDF contenente il campo firma da modificarePDFSignatureFieldProperties
che memorizza le informazioni sul dizionario di blocco dei campi firma e sul dizionario dei valori di seedIl metodo modifySignatureField
restituisce un oggetto BLOB
che memorizza un documento PDF contenente il campo firma modificato.
Salvare il documento PDF come file PDF
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.BLOB
restituito dal metodo addSignatureField
. Compilare l'array di byte ottenendo il valore del membro dati BLOB
dell'oggetto MTOM
.System.IO.BinaryWriter
richiamandone il costruttore e passando l'oggetto System.IO.FileStream
.Write
dell’oggetto System.IO.BinaryWriter
e passando l’array di byte.Consulta anche
Richiamo di AEM Forms tramite MTOM
Richiamo di AEM Forms tramite SwaRef
Le firme digitali possono essere applicate ai documenti PDF per garantire un livello di protezione. 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 la tecnologia 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.
Prima di poter firmare digitalmente un documento PDF, è necessario assicurarsi di aggiungere il certificato ad AEM Forms. Un certificato viene aggiunto tramite la console di amministrazione o a livello di programmazione utilizzando l’API di Trust Manager. (Vedere Importazione delle credenziali tramite l'API di Trust Manager.)
È 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:
Per informazioni sulla gestione delle credenziali di protezione, consulta la guida all’installazione e alla distribuzione di AEM Forms* per il server delle applicazioni.
Esistono differenze tra la firma e la certificazione dei documenti. (Vedere Certificazione di documenti PDF.)
La firma non è supportata da tutti i documenti PDF. Per ulteriori informazioni sul servizio Firma e sulla firma digitale dei documenti, vedere Guida di riferimento ai servizi per AEM Forms.
Il servizio Signature non supporta i file XDP con dati PDF incorporati come input per un’operazione, ad esempio la certificazione di un documento. Questa azione causa la generazione di un PDFOperationException
da parte del servizio Signature. Per risolvere il problema, convertire il file XDP in un file PDF utilizzando il servizio Utilità PDF, quindi passare il file PDF convertito a un’operazione del servizio Firma. (Vedere Uso delle utility 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 è 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 si tenta di firmare un modulo basato su XFA utilizzando l’API del servizio Firma, i dati potrebbero mancare nel percorso View
Signed
Version
presente in Acrobat. Ad esempio, considera il seguente flusso di lavoro:
Per firmare digitalmente un documento PDF, eseguire le operazioni seguenti:
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:
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:
Per impostare le opzioni di aspetto, utilizzare un oggetto PDFSignatureAppearanceOptionSpec
. Ad esempio, è possibile visualizzare la data all’interno di una firma richiamando il metodo setShowDate
dell’oggetto true
e passando PDFSignatureAppearanceOptionSpec
.
È 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:
Per eseguire il controllo di revoca su un certificato, è possibile specificare un URL per un server dell’elenco di revoche di certificati (CRL) utilizzando un oggetto CRLOptionSpec
. Tuttavia, se si desidera eseguire il controllo di revoca e non si specifica un URL 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.
Anche se è possibile specificare un CRL o un server OCSP nel certificato, è possibile sostituire l’URL specificato nel certificato utilizzando un oggetto CRLOptionSpec
e un oggetto OCSPOptionSpec
. Ad esempio, per ignorare il server CRL, è possibile richiamare il metodo setLocalURI
dell’oggetto CRLOptionSpec
.
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 oggetto TSPOptionSpec
. Ad esempio, puoi specificare l’URL di un server del provider di servizi di marca temporale (TSP).
Nel Java e nel servizio Web passano attraverso le sezioni e il corrispondente avvio rapido, viene utilizzato il controllo di revoca. Poiché non sono specificate informazioni sul server CRL o OCSP, le informazioni sul server vengono ottenute dal certificato utilizzato per firmare digitalmente il documento PDF.
Per firmare correttamente un documento PDF, è possibile specificare il nome completo del campo firma che conterrà la firma digitale, ad esempio form1[0].#subform[1].SignatureField3[3]
. Quando si utilizza un campo modulo XFA, è possibile utilizzare anche il nome parziale del campo firma: SignatureField3[3]
.
Per firmare digitalmente un documento PDF è inoltre necessario fare riferimento a una credenziale di protezione. Per fare riferimento a una credenziale di protezione, specificare un alias. L’alias è un riferimento a una credenziale effettiva che può trovarsi in un file PKCS#12 (con estensione .pfx) o in un modulo di 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 che il servizio Firma firma ha apposto la firma digitale al documento PDF, è possibile salvarlo come file PDF per consentire agli utenti di aprirlo in Acrobat o Adobe Reader.
Consulta anche
Firma digitale dei documenti PDF utilizzando 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 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
ServiceClientFactory
contenente le proprietà di connessione.SignatureServiceClient
utilizzando il relativo costruttore e passando l'oggetto ServiceClientFactory
.Richiedere la firma del documento PDF
java.io.FileInputStream
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.com.adobe.idp.Document
utilizzando il relativo costruttore e passando l'oggetto java.io.FileInputStream
.Firma il documento PDF
Firma il documento PDF richiamando il metodo sign
dell’oggetto SignatureServiceClient
e passando i seguenti valori:
com.adobe.idp.Document
che rappresenta il documento PDF da firmare.Credential
che rappresenta la credenziale utilizzata per firmare digitalmente il documento PDF. Creare un oggetto Credential
richiamando il metodo statico Credential
dell'oggetto e passando un valore di stringa che specifica il valore di alias corrispondente alla credenziale di sicurezza.getInstance
HashAlgorithm
che specifica un membro di dati statico che rappresenta l'algoritmo hash da utilizzare per digest del documento PDF. Ad esempio, puoi specificare HashAlgorithm.SHA1
per utilizzare l’algoritmo SHA1.PDFSignatureAppearanceOptions
che controlla l'aspetto della firma digitale. Ad esempio, è possibile utilizzare questo oggetto per aggiungere un logo personalizzato a una firma digitale.java.lang.Boolean
che specifica se eseguire il controllo di revoca sul certificato del firmatario.OCSPOptionSpec
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 ed è possibile specificare null
.CRLPreferences
che memorizza le preferenze dell’elenco di revoche di certificati (CRL). Se il controllo di revoca non viene eseguito, questo parametro non viene utilizzato ed è possibile specificare null
.TSPPreferences
che memorizza le preferenze per il supporto del provider di timestamp (TSP). Questo parametro è facoltativo e può essere null
. Per ulteriori informazioni, consulta Riferimento API di AEM Forms.Il metodo sign
restituisce un oggetto com.adobe.idp.Document
che rappresenta il documento PDF firmato.
Salvare il documento PDF firmato
java.io.File
e assicurati che l'estensione del file sia .pdf.copyToFile
dell'oggetto com.adobe.idp.Document
e passare java.io.File
per copiare il contenuto dell'oggetto Document
nel file . Assicurarsi di utilizzare l'oggetto com.adobe.idp.Document
restituito dal metodo sign
.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
Per firmare digitalmente un documento PDF 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
.
Sostituisci localhost
con l'indirizzo IP del server che ospita AEM Forms.
Creare un client di firme
Creare un oggetto SignatureServiceClient
utilizzando il relativo costruttore predefinito.
Creare un oggetto SignatureServiceClient.Endpoint.Address
utilizzando il costruttore System.ServiceModel.EndpointAddress
. Passa un valore stringa che specifica il WSDL al servizio AEM Forms (ad esempio, http://localhost:8080/soap/services/SignatureService?WSDL
). Non è necessario utilizzare l'attributo lc_version
. Questo attributo viene utilizzato quando si crea un riferimento a un servizio.)
Crea un oggetto System.ServiceModel.BasicHttpBinding
ottenendo il valore del campo SignatureServiceClient.Endpoint.Binding
. Imposta il valore restituito su BasicHttpBinding
.
Impostare il campo MessageEncoding
dell'oggetto System.ServiceModel.BasicHttpBinding
su WSMessageEncoding.Mtom
. Questo valore assicura che venga utilizzato MTOM.
Abilita l’autenticazione HTTP di base eseguendo le seguenti attività:
SignatureServiceClient.ClientCredentials.UserName.UserName
.SignatureServiceClient.ClientCredentials.UserName.Password
.HttpClientCredentialType.Basic
al campo BasicHttpBindingSecurity.Transport.ClientCredentialType
.BasicHttpSecurityMode.TransportCredentialOnly
al campo BasicHttpBindingSecurity.Security.Mode
.Richiedere la firma del documento PDF
BLOB
utilizzando il relativo costruttore. L'oggetto BLOB
viene utilizzato per memorizzare un documento PDF firmato.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.System.IO.FileStream
. È possibile determinare le dimensioni dell'array di byte ottenendo la proprietà Length
dell'oggetto System.IO.FileStream
.Read
dell’oggetto System.IO.FileStream
e passando l’array di byte, la posizione iniziale e la lunghezza del flusso da leggere.BLOB
assegnando alla relativa proprietà MTOM
il contenuto dell'array di byte.Firma il documento PDF
Firma il documento PDF richiamando il metodo sign
dell’oggetto SignatureServiceClient
e passando i seguenti valori:
BLOB
che rappresenta il documento PDF da firmare.Credential
che rappresenta la credenziale utilizzata per firmare digitalmente il documento PDF. Creare un oggetto Credential
utilizzando il relativo costruttore e specificare l'alias assegnando un valore alla proprietà Credential
dell'oggetto alias
.HashAlgorithm
che specifica un membro di dati statico che rappresenta l'algoritmo hash da utilizzare per digest del documento PDF. Ad esempio, puoi specificare HashAlgorithm.SHA1
per utilizzare l’algoritmo SHA1.PDFSignatureAppearanceOptions
che controlla l'aspetto della firma digitale. Ad esempio, è possibile utilizzare questo oggetto per aggiungere un logo personalizzato a una firma digitale.System.Boolean
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
.OCSPOptionSpec
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 ed è possibile specificare null
. Per informazioni su questo oggetto, consulta Riferimento API AEM Forms.CRLPreferences
che memorizza le preferenze dell’elenco di revoche di certificati (CRL). Se il controllo di revoca non viene eseguito, questo parametro non viene utilizzato ed è possibile specificare null
.TSPPreferences
che memorizza le preferenze per il supporto del provider di timestamp (TSP). Questo parametro è facoltativo e può essere null
.Il metodo sign
restituisce un oggetto BLOB
che rappresenta il documento PDF firmato.
Salvare il documento PDF firmato
System.IO.FileStream
richiamando il relativo costruttore. Passare un valore di stringa che rappresenta la posizione del file del documento PDF firmato e la modalità di apertura del file.BLOB
restituito dal metodo sign
. Compilare l'array di byte ottenendo il valore del membro dati BLOB
dell'oggetto MTOM
.System.IO.BinaryWriter
richiamandone il costruttore e passando l'oggetto System.IO.FileStream
.Write
dell’oggetto System.IO.BinaryWriter
e passando l’array di byte.Consulta anche
Firma digitale di documenti PDF
Richiamo di AEM Forms tramite MTOM
Richiamo di AEM Forms tramite SwaRef
È possibile firmare un modulo interattivo creato dal servizio Forms. Ad esempio, considera il seguente flusso di lavoro:
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 di Adobe. Se si tenta di firmare un modulo PDF salvato come Adobe di modulo PDF dinamico, si verifica un’eccezione. Poiché si firma il modulo restituito dal servizio Forms, assicurarsi che contenga un campo firma.
Prima di poter firmare digitalmente un modulo interattivo, è necessario assicurarsi di aggiungere il certificato ad AEM Forms. Un certificato viene aggiunto tramite la console di amministrazione o a livello di programmazione utilizzando l’API di Trust Manager. (Vedere Importazione delle credenziali tramite l'API di Trust Manager.)
Quando utilizzi l’API del servizio Forms, imposta l’opzione GenerateServerAppearance
runtime 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.
Prima di leggere la firma digitale di Forms interattivo, è consigliabile avere familiarità con la firma dei documenti PDF. (Consultare Firma digitale di documenti PDF.)
Per firmare digitalmente un modulo interattivo restituito dal servizio Forms, eseguire le operazioni seguenti:
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:
Per informazioni sulla posizione di questi file JAR, consulta Inclusione dei file della libreria Java 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 PDF interattivo da firmare. A partire da AEM Forms, è possibile passare un oggetto com.adobe.idp.Document
al servizio Forms che contiene il modulo da riprodurre. Il nome di questo metodo è renderPDFForm2
. Questo metodo restituisce un oggetto com.adobe.idp.Document
contenente il modulo da firmare. Puoi passare questa istanza com.adobe.idp.Document
al servizio Signature.
Analogamente, se si utilizzano servizi Web, è possibile passare l'istanza BLOB
restituita dal servizio Forms al servizio Signature.
L'avvio rapido associato alla sezione Forms interattiva firma digitale richiama il metodo renderPDFForm2
.
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:
Per impostare le opzioni di aspetto, utilizzare un oggetto PDFSignatureAppearanceOptionSpec
. Ad esempio, è possibile visualizzare la data all’interno di una firma richiamando il metodo setShowDate
dell’oggetto true
e passando PDFSignatureAppearanceOptionSpec
.
Salvare il documento PDF firmato
Dopo aver apposto la firma digitale al documento PDF da parte del servizio Firma, è 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 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
ServiceClientFactory
contenente le proprietà di connessione.SignatureServiceClient
utilizzando il relativo costruttore e passando l'oggetto ServiceClientFactory
.FormsServiceClient
utilizzando il relativo costruttore e passando l'oggetto ServiceClientFactory
.Ottenere il modulo interattivo utilizzando il servizio Forms
Creare un oggetto java.io.FileInputStream
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.
Creare un oggetto com.adobe.idp.Document
utilizzando il relativo costruttore e passando l'oggetto java.io.FileInputStream
.
Creare un oggetto java.io.FileInputStream
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.
Creare un oggetto com.adobe.idp.Document
utilizzando il relativo costruttore e passando l'oggetto java.io.FileInputStream
.
Creare un oggetto PDFFormRenderSpec
utilizzato per impostare le opzioni di esecuzione. Richiama il metodo setGenerateServerAppearance
dell'oggetto PDFFormRenderSpec
e passa true
.
Richiama il metodo renderPDFForm2
dell'oggetto FormsServiceClient
e passa i seguenti valori:
com.adobe.idp.Document
contenente il modulo PDF da eseguire.com.adobe.idp.Document
contenente i dati da unire al modulo.PDFFormRenderSpec
che memorizza le opzioni di esecuzione.URLSpec
contenente valori URI richiesti dal servizio Forms. Puoi specificare null
per questo valore di parametro.java.util.HashMap
che memorizza gli allegati di file. Questo è un parametro facoltativo ed è possibile specificare null
se non si desidera allegare file al modulo.Il metodo renderPDFForm2
restituisce un oggetto FormsResult
che contiene un flusso di dati del modulo
Recupera il modulo PDF richiamando il metodo getOutputContent
dell’oggetto FormsResult
. Questo metodo restituisce un oggetto com.adobe.idp.Document
che rappresenta il modulo interattivo.
Firma del modulo interattivo
Firma il documento PDF richiamando il metodo sign
dell’oggetto SignatureServiceClient
e passando i seguenti valori:
com.adobe.idp.Document
che rappresenta il documento PDF da firmare. Assicurati che questo oggetto sia l' com.adobe.idp.Document
oggetto ottenuto dal servizio Forms.Credential
che rappresenta la credenziale utilizzata per firmare digitalmente il documento PDF. Creare un oggetto Credential
richiamando il metodo statico Credential
dell'oggetto getInstance
. Passa un valore di stringa che specifica il valore di alias corrispondente alla credenziale di sicurezza.HashAlgorithm
che specifica un membro di dati statico che rappresenta l'algoritmo hash da utilizzare per digest del documento PDF. Ad esempio, puoi specificare HashAlgorithm.SHA1
per utilizzare l’algoritmo SHA1.PDFSignatureAppearanceOptions
che controlla l'aspetto della firma digitale. Ad esempio, è possibile utilizzare questo oggetto per aggiungere un logo personalizzato a una firma digitale.java.lang.Boolean
che specifica se eseguire il controllo di revoca sul certificato del firmatario.OCSPPreferences
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 ed è possibile specificare null
.CRLPreferences
che memorizza le preferenze dell’elenco di revoche di certificati (CRL). Se il controllo di revoca non viene eseguito, questo parametro non viene utilizzato ed è possibile specificare null
.TSPPreferences
che memorizza le preferenze per il supporto del provider di timestamp (TSP). Questo parametro è facoltativo e può essere null
.Il metodo sign
restituisce un oggetto com.adobe.idp.Document
che rappresenta il documento PDF firmato.
Salvare il documento PDF firmato
java.io.File
e assicurati che l'estensione del nome file sia .pdf.copyToFile
dell'oggetto com.adobe.idp.Document
e passare java.io.File
per copiare il contenuto dell'oggetto Document
nel file . Assicurarsi di utilizzare l'oggetto com.adobe.idp.Document
restituito dal metodo sign
.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 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
.
Poiché il tipo di dati BLOB
è comune a entrambi i riferimenti di servizio, qualifica completamente il tipo di dati BLOB
quando lo utilizzi. Nel corrispondente avvio rapido del servizio Web, tutte le istanze BLOB
sono completamente qualificate.
Sostituisci localhost
con l'indirizzo IP del server che ospita AEM Forms.
Creare un client Forms e Firme
Creare un oggetto SignatureServiceClient
utilizzando il relativo costruttore predefinito.
Creare un oggetto SignatureServiceClient.Endpoint.Address
utilizzando il costruttore System.ServiceModel.EndpointAddress
. Passa un valore stringa che specifica il WSDL al servizio AEM Forms (ad esempio, http://localhost:8080/soap/services/SignatureService?WSDL
). Non è necessario utilizzare l'attributo lc_version
. Questo attributo viene utilizzato quando si crea un riferimento a un servizio.)
Crea un oggetto System.ServiceModel.BasicHttpBinding
ottenendo il valore del campo SignatureServiceClient.Endpoint.Binding
. Imposta il valore restituito su BasicHttpBinding
.
Impostare il campo MessageEncoding
dell'oggetto System.ServiceModel.BasicHttpBinding
su WSMessageEncoding.Mtom
. Questo valore assicura che venga utilizzato MTOM.
Abilita l’autenticazione HTTP di base eseguendo le seguenti attività:
SignatureServiceClient.ClientCredentials.UserName.UserName
.SignatureServiceClient.ClientCredentials.UserName.Password
.HttpClientCredentialType.Basic
al campo BasicHttpBindingSecurity.Transport.ClientCredentialType
.Assegna il valore costante BasicHttpSecurityMode.TransportCredentialOnly
al campo BasicHttpBindingSecurity.Security.Mode
.
Ripeti questi passaggi per il client di servizio Forms.
Ottenere il modulo interattivo utilizzando il servizio Forms
Creare un oggetto BLOB
utilizzando il relativo costruttore. L'oggetto BLOB
viene utilizzato per memorizzare un documento PDF firmato.
Creare un oggetto 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 una matrice di byte che memorizza il contenuto dell'oggetto System.IO.FileStream
. È possibile determinare le dimensioni dell'array di byte ottenendo la proprietà Length
dell'oggetto System.IO.FileStream
.
Compilare l’array di byte con i dati del flusso richiamando il metodo Read
dell’oggetto System.IO.FileStream
e passando l’array di byte, la posizione iniziale e la lunghezza del flusso da leggere.
Compilare l'oggetto BLOB
assegnando alla relativa proprietà MTOM
il contenuto dell'array di byte.
Creare un oggetto BLOB
utilizzando il relativo costruttore. L’oggetto BLOB
viene utilizzato per memorizzare i dati del modulo.
Creare un oggetto 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 una matrice di byte che memorizza il contenuto dell'oggetto System.IO.FileStream
. È possibile determinare le dimensioni dell'array di byte ottenendo la proprietà Length
dell'oggetto System.IO.FileStream
.
Compilare l’array di byte con i dati del flusso richiamando il metodo Read
dell’oggetto System.IO.FileStream
e passando l’array di byte, la posizione iniziale e la lunghezza del flusso da leggere.
Compilare l'oggetto BLOB
assegnando alla relativa proprietà MTOM
il contenuto dell'array di byte.
Creare un oggetto PDFFormRenderSpec
utilizzato per impostare le opzioni di esecuzione. Assegna il valore true
al campo PDFFormRenderSpec
dell’oggetto generateServerAppearance
.
Richiama il metodo renderPDFForm2
dell'oggetto FormsServiceClient
e passa i seguenti valori:
BLOB
contenente il modulo PDF da eseguire.BLOB
contenente i dati da unire al modulo.PDFFormRenderSpec
che memorizza le opzioni di esecuzione.URLSpec
contenente valori URI richiesti dal servizio Forms. Puoi specificare null
per questo valore di parametro.java.util.HashMap
che memorizza gli allegati di file. Questo è un parametro facoltativo ed è possibile specificare null
se non si desidera allegare file al modulo.FormResult
che è un parametro di output utilizzato per memorizzare il modulo interattivo.Recuperare il modulo PDF richiamando il campo outputContent
dell’oggetto FormsResult
. Questo campo memorizza un oggetto BLOB
che rappresenta il modulo interattivo.
Firma del modulo interattivo
Firma il documento PDF richiamando il metodo sign
dell’oggetto SignatureServiceClient
e passando i seguenti valori:
BLOB
che rappresenta il documento PDF da firmare. Utilizza l’istanza BLOB
restituita dal servizio Forms.Credential
che rappresenta la credenziale utilizzata per firmare digitalmente il documento PDF. Creare un oggetto Credential
utilizzando il relativo costruttore e specificare l'alias assegnando un valore alla proprietà Credential
dell'oggetto alias
.HashAlgorithm
che specifica un membro di dati statico che rappresenta l'algoritmo hash da utilizzare per digest del documento PDF. Ad esempio, puoi specificare HashAlgorithm.SHA1
per utilizzare l’algoritmo SHA1.PDFSignatureAppearanceOptions
che controlla l'aspetto della firma digitale. Ad esempio, è possibile utilizzare questo oggetto per aggiungere un logo personalizzato a una firma digitale.System.Boolean
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
.OCSPPreferences
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 ed è possibile specificare null
. Per informazioni su questo oggetto, consulta Riferimento API AEM Forms.CRLPreferences
che memorizza le preferenze dell’elenco di revoche di certificati (CRL). Se il controllo di revoca non viene eseguito, questo parametro non viene utilizzato ed è possibile specificare null
.TSPPreferences
che memorizza le preferenze per il supporto del provider di timestamp (TSP). Questo parametro è facoltativo e può essere null
.Il metodo sign
restituisce un oggetto BLOB
che rappresenta il documento PDF firmato.
Salvare il documento PDF firmato
System.IO.FileStream
richiamando il relativo costruttore. Passare un valore di stringa che rappresenta la posizione del file del documento PDF firmato e la modalità di apertura del file.BLOB
restituito dal metodo sign
. Compilare l'array di byte ottenendo il valore del membro dati BLOB
dell'oggetto MTOM
.System.IO.BinaryWriter
richiamandone il costruttore e passando l'oggetto System.IO.FileStream
.Write
dell’oggetto System.IO.BinaryWriter
e passando l’array di byte.Consulta anche
Firma digitale di Forms interattivo
Richiamo di AEM Forms tramite MTOM
È 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:
È 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 protezione esistente nel servizio Credenziali. Per informazioni sulle credenziali di protezione, consulta la guida Installazione e distribuzione di AEM Forms per il server delle applicazioni.
Durante la certificazione e la firma dello stesso documento PDF, se la firma di certificazione non è attendibile, viene visualizzato un triangolo giallo accanto alla prima firma all’apertura del documento PDF in Acrobat o Adobe Reader. La firma di certificazione deve essere ritenuta attendibile per evitare questa situazione.
Quando si utilizza una credenziale HSM Cipher in Shield per firmare o certificare un documento PDF, la nuova credenziale non può essere utilizzata fino al riavvio del 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.
Per ulteriori informazioni sul servizio Firma e sulla certificazione di un documento, vedere Riferimento servizi per AEM Forms.
Per certificare un documento PDF, eseguire le operazioni seguenti:
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:
Per informazioni sulla posizione di questi file JAR, consulta Inclusione dei file della libreria Java 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:
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.false
indica che il controllo di revoca non viene eseguito.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
Certifica 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 firma
ServiceClientFactory
contenente le proprietà di connessione.SignatureServiceClient
utilizzando il relativo costruttore e passando l'oggetto ServiceClientFactory
.Ottenere il documento PDF da certificare
java.io.FileInputStream
che rappresenta il documento PDF da certificare utilizzando il relativo costruttore e passando un valore di stringa che specifica la posizione del documento PDF.com.adobe.idp.Document
utilizzando il relativo costruttore e passando l'oggetto java.io.FileInputStream
.Certifica il documento PDF
Certificare il documento PDF richiamando il metodo certify
dell'oggetto SignatureServiceClient
e passando i seguenti valori:
com.adobe.idp.Document
che rappresenta il documento PDF da certificare.Credential
che rappresenta la credenziale utilizzata per certificare il documento PDF. Creare un oggetto Credential
richiamando il metodo statico Credential
dell'oggetto e passando un valore di stringa che specifica il valore di alias corrispondente alla credenziale di sicurezza.getInstance
HashAlgorithm
che specifica un membro di dati statico che rappresenta l’algoritmo hash utilizzato per digest del documento PDF. Ad esempio, puoi specificare HashAlgorithm.SHA1
per utilizzare l’algoritmo SHA1.MDPPermissions
che specifica le azioni che è possibile eseguire sul documento PDF che invalida la firma.PDFSignatureAppearanceOptions
che controlla l'aspetto della firma certificata. Se lo desideri, modifica l’aspetto della firma richiamando un metodo, ad esempio setShowDate
.java.lang.Boolean
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
.java.lang.Boolean
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
.OCSPPreferences
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 ed è possibile specificare null
. Per informazioni su questo oggetto, consultare Riferimento API AEM Forms.CRLPreferences
che memorizza le preferenze dell’elenco di revoche di certificati (CRL). Se il controllo di revoca non viene eseguito, questo parametro non viene utilizzato ed è possibile specificare null
.TSPPreferences
che memorizza le preferenze per il supporto del provider di timestamp (TSP). Ad esempio, dopo aver creato un oggetto TSPPreferences
, è possibile impostare l’URL del server TSP richiamando il metodo TSPPreferences
dell’oggetto setTspServerURL
. Questo parametro è facoltativo e può essere null
. Per ulteriori informazioni, consulta Riferimento servizi per AEM Forms.Il metodo certify
restituisce un oggetto com.adobe.idp.Document
che rappresenta il documento PDF certificato.
Salvare il documento PDF certificato come file PDF
java.io.File
e assicurati che l'estensione del file sia .pdf.copyToFile
dell'oggetto com.adobe.idp.Document
per copiare nel file il contenuto dell'oggetto com.adobe.idp.Document
.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
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
.
Sostituisci localhost
con l'indirizzo IP del server che ospita AEM Forms.
Creare un client di firma
Creare un oggetto SignatureServiceClient
utilizzando il relativo costruttore predefinito.
Creare un oggetto SignatureServiceClient.Endpoint.Address
utilizzando il costruttore System.ServiceModel.EndpointAddress
. Passa un valore stringa che specifica il WSDL al servizio AEM Forms (ad esempio, http://localhost:8080/soap/services/SignatureService?WSDL
). Non è necessario utilizzare l'attributo lc_version
. Questo attributo viene utilizzato quando si crea un riferimento a un servizio.)
Crea un oggetto System.ServiceModel.BasicHttpBinding
ottenendo il valore del campo SignatureServiceClient.Endpoint.Binding
. Imposta il valore restituito su BasicHttpBinding
.
Impostare il campo MessageEncoding
dell'oggetto System.ServiceModel.BasicHttpBinding
su WSMessageEncoding.Mtom
. Questo valore assicura che venga utilizzato MTOM.
Abilita l’autenticazione HTTP di base eseguendo le seguenti attività:
SignatureServiceClient.ClientCredentials.UserName.UserName
.SignatureServiceClient.ClientCredentials.UserName.Password
.HttpClientCredentialType.Basic
al campo BasicHttpBindingSecurity.Transport.ClientCredentialType
.BasicHttpSecurityMode.TransportCredentialOnly
al campo BasicHttpBindingSecurity.Security.Mode
.Ottenere il documento PDF da certificare
BLOB
utilizzando il relativo costruttore. L'oggetto BLOB
viene utilizzato per memorizzare un documento PDF certificato.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.System.IO.FileStream
. È possibile determinare le dimensioni dell'array di byte ottenendo la proprietà Length
dell'oggetto System.IO.FileStream
.Read
dell’oggetto System.IO.FileStream
e passando l’array di byte, la posizione iniziale e la lunghezza del flusso da leggere.BLOB
assegnando al relativo membro dati MTOM
il contenuto dell'array di byte.Certifica il documento PDF
Certificare il documento PDF richiamando il metodo certify
dell'oggetto SignatureServiceClient
e passando i seguenti valori:
BLOB
che rappresenta il documento PDF da certificare.Credential
che rappresenta la credenziale utilizzata per certificare il documento PDF. Creare un oggetto Credential
utilizzando il relativo costruttore e specificare l'alias assegnando un valore alla proprietà Credential
dell'oggetto alias
.HashAlgorithm
che specifica un membro di dati statico che rappresenta l’algoritmo hash utilizzato per digest del documento PDF. Ad esempio, puoi specificare HashAlgorithm.SHA1
per utilizzare l’algoritmo SHA1.MDPPermissions
che specifica le azioni che è possibile eseguire sul documento PDF che ne invalida la firma.MDPPermissions
passato come valore del parametro precedente.PDFSignatureAppearanceOptions
che controlla l'aspetto della firma certificata. Creare un oggetto PDFSignatureAppearanceOptions
utilizzando il relativo costruttore. È possibile modificare l’aspetto della firma impostando uno dei relativi membri dati.System.Boolean
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
.System.Boolean
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
.System.Boolean
che specifica se il campo firma è bloccato. In altre parole, se passi true
al parametro precedente, passa true
a questo parametro.OCSPPreferences
che memorizza le preferenze per il supporto del protocollo OCSP (Online Certificate Status Protocol), che fornisce informazioni sullo stato delle credenziali utilizzate per certificare il documento PDF. Se il controllo di revoca non viene eseguito, questo parametro non viene utilizzato ed è possibile specificare null
.CRLPreferences
che memorizza le preferenze dell’elenco di revoche di certificati (CRL). Se il controllo di revoca non viene eseguito, questo parametro non viene utilizzato ed è possibile specificare null
.TSPPreferences
che memorizza le preferenze per il supporto del provider di timestamp (TSP). Ad esempio, dopo aver creato un oggetto TSPPreferences
, è possibile impostare l’URL del TSP impostando il membro dati TSPPreferences
dell’oggetto tspServerURL
. Questo parametro è facoltativo e può essere null
.Il metodo certify
restituisce un oggetto BLOB
che rappresenta il documento PDF certificato.
Salvare il documento PDF certificato come file PDF
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.BLOB
restituito dal metodo certify
. Compilare l'array di byte ottenendo il valore del membro dati BLOB
dell'oggetto binaryData
.System.IO.BinaryWriter
richiamandone il costruttore e passando l'oggetto System.IO.FileStream
.Write
dell’oggetto System.IO.BinaryWriter
e passando l’array di byte.Consulta anche
Certificazione dei documenti PDF
Richiamo di AEM Forms tramite MTOM
Richiamo di AEM Forms tramite SwaRef
È possibile verificare le firme digitali per 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.
Per ulteriori informazioni sul servizio Signature e sulla verifica delle firme digitali, vedere Guida di riferimento dei servizi per AEM Forms.
Per verificare una firma digitale, eseguire le operazioni seguenti:
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:
Per informazioni sulla posizione di questi file JAR, consulta Inclusione dei file della libreria Java 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 Firma utilizza per la verifica delle firme in un documento PDF:
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, vedi il valore di enumerazione VerificationTime
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 il valore di enumerazione RevocationCheckStyle
in Riferimento API di AEM Forms.
Per eseguire il controllo di revoca su un certificato, specificare un URL per un server dell’elenco di revoche di certificati (CRL) utilizzando un oggetto CRLOptionSpec
. 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. (Vedere 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.
Puoi sovrascrivere l’URL specificato nel certificato utilizzando un oggetto CRLOptionSpec
e un oggetto OCSPOptionSpec
. Ad esempio, per ignorare il server CRL, è possibile richiamare il metodo setLocalURI
dell’oggetto CRLOptionSpec
.
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 oggetto TSPOptionSpec
. Ad esempio, puoi specificare l’URL di un server del provider di servizi di marca temporale (TSP).
All'avvio rapido di Java e servizi web, il tempo di verifica è impostato su 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.
Per gli altri valori richiesti per la verifica di una firma, consulta Riferimento API di AEM Forms.
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:
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 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.
ServiceClientFactory
contenente le proprietà di connessione.SignatureServiceClient
utilizzando il relativo costruttore e passando l'oggetto ServiceClientFactory
.Ottenere il documento PDF contenente la firma da verificare
java.io.FileInputStream
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.com.adobe.idp.Document
utilizzando il relativo costruttore e passando l'oggetto java.io.FileInputStream
.Impostare le opzioni di esecuzione PKI
PKIOptions
utilizzando il relativo costruttore.setVerificationTime
dell'oggetto PKIOptions
e passando un valore di enumerazione VerificationTime
che specifica il tempo di verifica.setRevocationCheckStyle
dell'oggetto PKIOptions
e passando un valore di enumerazione RevocationCheckStyle
che specifica se eseguire il controllo della revoca.Verificare la firma digitale
Verificare la firma richiamando il metodo verify2
dell'oggetto SignatureServiceClient
e passando i seguenti valori:
com.adobe.idp.Document
contenente un documento PDF firmato o certificato digitalmente.PKIOptions
contenente opzioni di esecuzione PKI.VerifySPIOptions
che contiene informazioni SPI. Puoi specificare null
per questo parametro.Il metodo verify2
restituisce un oggetto PDFSignatureVerificationInfo
contenente informazioni che possono essere utilizzate per verificare la firma digitale.
Determinare lo stato della firma
getStatus
dell’oggetto PDFSignatureVerificationInfo
. Questo metodo restituisce un oggetto SignatureStatus
che specifica lo stato della firma. Ad esempio, se un documento PDF firmato non viene modificato, questo metodo restituisce SignatureStatus.DocumentSigNoChanges
.Determinare l’identità del firmatario
getSigner
dell’oggetto PDFSignatureVerificationInfo
. Questo metodo restituisce un oggetto IdentityInformation
.getStatus
dell'oggetto IdentityInformation
per determinare l'identità del firmatario. Questo metodo restituisce un valore di enumerazione IdentityStatus
che specifica l'identità. Ad esempio, se il firmatario è attendibile, questo metodo restituisce IdentityStatus.TRUSTED
.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
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
.
Sostituisci localhost
con l'indirizzo IP del server che ospita AEM Forms.
Creare un client di firma
Creare un oggetto SignatureServiceClient
utilizzando il relativo costruttore predefinito.
Creare un oggetto SignatureServiceClient.Endpoint.Address
utilizzando il costruttore System.ServiceModel.EndpointAddress
. Passa un valore stringa che specifica il WSDL al servizio AEM Forms (ad esempio, http://localhost:8080/soap/services/SignatureService?WSDL
). Non è necessario utilizzare l'attributo lc_version
. Questo attributo viene utilizzato quando si crea un riferimento a un servizio.)
Crea un oggetto System.ServiceModel.BasicHttpBinding
ottenendo il valore del campo SignatureServiceClient.Endpoint.Binding
. Imposta il valore restituito su BasicHttpBinding
.
Impostare il campo MessageEncoding
dell'oggetto System.ServiceModel.BasicHttpBinding
su WSMessageEncoding.Mtom
. Questo valore assicura che venga utilizzato MTOM.
Abilita l’autenticazione HTTP di base eseguendo le seguenti attività:
SignatureServiceClient.ClientCredentials.UserName.UserName
.SignatureServiceClient.ClientCredentials.UserName.Password
.HttpClientCredentialType.Basic
al campo BasicHttpBindingSecurity.Transport.ClientCredentialType
.BasicHttpSecurityMode.TransportCredentialOnly
al campo BasicHttpBindingSecurity.Security.Mode
.Ottenere il documento PDF contenente la firma da verificare
BLOB
utilizzando il relativo costruttore. L'oggetto BLOB
viene utilizzato per memorizzare un documento PDF contenente una firma digitale o certificata da verificare.System.IO.FileStream
richiamando il relativo costruttore. Passare un valore di stringa che rappresenta la posizione del file del documento PDF firmato e la modalità di apertura del file.System.IO.FileStream
. È possibile determinare le dimensioni dell'array di byte ottenendo la proprietà Length
dell'oggetto System.IO.FileStream
.Read
dell’oggetto System.IO.FileStream
. Passa la matrice dei byte, la posizione iniziale e la lunghezza del flusso da leggere.BLOB
assegnando alla relativa proprietà MTOM
il contenuto dell'array di byte.Impostare le opzioni di esecuzione PKI
PKIOptions
utilizzando il relativo costruttore.verificationTime
dell'oggetto VerificationTime
un valore di enumerazione PKIOptions
che specifica il tempo di verifica.revocationCheckStyle
dell'oggetto RevocationCheckStyle
un valore di enumerazione PKIOptions
che specifica se eseguire il controllo della revoca.Verificare la firma digitale
Verificare la firma richiamando il metodo verify2
dell'oggetto SignatureServiceClient
e passando i seguenti valori:
BLOB
che contiene un documento PDF firmato o certificato digitalmente.PKIOptions
contenente opzioni di esecuzione PKI.VerifySPIOptions
che contiene informazioni SPI. Puoi specificare null
per questo parametro.Il metodo verify2
restituisce un oggetto PDFSignatureVerificationInfo
contenente informazioni che possono essere utilizzate per verificare la firma digitale.
Determinare lo stato della firma
Determinare lo stato della firma ottenendo il valore del membro dati PDFSignatureVerificationInfo
dell’oggetto status
. Questo membro dati memorizza un oggetto SignatureStatus
che specifica lo stato della firma. Ad esempio, se un documento PDF firmato viene modificato, il membro dati status
memorizza il valore SignatureStatus.DocumentSigNoChanges
.
Determinare l’identità del firmatario
PDFSignatureVerificationInfo
dell’oggetto signer
. Questo membro restituisce un oggetto IdentityInformation
.status
dell’oggetto IdentityInformation
per determinare l’identità del firmatario. Questo membro dati restituisce un valore di enumerazione IdentityStatus
che specifica l'identità. Ad esempio, se il firmatario è attendibile, questo membro restituisce IdentityStatus.TRUSTED
.Consulta anche
Richiamo di AEM Forms tramite MTOM
Richiamo di AEM Forms tramite SwaRef
AEM Forms consente di verificare tutte le firme digitali presenti in un documento PDF. Si supponga che un documento PDF contenga più firme digitali come risultato di un processo aziendale che richiede la firma di più firmatari. Ad esempio, 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.
Per ulteriori informazioni sul servizio Signature e sulla verifica delle firme digitali, vedere Guida di riferimento dei servizi per AEM Forms.
Per verificare più firme digitali, eseguire le operazioni seguenti:
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:
Per informazioni sulla posizione di questi file JAR, consulta Inclusione dei file della libreria Java 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 Firma utilizza per verificare tutte le firme presenti in un documento PDF:
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, vedi il valore di enumerazione VerificationTime
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 il valore di enumerazione RevocationCheckStyle
in Riferimento API di AEM Forms.
Per eseguire il controllo di revoca su un certificato, specificare un URL per un server dell’elenco di revoche di certificati (CRL) utilizzando un oggetto CRLOptionSpec
. 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. (Vedere 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.
Puoi sovrascrivere l’URL specificato nel certificato utilizzando un oggetto CRLOptionSpec
e un oggetto OCSPOptionSpec
. Ad esempio, per ignorare il server CRL, è possibile richiamare il metodo setLocalURI
dell’oggetto CRLOptionSpec
.
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 oggetto TSPOptionSpec
. Ad esempio, puoi specificare l’URL di un server del provider di servizi di marca temporale (TSP).
All'avvio rapido di Java e servizi web, il tempo di verifica è impostato su 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.
A differenza di quando si verifica una singola firma digitale, quando si verificano più firme, non è necessario specificare il nome del campo 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. (Consultare Verifica delle firme digitali.)
Non è necessario eseguire iterazioni su tutte le firme se il requisito è l'intero documento.
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
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
ServiceClientFactory
contenente le proprietà di connessione.SignatureServiceClient
utilizzando il relativo costruttore e passando l'oggetto ServiceClientFactory
.Ottenere il documento PDF contenente le firme da verificare
java.io.FileInputStream
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.com.adobe.idp.Document
utilizzando il relativo costruttore e passando l'oggetto java.io.FileInputStream
.Impostare le opzioni di runtime PKI
PKIOptions
utilizzando il relativo costruttore.setVerificationTime
dell'oggetto PKIOptions
e passando un valore di enumerazione VerificationTime
che specifica il tempo di verifica.setRevocationCheckStyle
dell'oggetto RevocationCheckStyle
e passando un valore di enumerazione PKIOptions
che specifica se eseguire il controllo della revoca.Recupera tutte le firme digitali
Richiama il metodo verifyPDFDocument
dell'oggetto SignatureServiceClient
e passa i seguenti valori:
com.adobe.idp.Document
contenente un documento PDF contenente più firme digitali.PKIOptions
contenente opzioni di esecuzione PKI.VerifySPIOptions
che contiene informazioni SPI. Puoi specificare null
per questo parametro.Il metodo verifyPDFDocument
restituisce un oggetto PDFDocumentVerificationInfo
contenente informazioni su tutte le firme digitali presenti nel documento PDF.
Itera attraverso tutte le firme
getVerificationInfos
dell'oggetto PDFDocumentVerificationInfo
. Questo metodo restituisce un oggetto java.util.List
in cui ogni elemento è un oggetto PDFSignatureVerificationInfo
. Utilizzare un oggetto java.util.Iterator
per eseguire iterazioni nell'elenco di firme.PDFSignatureVerificationInfo
è possibile eseguire attività quali determinare lo stato della firma richiamando il metodo PDFSignatureVerificationInfo
dell’oggetto getStatus
. Questo metodo restituisce un oggetto SignatureStatus
il cui membro dati statico informa l'utente dello stato della firma. Ad esempio, se la firma è sconosciuta, questo metodo restituisce SignatureStatus.DocumentSignatureUnknown
.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
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
.
Sostituisci localhost
con l'indirizzo IP del server che ospita AEM Forms.
Creare un client di firma
Creare un oggetto SignatureServiceClient
utilizzando il relativo costruttore predefinito.
Creare un oggetto SignatureServiceClient.Endpoint.Address
utilizzando il costruttore System.ServiceModel.EndpointAddress
. Passa un valore stringa che specifica il WSDL al servizio AEM Forms (ad esempio, http://localhost:8080/soap/services/SignatureService?WSDL
). Non è necessario utilizzare l'attributo lc_version
. Questo attributo viene utilizzato quando si crea un riferimento a un servizio.)
Crea un oggetto System.ServiceModel.BasicHttpBinding
ottenendo il valore del campo SignatureServiceClient.Endpoint.Binding
. Imposta il valore restituito su BasicHttpBinding
.
Impostare il campo MessageEncoding
dell'oggetto System.ServiceModel.BasicHttpBinding
su WSMessageEncoding.Mtom
. Questo valore assicura che venga utilizzato MTOM.
Abilita l’autenticazione HTTP di base eseguendo le seguenti attività:
SignatureServiceClient.ClientCredentials.UserName.UserName
.SignatureServiceClient.ClientCredentials.UserName.Password
.HttpClientCredentialType.Basic
al campo BasicHttpBindingSecurity.Transport.ClientCredentialType
.BasicHttpSecurityMode.TransportCredentialOnly
al campo BasicHttpBindingSecurity.Security.Mode
.Ottenere il documento PDF contenente le firme da verificare
BLOB
utilizzando il relativo costruttore. L'oggetto BLOB
memorizza un documento PDF contenente più firme digitali da verificare.System.IO.FileStream
richiamando il relativo costruttore. Passare un valore di stringa che rappresenta la posizione del file del documento PDF e la modalità di apertura del file.System.IO.FileStream
. È possibile determinare le dimensioni dell'array di byte ottenendo la proprietà Length
dell'oggetto System.IO.FileStream
.Read
dell’oggetto System.IO.FileStream
. Passa la matrice dei byte, la posizione iniziale e la lunghezza del flusso da leggere.BLOB
assegnando alla relativa proprietà MTOM
il contenuto dell'array di byte.Impostare le opzioni di runtime PKI
PKIOptions
utilizzando il relativo costruttore.verificationTime
dell'oggetto VerificationTime
un valore di enumerazione PKIOptions
che specifica il tempo di verifica.revocationCheckStyle
dell'oggetto RevocationCheckStyle
un valore di enumerazione PKIOptions
che specifica se eseguire il controllo di revoca.Recupera tutte le firme digitali
Richiama il metodo verifyPDFDocument
dell'oggetto SignatureServiceClient
e passa i seguenti valori:
BLOB
contenente un documento PDF contenente più firme digitali.PKIOptions
contenente opzioni di esecuzione PKI.VerifySPIOptions
che contiene informazioni SPI. È possibile specificare null per questo parametro.Il metodo verifyPDFDocument
restituisce un oggetto PDFDocumentVerificationInfo
contenente informazioni su tutte le firme digitali presenti nel documento PDF.
Itera attraverso tutte le firme
verificationInfos
dell'oggetto PDFDocumentVerificationInfo
. Questo membro dati restituisce un array Object
in cui ogni elemento è un oggetto PDFSignatureVerificationInfo
.PDFSignatureVerificationInfo
è possibile eseguire attività quali determinare lo stato della firma ottenendo il membro dati PDFSignatureVerificationInfo
dell’oggetto status
. Questo membro dati restituisce un oggetto SignatureStatus
il cui membro dati statico ti informa sullo stato della firma. Ad esempio, se la firma è sconosciuta, questo metodo restituisce SignatureStatus.DocumentSignatureUnknown
.Consulta anche
Verifica di più firme digitali
Richiamo di AEM Forms tramite MTOM
Richiamo di AEM Forms tramite SwaRef
È 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.
Per ulteriori informazioni sul servizio Signature, vedere Riferimento servizi per AEM Forms.
Per rimuovere una firma digitale da un campo firma, eseguire le operazioni seguenti:
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:
Per informazioni sulla posizione di questi file JAR, consulta Inclusione dei file della libreria Java 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 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.
ServiceClientFactory
contenente le proprietà di connessione.SignatureServiceClient
utilizzando il relativo costruttore e passando l'oggetto ServiceClientFactory
.Ottenere il documento PDF contenente una firma da rimuovere
java.io.FileInputStream
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.com.adobe.idp.Document
utilizzando il relativo costruttore e passando l'oggetto java.io.FileInputStream
.Rimuovere la firma digitale dal campo firma
Rimuovere una firma digitale da un campo firma richiamando il metodo clearSignatureField
dell’oggetto SignatureServiceClient
e passando i seguenti valori:
com.adobe.idp.Document
che rappresenta il documento PDF contenente la firma da rimuovere.Il metodo clearSignatureField
restituisce un oggetto com.adobe.idp.Document
che rappresenta il documento PDF da cui è stata rimossa la firma digitale.
Salvare il documento PDF come file PDF
java.io.File
e assicurati che l'estensione del file sia .pdf.copyToFile
dell'oggetto com.adobe.idp.Document
. Passa l'oggetto java.io.File
per copiare il contenuto dell'oggetto com.adobe.idp.Document
nel file . Assicurarsi di utilizzare l'oggetto Document
restituito dal metodo clearSignatureField
.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 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
.
Sostituisci localhost
con l'indirizzo IP del server che ospita AEM Forms.
Creare un client di firma
Creare un oggetto SignatureServiceClient
utilizzando il relativo costruttore predefinito.
Creare un oggetto SignatureServiceClient.Endpoint.Address
utilizzando il costruttore System.ServiceModel.EndpointAddress
. Passa un valore stringa che specifica il WSDL al servizio AEM Forms (ad esempio, http://localhost:8080/soap/services/SignatureService?WSDL
). Non è necessario utilizzare l'attributo lc_version
. Questo attributo viene utilizzato quando si crea un riferimento a un servizio.)
Crea un oggetto System.ServiceModel.BasicHttpBinding
ottenendo il valore del campo SignatureServiceClient.Endpoint.Binding
. Imposta il valore restituito su BasicHttpBinding
.
Impostare il campo MessageEncoding
dell'oggetto System.ServiceModel.BasicHttpBinding
su WSMessageEncoding.Mtom
. Questo valore assicura che venga utilizzato MTOM.
Abilita l’autenticazione HTTP di base eseguendo le seguenti attività:
SignatureServiceClient.ClientCredentials.UserName.UserName
.SignatureServiceClient.ClientCredentials.UserName.Password
.HttpClientCredentialType.Basic
al campo BasicHttpBindingSecurity.Transport.ClientCredentialType
.BasicHttpSecurityMode.TransportCredentialOnly
al campo BasicHttpBindingSecurity.Security.Mode
.Ottenere il documento PDF contenente una firma da rimuovere
BLOB
utilizzando il relativo costruttore. L'oggetto BLOB
viene utilizzato per memorizzare un documento PDF contenente una firma digitale da rimuovere.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.System.IO.FileStream
. È possibile determinare le dimensioni dell'array di byte ottenendo la proprietà Length
dell'oggetto System.IO.FileStream
.Read
dell’oggetto System.IO.FileStream
. Passa la matrice dei byte, la posizione iniziale e la lunghezza del flusso da leggere.BLOB
assegnando la relativa proprietà MTOM
con il contenuto dell'array di byte.Rimuovere la firma digitale dal campo firma
Rimuovere la firma digitale richiamando il metodo clearSignatureField
dell'oggetto SignatureServiceClient
e passando i seguenti valori:
BLOB
contenente il documento PDF firmato.Il metodo clearSignatureField
restituisce un oggetto BLOB
che rappresenta il documento PDF da cui è stata rimossa la firma digitale.
Salvare il documento PDF come file PDF
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.BLOB
restituito dal metodo sign
. Compilare l'array di byte ottenendo il valore del membro dati BLOB
dell'oggetto MTOM
.System.IO.BinaryWriter
richiamandone il costruttore e passando l'oggetto System.IO.FileStream
.System.IO.BinaryWriter
dell’oggetto Write
e passando l’array di byte.Consulta anche
Richiamo di AEM Forms tramite MTOM
Richiamo di AEM Forms tramite SwaRef