Über den Signature-Dienst
Mit dem Signature-Dienst kann Ihr Unternehmen die Sicherheit und den Datenschutz von Adobe PDF-Dokumenten schützen, die es verteilt und empfängt. Dieser Dienst verwendet digitale Signaturen und Zertifizierung, um sicherzustellen, dass nur beabsichtigte Empfänger Dokumente ändern können. Da Sicherheitsfunktionen auf das Dokument selbst angewendet werden, bleibt das Dokument für seinen gesamten Lebenszyklus sicher und kontrolliert. Ein Dokument bleibt außerhalb der Firewall sicher, wenn es offline heruntergeladen und an Ihr Unternehmen zurückgesendet wird.
You can create a custom signature handler for the Signature service that is invoked when certain operations are invoked, such as signing a PDF document.
Signaturfeldnamen
Bei einigen Signature-Dienstvorgängen müssen Sie den Namen des Signaturfelds angeben, für das ein Vorgang ausgeführt wird. Wenn Sie beispielsweise ein PDF-Dokument signieren, geben Sie den Namen des Signaturfelds an, das signiert werden soll. Angenommen, der vollständige Name eines Signaturfelds lautet form1[0].Form1[0].SignatureField1[0]
. Sie können SignatureField1[0]
anstelle von form1[0].Form1[0].SignatureField1[0]
.
Manchmal führt ein Konflikt dazu, dass der Signature-Dienst das falsche Feld signiert (oder einen anderen Vorgang ausführt, für den der Signaturfeldname erforderlich ist). This conflict is the result of the name SignatureField1[0]
appearing in two or more places in the same PDF document. For example, consider a PDF document that contains two signature fields named form1[0].Form1[0].SignatureField1[0]
and form1[0].Form1[0].SubForm1[0].SignatureField1[0]
and you specify SignatureField1[0]
. In this situation, the Signature service signs the first signature field that it finds while iterating over all the signature fields in the document.
Wenn sich mehrere Signaturfelder in einem PDF-Dokument befinden, sollten Sie die vollständigen Namen der Signaturfelder angeben. That is, specify form1[0].Form1[0].SignatureField1[0]
instead of SignatureField1[0]
.
You can accomplish these tasks using the Signature service:
Weitere Informationen zum Signature-Dienst finden Sie unter Dienstreferenz für AEM Forms.
Digitale Signaturen werden in Signaturfeldern angezeigt, die eine grafische Darstellung der Signatur enthaltende Formularfelder sind. Signaturfelder können sichtbar oder unsichtbar sein. Unterzeichner können ein bereits vorhandenes Signaturfeld verwenden oder programmgesteuert ein Signaturfeld hinzugefügt werden. In beiden Fällen muss das Signaturfeld vorhanden sein, bevor ein PDF-Dokument signiert werden kann.
Sie können ein Signaturfeld programmgesteuert hinzufügen, indem Sie die Signature-Dienst-Java-API oder die Signature-Webdienst-API verwenden. Sie können einem PDF-Dokument mehr als ein Signaturfeld hinzufügen. Jeder Signaturfeldname muss jedoch eindeutig sein.
Bei einigen PDF-Dokumenttypen können Sie kein Signaturfeld programmgesteuert hinzufügen. Weitere Informationen zum Signature-Dienst und zum Hinzufügen von Signaturfeldern finden Sie unter Dienstreferenz für AEM Forms.
Um ein Signaturfeld zu einem PDF-Dokument hinzuzufügen, führen Sie die folgenden Schritte aus:
Projektdateien einschließen
Fügen Sie die erforderlichen Dateien in Ihr Entwicklungsprojekt ein. Wenn Sie eine Clientanwendung mit Java erstellen, schließen Sie die erforderlichen JAR-Dateien ein. Wenn Sie Webdienste verwenden, stellen Sie sicher, dass Sie die Proxy-Dateien einschließen.
Die folgenden JAR-Dateien müssen zum Klassenpfad Ihres Projekts hinzugefügt werden:
Erstellen eines Signatur-Clients
Bevor Sie einen Signature-Dienstvorgang programmgesteuert ausführen können, müssen Sie einen Signature-Dienstclient erstellen.
Abrufen eines PDF-Dokuments, dem ein Signaturfeld hinzugefügt wird
Sie müssen ein PDF-Dokument abrufen, dem ein Signaturfeld hinzugefügt wird.
Signaturfeld hinzufügen
Um einem PDF-Dokument erfolgreich ein Signaturfeld hinzuzufügen, geben Sie Koordinatenwerte an, die den Speicherort des Signaturfelds angeben. (Wenn Sie ein unsichtbares Signaturfeld hinzufügen, sind diese Werte nicht erforderlich.) Sie können auch angeben, welche Felder im PDF-Dokument gesperrt werden, nachdem eine Signatur auf das Signaturfeld angewendet wurde.
PDF-Dokument als PDF-Datei speichern
Nachdem der Signature-Dienst ein Signaturfeld zum PDF-Dokument hinzugefügt hat, können Sie das Dokument als PDF-Datei speichern, damit Benutzer es in Acrobat oder Adobe Reader öffnen können.
Siehe auch
Einbeziehung von AEM Forms Java-Bibliotheksdateien
Verbindungseigenschaften festlegen
Digitales Signieren von PDF-Dokumenten
Fügen Sie mithilfe der Signature-API (Java) ein Signaturfeld hinzu:
Projektdateien einschließen
Schließen Sie Client-JAR-Dateien wie adobe-signatures-client.jar in den Klassenpfad Ihres Java-Projekts ein.
Erstellen eines Signatur-Clients
ServiceClientFactory
-" -Objekt, das Verbindungseigenschaften enthält.SignatureServiceClient
-Objekt, indem Sie seinen Konstruktor verwenden und das ServiceClientFactory
-Objekt übergeben.Abrufen eines PDF-Dokuments, dem ein Signaturfeld hinzugefügt wird
java.io.FileInputStream
-Objekt, das das PDF-Dokument darstellt, dem ein Signaturfeld hinzugefügt wird, indem es seinen Konstruktor verwendet und einen Zeichenfolgenwert übergibt, der den Speicherort des PDF-Dokuments angibt.com.adobe.idp.Document
-Objekt, indem Sie seinen Konstruktor verwenden und das java.io.FileInputStream
-Objekt übergeben.Signaturfeld hinzufügen
Erstellen Sie eine PositionRectangle
-Objekt, das den Speicherort des Signaturfelds mithilfe seines Konstruktors angibt. Geben Sie im Konstruktor Koordinatenwerte an.
Erstellen Sie bei Bedarf eine FieldMDPOptions
-Objekt, das die Felder angibt, die gesperrt werden, wenn eine digitale Signatur auf das Signaturfeld angewendet wird.
Fügen Sie ein Signaturfeld zu einem PDF-Dokument hinzu, indem Sie die SignatureServiceClient
-Objekt addSignatureField
-Methode verwenden und die folgenden Werte übergeben:
com.adobe.idp
. Document
-Objekt, das das PDF-Dokument darstellt, dem ein Signaturfeld hinzugefügt wird.java.lang.Integer
-Wert, der die Seitenzahl darstellt, zu der ein Signaturfeld hinzugefügt wird.PositionRectangle
-Objekt, das den Speicherort des Signaturfelds angibt.FieldMDPOptions
-Objekt, das Felder im PDF-Dokument angibt, die gesperrt werden, nachdem eine digitale Signatur auf das Signaturfeld angewendet wurde. Dieser Parameterwert ist optional und Sie können null
.A PDFSeedValueOptions
-Objekt, das verschiedene Laufzeitwerte angibt. Dieser Parameterwert ist optional und Sie können null
.
Die addSignatureField
-Methode gibt eine com.adobe.idp
. Document
-Objekt, das ein PDF-Dokument mit einem Signaturfeld darstellt.
Sie können die SignatureServiceClient
-Objekt addInvisibleSignatureField
Methode zum Hinzufügen eines unsichtbaren Signaturfelds.
PDF-Dokument als PDF-Datei speichern
java.io.File
-Objekt und stellen Sie sicher, dass die Dateierweiterung .pdf ist.com.adobe.idp
. Document
-Objekt copyToFile
-Methode zum Kopieren des Inhalts der Document
-Objekt in die Datei ein. Stellen Sie sicher, dass Sie die com.adobe.idp
. Document
-Objekt, das von der addSignatureField
-Methode.Siehe auch
Schnellstarts für Signature Service-API
So fügen Sie mithilfe der Signature-API (Webdienst) ein Signaturfeld hinzu:
Projektdateien einschließen
Erstellen Sie ein Microsoft .NET-Projekt, das MTOM verwendet. Stellen Sie sicher, dass Sie die folgende WSDL-Definition verwenden: http://localhost:8080/soap/services/SignatureService?WSDL&lc_version=9.0.1
.
Ersetzen localhost
mit der IP-Adresse des Servers, auf dem AEM Forms gehostet wird.
Erstellen eines Signatur-Clients
Erstellen Sie eine SignatureServiceClient
-Objekt mithilfe des Standardkonstruktors.
Erstellen Sie eine SignatureServiceClient.Endpoint.Address
-Objekt mithilfe der System.ServiceModel.EndpointAddress
-Konstruktor. Übergeben Sie einen string -Wert, der die WSDL an den AEM Forms-Dienst angibt (z. B. http://localhost:8080/soap/services/SignatureService?WSDL
). Sie müssen die lc_version
-Attribut. Dieses Attribut wird verwendet, wenn Sie eine Dienstreferenz erstellen.)
Erstellen Sie eine System.ServiceModel.BasicHttpBinding
-Objekt durch Abrufen des Werts der SignatureServiceClient.Endpoint.Binding
-Feld. Wandeln Sie den Rückgabewert in BasicHttpBinding
um.
Legen Sie die System.ServiceModel.BasicHttpBinding
-Objekt MessageEncoding
-Feld zu WSMessageEncoding.Mtom
. Dieser Wert stellt sicher, dass MTOM verwendet wird.
Aktivieren Sie die einfache HTTP-Authentifizierung, indem Sie die folgenden Aufgaben ausführen:
SignatureServiceClient.ClientCredentials.UserName.UserName
.SignatureServiceClient.ClientCredentials.UserName.Password
.HttpClientCredentialType.Basic
zum Feld BasicHttpBindingSecurity.Transport.ClientCredentialType
.BasicHttpSecurityMode.TransportCredentialOnly
zum Feld BasicHttpBindingSecurity.Security.Mode
.Abrufen eines PDF-Dokuments, dem ein Signaturfeld hinzugefügt wird
BLOB
, indem Sie den Konstruktor verwenden. Die BLOB
-Objekt wird zum Speichern des PDF-Dokuments verwendet, das ein Signaturfeld enthalten wird.System.IO.FileStream
object by invoking its constructor and passing a string value that represents the file location of the PDF document and the mode in which to open the file.System.IO.FileStream
-Objekt. You can determine the size of the byte array by getting the System.IO.FileStream
object’s Length
property.System.IO.FileStream
-Objekt Read
-Methode verwenden und das Byte-Array, die Startposition und die zu lesende Stream-Länge übergeben.BLOB
Objekt durch Zuweisen seiner MTOM
-Eigenschaft mit dem Inhalt des Byte-Arrays.Signaturfeld hinzufügen
Fügen Sie dem PDF-Dokument ein Signaturfeld hinzu, indem Sie die SignatureServiceClient
-Objekt addSignatureField
-Methode verwenden und die folgenden Werte übergeben:
BLOB
-Objekt, das das PDF-Dokument darstellt, dem ein Signaturfeld hinzugefügt wird.PositionRect
-Objekt, das den Speicherort des Signaturfelds angibt.FieldMDPOptions
-Objekt, das Felder im PDF-Dokument angibt, die gesperrt werden, nachdem eine digitale Signatur auf das Signaturfeld angewendet wurde. Dieser Parameterwert ist optional und Sie können null
.PDFSeedValueOptions
-Objekt, das verschiedene Laufzeitwerte angibt. Dieser Parameterwert ist optional und Sie können null
.Die addSignatureField
-Methode gibt eine BLOB
-Objekt, das ein PDF-Dokument mit einem Signaturfeld darstellt.
PDF-Dokument als PDF-Datei speichern
System.IO.FileStream
-Objekt, indem Sie seinen Konstruktor aufrufen und einen string -Wert übergeben, der den Dateispeicherort des PDF-Dokuments darstellt, das das Signaturfeld enthalten wird, und den Modus, in dem die Datei geöffnet werden soll.BLOB
-Objekt, das von der addSignatureField
-Methode. Füllen Sie das Byte-Array, indem Sie den Wert der BLOB
-Objekt binaryData
Datenelement.System.IO.BinaryWriter
-Objekt durch Aufrufen des Konstruktors und Übergeben des System.IO.FileStream
-Objekt.System.IO.BinaryWriter
-Objekt Write
-Methode verwenden und das Byte-Array übergeben.Siehe auch
AEM Forms mithilfe von MTOM aufrufen
Aufrufen von AEM Forms mithilfe von SwaRef
Sie können die Namen aller Signaturfelder abrufen, die sich in einem zu signierenden und zertifizierenden PDF-Dokument befinden. Wenn Sie nicht sicher sind, wie die Signaturfeldnamen in einem PDF-Dokument lauten oder die Namen prüfen möchten, können Sie diese programmgesteuert abrufen. Der Signature-Dienst gibt den vollständig qualifizierten Namen des Signaturfelds zurück, z. B. form1[0].grantApplication[0].page1[0].SignatureField1[0]
.
Weitere Informationen zum Signature-Dienst finden Sie unter Dienstreferenz für AEM Forms
Um Signaturfeldnamen abzurufen, führen Sie die folgenden Aufgaben aus:
Projektdateien einschließen
Fügen Sie die erforderlichen Dateien in Ihr Entwicklungsprojekt ein. Wenn Sie eine Clientanwendung mit Java erstellen, schließen Sie die erforderlichen JAR-Dateien ein. Wenn Sie Webdienste verwenden, stellen Sie sicher, dass Sie die Proxy-Dateien einschließen.
Die folgenden JAR-Dateien müssen zum Klassenpfad Ihres Projekts hinzugefügt werden:
Informationen zum Speicherort dieser JAR-Dateien finden Sie unter Einschließen von AEM Forms-Java-Bibliotheksdateien.
Erstellen eines Signatur-Clients
Bevor Sie einen Signature-Dienstvorgang programmgesteuert ausführen können, müssen Sie einen Signature-Dienstclient erstellen.
Abrufen des PDF-Dokuments, das Signaturfelder enthält
Rufen Sie ein PDF-Dokument mit Signaturfeldern ab.
Abrufen der Signaturfeldnamen
Sie können Signaturfeldnamen abrufen, nachdem Sie ein PDF-Dokument abgerufen haben, das ein oder mehrere Signaturfelder enthält.
Siehe auch
Abrufen von Signaturfeldnamen mithilfe der Java-API
Abrufen von Signaturfeldern mithilfe der Webdienst-API
Einbeziehung von AEM Forms Java-Bibliotheksdateien
Verbindungseigenschaften festlegen
Rufen Sie mithilfe der Signature-API (Java) Signaturfeldnamen ab:
Projektdateien einschließen
Schließen Sie Client-JAR-Dateien wie die adobe-signatures-client.jar in den Klassenpfad Ihres Java-Projekts ein.
Erstellen eines Signatur-Clients
ServiceClientFactory
-" -Objekt, das Verbindungseigenschaften enthält.SignatureServiceClient
-Objekt, indem Sie seinen Konstruktor verwenden und das ServiceClientFactory
-Objekt übergeben.Abrufen des PDF-Dokuments, das Signaturfelder enthält
java.io.FileInputStream
-Objekt, das das PDF-Dokument darstellt, das Signaturfelder enthält, indem es seinen Konstruktor verwendet und einen Zeichenfolgenwert übergibt, der den Speicherort des PDF-Dokuments angibt.com.adobe.idp.Document
-Objekt, indem Sie seinen Konstruktor verwenden und das java.io.FileInputStream
-Objekt übergeben.Abrufen der Signaturfeldnamen
SignatureServiceClient
-Objekt getSignatureFieldList
-Methode und Übergabe der com.adobe.idp.Document
-Objekt, das das PDF-Dokument mit Signaturfeldern enthält. Diese Methode gibt eine java.util.List
-Objekt, in dem jedes Element eine PDFSignatureField
-Objekt. Mit diesem Objekt können Sie zusätzliche Informationen zu einem Signaturfeld abrufen, z. B. ob es sichtbar ist.java.util.List
-Objekt, um zu bestimmen, ob Signaturfeldnamen vorhanden sind. Für jedes Signaturfeld im PDF-Dokument können Sie einen separaten PDFSignatureField
-Objekt. Um den Namen des Signaturfelds abzurufen, rufen Sie die PDFSignatureField
-Objekt getName
-Methode. Diese Methode gibt einen string -Wert zurück, der den Signaturfeldnamen angibt.Siehe auch
Schnellstart (SOAP-Modus): Abrufen von Signaturfeldnamen mithilfe der Java-API
Einbeziehung von AEM Forms Java-Bibliotheksdateien
Verbindungseigenschaften festlegen
Rufen Sie Signaturfeldnamen mithilfe der Signature-API (Webdienst) ab:
Projektdateien einschließen
Erstellen Sie ein Microsoft .NET-Projekt, das MTOM verwendet. Stellen Sie sicher, dass Sie die folgende WSDL-Definition verwenden: http://localhost:8080/soap/services/SignatureService?WSDL&lc_version=9.0.1
.
Ersetzen localhost
mit der IP-Adresse des Servers, auf dem AEM Forms gehostet wird.
Erstellen eines Signatur-Clients
Erstellen Sie eine SignatureServiceClient
-Objekt mithilfe des Standardkonstruktors.
Erstellen Sie eine SignatureServiceClient.Endpoint.Address
-Objekt mithilfe der System.ServiceModel.EndpointAddress
-Konstruktor. Übergeben Sie einen string -Wert, der die WSDL an den AEM Forms-Dienst angibt (z. B. http://localhost:8080/soap/services/SignatureService?WSDL
). Sie müssen die lc_version
-Attribut. Dieses Attribut wird verwendet, wenn Sie eine Dienstreferenz erstellen.)
Erstellen Sie eine System.ServiceModel.BasicHttpBinding
-Objekt durch Abrufen des Werts der SignatureServiceClient.Endpoint.Binding
-Feld. Wandeln Sie den Rückgabewert in BasicHttpBinding
um.
Legen Sie die System.ServiceModel.BasicHttpBinding
-Objekt MessageEncoding
-Feld zu WSMessageEncoding.Mtom
. Dieser Wert stellt sicher, dass MTOM verwendet wird.
Aktivieren Sie die einfache HTTP-Authentifizierung, indem Sie die folgenden Aufgaben ausführen:
SignatureServiceClient.ClientCredentials.UserName.UserName
.SignatureServiceClient.ClientCredentials.UserName.Password
.HttpClientCredentialType.Basic
zum Feld BasicHttpBindingSecurity.Transport.ClientCredentialType
.BasicHttpSecurityMode.TransportCredentialOnly
zum Feld BasicHttpBindingSecurity.Security.Mode
.Abrufen des PDF-Dokuments, das Signaturfelder enthält
BLOB
, indem Sie den Konstruktor verwenden. Die BLOB
-Objekt wird zum Speichern des PDF-Dokuments verwendet, das Signaturfelder enthält.System.IO.FileStream
-Objekt, indem Sie seinen Konstruktor aufrufen und einen string -Wert übergeben, der den Dateispeicherort des PDF-Dokuments und den Modus darstellt, in dem die Datei geöffnet werden soll.System.IO.FileStream
-Objekt. Sie können die Größe des Byte-Arrays bestimmen, indem Sie die System.IO.FileStream
-Objekt Length
-Eigenschaft.System.IO.FileStream
-Objekt Read
-Methode verwenden und das Byte-Array, die Startposition und die zu lesende Stream-Länge übergeben.BLOB
Objekt durch Zuweisen seiner MTOM
den Inhalt des Byte-Arrays.Abrufen der Signaturfeldnamen
SignatureServiceClient
-Objekt getSignatureFieldList
-Methode und Übergabe der BLOB
-Objekt, das das PDF-Dokument mit Signaturfeldern enthält. Diese Methode gibt eine MyArrayOfPDFSignatureField
Kollektionsobjekt, in dem jedes Element PDFSignatureField
-Objekt.MyArrayOfPDFSignatureField
-Objekt, um zu bestimmen, ob Signaturfeldnamen vorhanden sind. Für jedes Signaturfeld im PDF-Dokument können Sie eine PDFSignatureField
-Objekt. Um den Namen des Signaturfelds abzurufen, rufen Sie die PDFSignatureField
-Objekt getName
-Methode. Diese Methode gibt einen string -Wert zurück, der den Signaturfeldnamen angibt.Siehe auch
AEM Forms mithilfe von MTOM aufrufen
Aufrufen von AEM Forms mithilfe von SwaRef
Sie können Signaturfelder in einem PDF-Dokument ändern, indem Sie die Java-API und die Webdienst-API verwenden. Das Ändern eines Signaturfelds umfasst das Manipulieren seiner Signaturfeldsperre- oder Seed-Wert-Lexikonwerte.
A Feldsperre-Wörterbuch gibt eine Liste von Feldern an, die beim Signieren des Signaturfelds gesperrt werden. Ein gesperrtes Feld verhindert, dass Benutzer Änderungen an dem Feld vornehmen. A Seed-Wert-Wörterbuch enthält Einschränkungsinformationen, die zum Zeitpunkt der Anwendung der Signatur verwendet werden. Beispiel: Sie können die Berechtigungen ändern, die Aktionen steuern, die auftreten können, ohne dass eine Signatur ungültig wird.
Durch Änderung eines vorhandenen Signaturfelds können Sie Änderungen am PDF-Dokument vornehmen, um die sich ändernden Geschäftsanforderungen widerzuspiegeln. Eine neue Geschäftsanforderung kann beispielsweise das Sperren aller Dokumentfelder nach dem Signieren des Dokuments erfordern.
In diesem Abschnitt wird beschrieben, wie Sie ein Signaturfeld ändern, indem Sie sowohl die Werte des Feldsperre-Wörterbuchs als auch des Seed-Wert-Wörterbuchs ändern. Änderungen am Signaturfeldsperre-Wörterbuch führen dazu, dass alle Felder im PDF-Dokument gesperrt werden, wenn ein Signaturfeld signiert wird. Änderungen am Seed-Wert-Wörterbuch verbieten bestimmte Arten von Änderungen am Dokument.
Weitere Informationen zum Signature-Dienst und zum Ändern von Signaturfeldern finden Sie unter Dienstreferenz für AEM Forms.
Um Signaturfelder in einem PDF-Dokument zu ändern, führen Sie die folgenden Schritte aus:
Projektdateien einschließen
Schließen Sie die erforderlichen Dateien in Ihr Entwicklungsprojekt ein. Wenn Sie eine Clientanwendung mit Java erstellen, schließen Sie die erforderlichen JAR-Dateien ein. Wenn Sie Webdienste verwenden, stellen Sie sicher, dass Sie die Proxy-Dateien einschließen.
Die folgenden JAR-Dateien müssen zum Klassenpfad Ihres Projekts hinzugefügt werden:
Informationen zum Speicherort dieser JAR-Dateien finden Sie unter Einschließen von LiveCycle-Java-Bibliotheksdateien.
Erstellen eines Signatur-Clients
Bevor Sie einen Signature-Dienstvorgang programmgesteuert ausführen können, müssen Sie einen Signature-Dienstclient erstellen.
Abrufen des PDF-Dokuments, das das zu ändernde Signaturfeld enthält
Rufen Sie ein PDF-Dokument ab, das das zu ändernde Signaturfeld enthält.
Festlegen von Wörterbuchwerten
Um ein Signaturfeld zu ändern, weisen Sie seinem Feldsperre- oder Seed-Wert-Wörterbuch Werte zu. Das Festlegen von Signaturfeld-Sperrwörterbuchwerten umfasst das Angeben von PDF-Dokumentfeldern, die beim Signieren des Signaturfelds gesperrt werden. (In diesem Abschnitt wird beschrieben, wie Sie alle Felder sperren.)
Die folgenden Seed-Wert-Wörterbuchwerte können festgelegt werden:
Revisionsüberprüfung: Gibt an, ob eine Sperrprüfung durchgeführt wird, wenn eine Signatur auf das Signaturfeld angewendet wird.
Zertifikatoptionen: Weist dem Seed-Wert-Wörterbuch des Zertifikats Werte zu. Bevor Sie Zertifikatoptionen angeben, sollten Sie sich mit einem Seed-Wert-Wörterbuch für Zertifikate vertraut machen. (Siehe PDF-Referenz.
Digest Options: Weist Digest-Algorithmen zu, die zum Signieren verwendet werden. Gültige Werte sind SHA1, SHA256, SHA384, SHA512 und RIPEMD160.
Filter: Gibt den Filter an, der mit dem Signaturfeld verwendet wird. Sie können beispielsweise den Filter Adobe.PPKLite verwenden. (Siehe PDF-Referenz.
Optionen für Kennzeichnung: Gibt die mit diesem Signaturfeld verknüpften Flaggenwerte an. Der Wert 1 bedeutet, dass ein Unterzeichner nur die angegebenen Werte für den Eintrag verwenden darf. Der Wert 0 bedeutet, dass andere Werte zulässig sind. Hier sind die Bitpositionen:
Rechtliche Beglaubigungen: Wenn ein Dokument zertifiziert ist, wird es automatisch auf bestimmte Inhaltstypen überprüft, die den sichtbaren Inhalt eines Dokuments mehrdeutig oder irreführend machen können. Beispielsweise kann eine Anmerkung Text verdecken, der für das Verständnis dessen wichtig ist, was zertifiziert wird. Der Scanvorgang erzeugt Warnungen, die auf das Vorhandensein dieses Inhaltstyps hinweisen. Es bietet außerdem eine zusätzliche Erläuterung des Inhalts, der möglicherweise Warnungen generiert hat.
Berechtigungen: Gibt Berechtigungen an, die für ein PDF-Dokument verwendet werden können, ohne die Signatur ungültig zu machen.
Gründe: Gibt Gründe an, aus denen dieses Dokument signiert werden muss.
Zeitstempel: Gibt Zeitstempeloptionen an. Sie können beispielsweise die URL des verwendeten Zeitstempelservers festlegen.
Version: Gibt die Mindestversionsnummer des Signatur-Handlers an, der zum Signieren des Signaturfelds verwendet werden soll.
Signaturfeld ändern
Nachdem Sie einen Signature-Dienst-Client erstellt, das PDF-Dokument abgerufen haben, das das zu ändernde Signaturfeld enthält, und Wörterbuchwerte festgelegt haben, können Sie den Signature-Dienst anweisen, das Signaturfeld zu ändern. Der Signature-Dienst gibt dann ein PDF-Dokument zurück, das das geänderte Signaturfeld enthält. Das ursprüngliche PDF-Dokument ist nicht betroffen.
PDF-Dokument als PDF-Datei speichern
Speichern Sie das PDF-Dokument mit dem geänderten Signaturfeld als PDF-Datei, damit Benutzer es in Acrobat oder Adobe Reader öffnen können.
Siehe auch
Einbeziehung von AEM Forms Java-Bibliotheksdateien
Verbindungseigenschaften festlegen
Schnellstarts für Signature Service-API
Digitales Signieren von PDF-Dokumenten
Ändern Sie ein Signaturfeld mithilfe der Signature-API (Java):
Projektdateien einschließen
Schließen Sie Client-JAR-Dateien wie die Datei "adobe-signatures-client.jar"in den Klassenpfad Ihres Java-Projekts ein.
Erstellen eines Signatur-Clients
ServiceClientFactory
-" -Objekt, das Verbindungseigenschaften enthält.SignatureServiceClient
-Objekt, indem Sie seinen Konstruktor verwenden und das ServiceClientFactory
-Objekt übergeben.Abrufen des PDF-Dokuments, das das zu ändernde Signaturfeld enthält
java.io.FileInputStream
-Objekt, das das PDF-Dokument darstellt, das das zu ändernde Signaturfeld enthält, indem es seinen Konstruktor verwendet und einen Zeichenfolgenwert übergibt, der den Speicherort des PDF-Dokuments angibt.com.adobe.idp.Document
-Objekt, indem Sie seinen Konstruktor verwenden und das java.io.FileInputStream
-Objekt übergeben.Festlegen von Wörterbuchwerten
PDFSignatureFieldProperties
, indem Sie den Konstruktor verwenden. A PDFSignatureFieldProperties
-Objekt speichert das Signaturfeldsperre-Wörterbuch und Seed-Wert-Wörterbuch.PDFSeedValueOptionSpec
, indem Sie den Konstruktor verwenden. Mit diesem Objekt können Sie Seed-Wert-Wörterbuchwerte festlegen.PDFSeedValueOptionSpec
-Objekt setMdpValue
-Methode und Übergabe der MDPPermissions.NoChanges
Auflistungswert.FieldMDPOptionSpec
, indem Sie den Konstruktor verwenden. Mit diesem Objekt können Sie Signaturfeldsperre-Wörterbuchwerte festlegen.FieldMDPOptionSpec
-Objekt setMdpValue
-Methode und Übergabe der FieldMDPAction.ALL
Auflistungswert.PDFSignatureFieldProperties
-Objekt setSeedValue
-Methode und Übergabe der PDFSeedValueOptionSpec
-Objekt.PDFSignatureFieldProperties
-Objekt setFieldMDP
-Methode und Übergabe der FieldMDPOptionSpec
-Objekt.Informationen zu allen Seed-Wert-Wörterbuchwerten, die Sie festlegen können, finden Sie in der PDFSeedValueOptionSpec
-Klassenreferenz. (Siehe AEM Forms API-Referenz.
Signaturfeld ändern
Ändern Sie das Signaturfeld, indem Sie die SignatureServiceClient
-Objekt modifySignatureField
-Methode verwenden und die folgenden Werte übergeben:
com.adobe.idp.Document
-Objekt, das das zu ändernde PDF-Dokument mit dem Signaturfeld speichertPDFSignatureFieldProperties
-Objekt, das das Signaturfeld-Sperrwörterbuch und die Seed-Wert-Wörterbuchinformationen speichertDie modifySignatureField
-Methode gibt eine com.adobe.idp.Document
-Objekt, das ein PDF-Dokument speichert, das das geänderte Signaturfeld enthält.
PDF-Dokument als PDF-Datei speichern
java.io.File
-Objekt ein und stellen Sie sicher, dass die Dateinamenerweiterung .pdf lautet.com.adobe.idp.Document
-Objekt copyToFile
-Methode zum Kopieren des Inhalts der com.adobe.idp.Document
-Objekt in die Datei ein. Stellen Sie sicher, dass Sie die com.adobe.idp.Document
-Objekt, das modifySignatureField
-Methode zurückgegeben.Ändern Sie ein Signaturfeld mithilfe der Signature-API (Webdienst):
Projektdateien einschließen
Erstellen Sie ein Microsoft .NET-Projekt, das MTOM verwendet. Stellen Sie sicher, dass Sie die folgende WSDL-Definition verwenden: http://localhost:8080/soap/services/SignatureService?WSDL&lc_version=9.0.1
.
Ersetzen localhost
mit der IP-Adresse des Servers, auf dem AEM Forms gehostet wird.
Erstellen eines Signatur-Clients
Erstellen Sie eine SignatureServiceClient
-Objekt mithilfe des Standardkonstruktors.
Erstellen Sie eine SignatureServiceClient.Endpoint.Address
-Objekt mithilfe der System.ServiceModel.EndpointAddress
-Konstruktor. Übergeben Sie einen string -Wert, der die WSDL an den AEM Forms-Dienst angibt (z. B. http://localhost:8080/soap/services/SignatureService?WSDL
). Sie müssen die lc_version
-Attribut. Dieses Attribut wird verwendet, wenn Sie eine Dienstreferenz erstellen.)
Erstellen Sie eine System.ServiceModel.BasicHttpBinding
-Objekt durch Abrufen des Werts der SignatureServiceClient.Endpoint.Binding
-Feld. Wandeln Sie den Rückgabewert in BasicHttpBinding
um.
Legen Sie die System.ServiceModel.BasicHttpBinding
-Objekt MessageEncoding
-Feld zu WSMessageEncoding.Mtom
. Dieser Wert stellt sicher, dass MTOM verwendet wird.
Aktivieren Sie die einfache HTTP-Authentifizierung, indem Sie die folgenden Aufgaben ausführen:
SignatureServiceClient.ClientCredentials.UserName.UserName
.SignatureServiceClient.ClientCredentials.UserName.Password
.HttpClientCredentialType.Basic
zum Feld BasicHttpBindingSecurity.Transport.ClientCredentialType
.BasicHttpSecurityMode.TransportCredentialOnly
zum Feld BasicHttpBindingSecurity.Security.Mode
.Abrufen des PDF-Dokuments, das das zu ändernde Signaturfeld enthält
BLOB
, indem Sie den Konstruktor verwenden. Die BLOB
-Objekt wird verwendet, um das PDF-Dokument zu speichern, das das zu ändernde Signaturfeld enthält.System.IO.FileStream
-Objekt, indem Sie seinen Konstruktor aufrufen und einen string -Wert übergeben, der den Dateispeicherort des PDF-Dokuments und den Modus darstellt, in dem die Datei geöffnet werden soll.System.IO.FileStream
-Objekt. Sie können die Größe des Byte-Arrays bestimmen, indem Sie die System.IO.FileStream
-Objekt Length
-Eigenschaft.System.IO.FileStream
-Objekt Read
-Methode verwenden und das Byte-Array, die Startposition und die zu lesende Stream-Länge übergeben.BLOB
Objekt durch Zuweisen seiner MTOM
-Eigenschaft den Inhalt des Byte-Arrays.Festlegen von Wörterbuchwerten
PDFSignatureFieldProperties
, indem Sie den Konstruktor verwenden. Dieses Objekt speichert das Signaturfeldsperre-Wörterbuch und Seed-Wert-Wörterbuch.PDFSeedValueOptionSpec
, indem Sie den Konstruktor verwenden. Mit diesem Objekt können Sie Seed-Wert-Wörterbuchwerte festlegen.MDPPermissions.NoChanges
Auflistungswert zum PDFSeedValueOptionSpec
-Objekt mdpValue
Datenelement.FieldMDPOptionSpec
, indem Sie den Konstruktor verwenden. Mit diesem Objekt können Sie Signaturfeldsperre-Wörterbuchwerte festlegen.FieldMDPAction.ALL
Auflistungswert zum FieldMDPOptionSpec
-Objekt mdpValue
Datenelement.PDFSeedValueOptionSpec
-Objekt PDFSignatureFieldProperties
-Objekt seedValue
Datenelement.FieldMDPOptionSpec
-Objekt PDFSignatureFieldProperties
-Objekt fieldMDP
Datenelement.Informationen zu allen Seed-Wert-Wörterbuchwerten, die Sie festlegen können, finden Sie in der PDFSeedValueOptionSpec
-Klassenreferenz. (Siehe AEM Forms API-Referenz).
Signaturfeld ändern
Ändern Sie das Signaturfeld, indem Sie die SignatureServiceClient
-Objekt modifySignatureField
-Methode verwenden und die folgenden Werte übergeben:
BLOB
-Objekt, das das zu ändernde PDF-Dokument mit dem Signaturfeld speichertPDFSignatureFieldProperties
-Objekt, das das Signaturfeld-Sperrwörterbuch und die Seed-Wert-Wörterbuchinformationen speichertDie modifySignatureField
-Methode gibt eine BLOB
-Objekt, das ein PDF-Dokument speichert, das das geänderte Signaturfeld enthält.
PDF-Dokument als PDF-Datei speichern
System.IO.FileStream
-Objekt, indem Sie seinen Konstruktor aufrufen und einen string -Wert übergeben, der den Dateispeicherort des PDF-Dokuments darstellt, das das Signaturfeld enthalten soll, und den Modus, in dem die Datei geöffnet werden soll.BLOB
-Objekt, das addSignatureField
-Methode zurückgibt. Füllen Sie das Byte-Array, indem Sie den Wert der BLOB
-Objekt MTOM
Datenelement.System.IO.BinaryWriter
-Objekt durch Aufrufen des Konstruktors und Übergeben des System.IO.FileStream
-Objekt.System.IO.BinaryWriter
-Objekt Write
-Methode verwenden und das Byte-Array übergeben.Siehe auch
AEM Forms mithilfe von MTOM aufrufen
Aufrufen von AEM Forms mithilfe von SwaRef
Digitale Signaturen können zu Sicherheitszwecken auf PDF-Dokumente angewendet werden. Digitale Signaturen bieten wie handschriftliche Signaturen ein Mittel, mit dem sich die Unterzeichner identifizieren und zum Dokument Stellung nehmen. Die zum digitalen Signieren verwendete Technologie stellt sicher, dass sowohl der Unterzeichner als auch die Empfänger genau wissen, was signiert wurde und dass das Dokument nach dem Signieren nicht geändert wurde.
PDF-Dokumente werden mittels der Technologie öffentlicher Schlüssel signiert. Ein Unterzeichner hat zwei Schlüssel: einen öffentlichen Schlüssel und einen privaten Schlüssel. Der private Schlüssel wird in den Anmeldedaten eines Benutzers gespeichert, die zum Zeitpunkt des Signierens verfügbar sein müssen. Der öffentliche Schlüssel wird im Zertifikat des Benutzers gespeichert, das Empfängern zur Validierung der Signatur zur Verfügung stehen muss. Informationen zu gesperrten Zertifikaten finden Sie in den Zertifikatsperrlisten (CRLs) und den Antworten des Online-Zertifikatstatusprotokolls (OCSP), die von Zertifizierungsstellen (CAs) verteilt werden. Der Zeitpunkt der Signatur kann von einer vertrauenswürdigen Quelle, die als Zeitstempeldienst bezeichnet wird, erhalten werden.
Bevor Sie ein PDF-Dokument digital signieren können, müssen Sie sicherstellen, dass Sie das Zertifikat zu AEM Forms hinzufügen. Ein Zertifikat wird über Administration Console oder programmgesteuert mithilfe der Trust Manager-API hinzugefügt. (Siehe Importieren von Anmeldeinformationen mithilfe der Trust Manager-API.
Sie können PDF-Dokumente programmgesteuert digital signieren. Beim digitalen Signieren eines PDF-Dokuments müssen Sie auf eine Sicherheitsberechtigung verweisen, die in AEM Forms vorhanden ist. Die Anmeldedaten bestehen aus dem zum Signieren verwendeten privaten Schlüssel.
Der Signature-Dienst führt beim Signieren eines PDF-Dokuments die folgenden Schritte aus:
Informationen zum Umgang mit Sicherheitsberechtigungen finden Sie im Handbuch "Installieren und Bereitstellen von AEM Forms"für Ihren Anwendungsserver.
Es gibt Unterschiede zwischen dem Signieren und Zertifizieren von Dokumenten. (Siehe Zertifizieren von PDF-Dokumenten.
Nicht alle PDF-Dokumente unterstützen das Signieren. Weitere Informationen zum Signature-Dienst und zum digitalen Signieren von Dokumenten finden Sie unter Dienstreferenz für AEM Forms.
Der Signature-Dienst unterstützt keine XDP-Dateien mit eingebetteten PDF-Daten als Eingabe für einen Vorgang, z. B. das Zertifizieren eines Dokuments. Diese Aktion führt dazu, dass der Signature-Dienst eine PDFOperationException
. Um dieses Problem zu beheben, konvertieren Sie die XDP-Datei mithilfe des PDF Utilities-Dienstes in eine PDF-Datei und übergeben Sie dann die konvertierte PDF-Datei an einen Signature-Dienst-Vorgang. (Siehe Arbeiten mit PDF Utilities.
Cipher nShield HSM-Berechtigung
Bei Verwendung einer CIPHER nShield-HSM-Berechtigung zum Signieren oder Zertifizieren eines PDF-Dokuments können die neuen Anmeldedaten erst verwendet werden, nachdem der J2EE-Anwendungsserver, auf dem AEM Forms bereitgestellt ist, neu gestartet wurde. Sie können jedoch einen Konfigurationswert festlegen, der dazu führt, dass der Vorgang zum Signieren oder Zertifizieren funktioniert, ohne den J2EE-Anwendungsserver neu zu starten.
Sie können den folgenden Konfigurationswert zur Datei "cknfastrc"hinzufügen, die sich unter /opt/nfast/cknfastrc (oder c:\nfast\cknfastrc) befindet:
CKNFAST_ASSUME_SINGLE_PROCESS=0
Nachdem Sie diesen Konfigurationswert zur cknfastrc-Datei hinzugefügt haben, können die neuen Anmeldedaten verwendet werden, ohne den J2EE-Anwendungsserver neu zu starten.
Signatur ist nicht vertrauenswürdig
Wenn beim Zertifizieren und Signieren desselben PDF-Dokuments die Zertifizierungssignatur nicht als vertrauenswürdig eingestuft wird, wird beim Öffnen des PDF-Dokuments in Acrobat oder Adobe Reader ein gelbes Dreieck gegen die erste Signatur angezeigt. Die Zertifizierungssignatur muss als vertrauenswürdig eingestuft werden, um dies zu vermeiden.
Signieren von Dokumenten, die XFA-basierte Formulare sind
Wenn Sie versuchen, ein XFA-basiertes Formular mithilfe der Signature-Dienst-API zu signieren, fehlen die Daten möglicherweise in der View
Signed
Version
befindet sich in Acrobat. Betrachten Sie beispielsweise den folgenden Workflow:
Führen Sie die folgenden Schritte aus, um ein PDF-Dokument digital zu signieren:
Projektdateien einschließen
Fügen Sie die erforderlichen Dateien in Ihr Entwicklungsprojekt ein. Wenn Sie eine Clientanwendung mit Java erstellen, schließen Sie die erforderlichen JAR-Dateien ein. Wenn Sie Webdienste verwenden, stellen Sie sicher, dass Sie die Proxy-Dateien einschließen.
Die folgenden JAR-Dateien müssen zum Klassenpfad Ihres Projekts hinzugefügt werden:
Erstellen eines Signatur-Clients
Bevor Sie einen Signature-Dienstvorgang programmgesteuert ausführen können, müssen Sie einen Signature-Dienstclient erstellen.
PDF-Dokument zum Signieren abrufen
Um ein PDF-Dokument zu signieren, müssen Sie ein PDF-Dokument mit einem Signaturfeld abrufen. Wenn ein PDF-Dokument kein Signaturfeld enthält, kann es nicht signiert werden. Ein Signaturfeld kann mithilfe von Designer oder programmgesteuert hinzugefügt werden.
Signieren des PDF-Dokuments
Beim Signieren eines PDF-Dokuments können Sie Laufzeitoptionen festlegen, die vom Signature-Dienst verwendet werden. Sie können die folgenden Optionen festlegen:
Sie können die Darstellungsoptionen mithilfe einer PDFSignatureAppearanceOptionSpec
-Objekt. Beispielsweise können Sie das Datum innerhalb einer Signatur anzeigen, indem Sie die PDFSignatureAppearanceOptionSpec
-Objekt setShowDate
Methode und Übergabe true
.
Sie können auch angeben, ob eine Sperrprüfung durchgeführt werden soll, mit der festgestellt wird, ob das Zertifikat, das zum digitalen Signieren eines PDF-Dokuments verwendet wird, widerrufen wurde. Zur Durchführung der Sperrprüfung können Sie einen der folgenden Werte angeben:
Um eine Sperrprüfung für ein Zertifikat durchzuführen, können Sie mithilfe eines CRLOptionSpec
-Objekt. Wenn Sie jedoch eine Sperrprüfung durchführen möchten und keine URL für einen Zertifikatsperrlisten-Server angeben, ruft der Signature-Dienst die URL aus dem Zertifikat ab.
Anstelle eines CRL-Servers können Sie bei der Prüfung von Sperren einen OCSP-Server (Online Certificate Status Protocol) verwenden. Normalerweise wird bei Verwendung eines OCSP-Servers im Gegensatz zu einem CRL-Server die Sperrprüfung schneller durchgeführt. (Siehe "Online Certificate Status Protocol" unter https://tools.ietf.org/html/rfc2560.
Sie können die CRL- und OCSP-Serverreihenfolge festlegen, die der Signature-Dienst mithilfe von Adobe Applications and Services verwendet. Wenn beispielsweise der OCSP-Server zuerst in Adobe Applications and Services festgelegt wird, wird der OCSP-Server überprüft, gefolgt vom CRL-Server. (Siehe "Verwalten von Zertifikaten und Berechtigungen mithilfe des Trust Store"in der AAC-Hilfe).
Wenn Sie angeben, dass keine Sperrprüfung durchgeführt werden soll, prüft der Signature-Dienst nicht, ob das zum Signieren oder Zertifizieren eines Dokuments verwendete Zertifikat widerrufen wurde. Das heißt, CRL- und OCSP-Serverinformationen werden ignoriert.
Obwohl im Zertifikat eine Zertifikatsperrliste oder ein OCSP-Server angegeben werden kann, können Sie die im Zertifikat angegebene URL überschreiben, indem Sie eine CRLOptionSpec
und OCSPOptionSpec
-Objekt. Um beispielsweise den CRL-Server zu überschreiben, können Sie die CRLOptionSpec
-Objekt setLocalURI
-Methode.
Zeitstempel bezeichnen den Prozess der Nachverfolgung des Zeitpunkts, zu dem ein signiertes oder zertifiziertes Dokument geändert wurde. Nachdem ein Dokument signiert wurde, sollte es nicht mehr geändert werden, auch nicht vom Dokumenteigentümer. Die Zeitstempel helfen, die Gültigkeit eines signierten oder zertifizierten Dokuments zu erzwingen. Sie können Zeitstempeloptionen mithilfe eines TSPOptionSpec
-Objekt. Sie können beispielsweise die URL eines Zeitstempelanbieter-Servers (TSP) angeben.
Im Java- und Webdienst werden die Abschnitte und die entsprechenden Schnellstarts durchlaufen. Dabei wird die Sperrprüfung verwendet. Da keine CRL- oder OCSP-Serverinformationen angegeben sind, werden die Serverinformationen aus dem Zertifikat abgerufen, das zum digitalen Signieren des PDF-Dokuments verwendet wird.
Um ein PDF-Dokument erfolgreich zu signieren, können Sie den vollqualifizierten Namen des Signaturfelds angeben, das die digitale Signatur enthalten soll, z. B. form1[0].#subform[1].SignatureField3[3]
. Bei Verwendung eines XFA-Formularfelds kann auch der Teilname des Signaturfelds verwendet werden: SignatureField3[3]
.
Sie müssen auch auf eine Sicherheitsberechtigung verweisen, um ein PDF-Dokument digital zu signieren. Um auf eine Sicherheitsberechtigung zu verweisen, geben Sie einen Alias an. Der Alias ist ein Verweis auf eine tatsächliche Berechtigung, die sich in einer PKCS#12-Datei (mit .pfx-Erweiterung) oder einem Hardware-Sicherheitsmodul (HSM) befinden kann. Informationen zu den Sicherheitsberechtigungen finden Sie im Handbuch "Installieren und Bereitstellen von AEM Forms"für Ihren Anwendungsserver.
Speichern Sie das signierte PDF-Dokument
Nachdem der Signature-Dienst das PDF-Dokument digital signiert hat, können Sie es als PDF-Datei speichern, damit Benutzer es in Acrobat oder Adobe Reader öffnen können.
Siehe auch
PDF-Dokumente mit der Java-API digital signieren
Digitales Signieren von PDF-Dokumenten mithilfe der Webdienst-API
Einbeziehung von AEM Forms Java-Bibliotheksdateien
Verbindungseigenschaften festlegen
Digitales Signieren eines PDF-Dokuments mithilfe der Signature-API (Java):
Projektdateien einschließen
Schließen Sie Client-JAR-Dateien wie adobe-signatures-client.jar in den Klassenpfad Ihres Java-Projekts ein.
Erstellen eines Signatur-Clients
ServiceClientFactory
-" -Objekt, das Verbindungseigenschaften enthält.SignatureServiceClient
-Objekt, indem Sie seinen Konstruktor verwenden und das ServiceClientFactory
-Objekt übergeben.PDF-Dokument zum Signieren abrufen
java.io.FileInputStream
-Objekt, das das PDF-Dokument darstellt, das mit seinem Konstruktor digital signiert werden soll, und einen Zeichenfolgenwert übergibt, der den Speicherort des PDF-Dokuments angibt.com.adobe.idp.Document
-Objekt, indem Sie seinen Konstruktor verwenden und das java.io.FileInputStream
-Objekt übergeben.Signieren des PDF-Dokuments
Signieren Sie das PDF-Dokument, indem Sie die SignatureServiceClient
-Objekt sign
-Methode verwenden und die folgenden Werte übergeben:
com.adobe.idp.Document
-Objekt, das das zu signierende PDF-Dokument darstellt.Credential
-Objekt, das die Berechtigung darstellt, die zum digitalen Signieren des PDF-Dokuments verwendet wird. Erstellen Sie eine Credential
-Objekt durch Aufrufen der Credential
Statische Objektform getInstance
-Methode verwenden und einen string -Wert übergeben, der den Alias-Wert angibt, der der Sicherheitsberechtigung entspricht.HashAlgorithm
-Objekt, das ein statisches Datenelement angibt, das den Hash-Algorithmus darstellt, der zum Digest des PDF-Dokuments verwendet werden soll. Sie können beispielsweise HashAlgorithm.SHA1
, um den SHA1-Algorithmus zu verwenden.PDFSignatureAppearanceOptions
-Objekt, das das Erscheinungsbild der digitalen Signatur steuert. Beispielsweise können Sie dieses Objekt verwenden, um ein benutzerdefiniertes Logo zu einer digitalen Signatur hinzuzufügen.java.lang.Boolean
-Objekt, das angibt, ob das Zertifikat des Signierers einer Sperrprüfung unterzogen werden soll.OCSPOptionSpec
-Objekt, das Voreinstellungen für die Unterstützung des Online Certificate Status Protocol (OCSP) speichert. Wenn die Sperrprüfung nicht durchgeführt wird, wird dieser Parameter nicht verwendet und Sie können null
.CRLPreferences
-Objekt, das die Voreinstellungen für Zertifikatsperrliste (CRL) speichert. Wenn die Sperrprüfung nicht durchgeführt wird, wird dieser Parameter nicht verwendet und Sie können null
.TSPPreferences
-Objekt, das Voreinstellungen für die Unterstützung des Zeitstempelanbieters (TSP) speichert. Dieser Parameter ist optional und kann null
. Weitere Informationen finden Sie unter AEM Forms API-Referenz.Die sign
-Methode gibt eine com.adobe.idp.Document
-Objekt, das das signierte PDF-Dokument darstellt.
Speichern Sie das signierte PDF-Dokument
java.io.File
-Objekt und stellen Sie sicher, dass die Dateierweiterung .pdf ist.com.adobe.idp.Document
-Objekt copyToFile
-Methode und -übergabe java.io.File
, um den Inhalt der Document
-Objekt in die Datei ein. Stellen Sie sicher, dass Sie das com.adobe.idp.Document
-Objekt verwenden, das von der sign
-Methode zurückgegeben wurde.Siehe auch
Digitales Signieren von PDF-Dokumenten
Schnellstart (SOAP-Modus): Digitales Signieren eines PDF-Dokuments mit der Java-API
Einbeziehung von AEM Forms Java-Bibliotheksdateien
Verbindungseigenschaften festlegen
So signieren Sie ein PDF-Dokument digital mithilfe der Signature-API (Webdienst):
Projektdateien einschließen
Erstellen Sie ein Microsoft .NET-Projekt, das MTOM verwendet. Stellen Sie sicher, dass Sie die folgende WSDL-Definition verwenden: http://localhost:8080/soap/services/SignatureService?WSDL&lc_version=9.0.1
.
Ersetzen localhost
mit der IP-Adresse des Servers, auf dem AEM Forms gehostet wird.
Erstellen eines Signatur-Clients
Erstellen Sie eine SignatureServiceClient
-Objekt mithilfe des Standardkonstruktors.
Erstellen Sie eine SignatureServiceClient.Endpoint.Address
-Objekt mithilfe der System.ServiceModel.EndpointAddress
-Konstruktor. Übergeben Sie einen string -Wert, der die WSDL an den AEM Forms-Dienst angibt (z. B. http://localhost:8080/soap/services/SignatureService?WSDL
). Sie müssen die lc_version
-Attribut. Dieses Attribut wird verwendet, wenn Sie eine Dienstreferenz erstellen.)
Erstellen Sie eine System.ServiceModel.BasicHttpBinding
-Objekt durch Abrufen des Werts der SignatureServiceClient.Endpoint.Binding
-Feld. Wandeln Sie den Rückgabewert in BasicHttpBinding
um.
Legen Sie die System.ServiceModel.BasicHttpBinding
-Objekt MessageEncoding
-Feld zu WSMessageEncoding.Mtom
. Dieser Wert stellt sicher, dass MTOM verwendet wird.
Aktivieren Sie die einfache HTTP-Authentifizierung, indem Sie die folgenden Aufgaben ausführen:
SignatureServiceClient.ClientCredentials.UserName.UserName
.SignatureServiceClient.ClientCredentials.UserName.Password
.HttpClientCredentialType.Basic
zum Feld BasicHttpBindingSecurity.Transport.ClientCredentialType
.BasicHttpSecurityMode.TransportCredentialOnly
zum Feld BasicHttpBindingSecurity.Security.Mode
.PDF-Dokument zum Signieren abrufen
BLOB
, indem Sie den Konstruktor verwenden. Die BLOB
-Objekt wird zum Speichern eines signierten PDF-Dokuments verwendet.System.IO.FileStream
-Objekt durch Aufrufen des Konstruktors und Übergeben eines Zeichenfolgenwerts, der den Dateispeicherort des zu signierenden PDF-Dokuments und den Modus, in dem die Datei geöffnet werden soll, darstellt.System.IO.FileStream
-Objekt. Sie können die Größe des Byte-Arrays bestimmen, indem Sie die System.IO.FileStream
-Objekt Length
-Eigenschaft.System.IO.FileStream
-Objekt Read
-Methode verwenden und das Byte-Array, die Startposition und die zu lesende Stream-Länge übergeben.BLOB
Objekt durch Zuweisen seiner MTOM
-Eigenschaft den Inhalt des Byte-Arrays.Signieren des PDF-Dokuments
Signieren Sie das PDF-Dokument, indem Sie die SignatureServiceClient
-Objekt sign
-Methode verwenden und die folgenden Werte übergeben:
BLOB
-Objekt, das das zu signierende PDF-Dokument darstellt.Credential
-Objekt, das die Berechtigung darstellt, die zum digitalen Signieren des PDF-Dokuments verwendet wird. Erstellen Sie eine Credential
-Objekt mithilfe des Konstruktors und geben Sie den Alias an, indem Sie dem Credential
-Objekt alias
-Eigenschaft.HashAlgorithm
-Objekt, das ein statisches Datenelement angibt, das den Hash-Algorithmus darstellt, der zum Digest des PDF-Dokuments verwendet werden soll. Sie können beispielsweise HashAlgorithm.SHA1
, um den SHA1-Algorithmus zu verwenden.PDFSignatureAppearanceOptions
-Objekt, das das Erscheinungsbild der digitalen Signatur steuert. Beispielsweise können Sie dieses Objekt verwenden, um ein benutzerdefiniertes Logo zu einer digitalen Signatur hinzuzufügen.System.Boolean
-Objekt, das angibt, ob das Zertifikat des Signierers einer Sperrprüfung unterzogen werden soll. Wenn diese Sperrprüfung durchgeführt wird, wird sie in die Signatur eingebettet. Der Standardwert lautet false
.OCSPOptionSpec
object that stores preferences for Online Certificate Status Protocol (OCSP) support. Wenn die Sperrprüfung nicht durchgeführt wird, wird dieser Parameter nicht verwendet und Sie können null
. Weitere Informationen zu diesem Objekt finden Sie unter AEM Forms API-Referenz.CRLPreferences
-Objekt, das die Voreinstellungen für Zertifikatsperrliste (CRL) speichert. Wenn die Sperrprüfung nicht durchgeführt wird, wird dieser Parameter nicht verwendet und Sie können null
.TSPPreferences
-Objekt, das Voreinstellungen für die Unterstützung des Zeitstempelanbieters (TSP) speichert. This parameter is optional and can be null
.Die sign
-Methode gibt eine BLOB
-Objekt, das das signierte PDF-Dokument darstellt.
Save the signed PDF document
System.IO.FileStream
-Objekt durch Aufrufen seines Konstruktors. Übergeben Sie einen string -Wert, der den Dateispeicherort des signierten PDF-Dokuments und den Dateimodus darstellt, in dem die Datei geöffnet werden soll.BLOB
-Objekt, das von der sign
-Methode. Füllen Sie das Byte-Array, indem Sie den Wert der BLOB
-Objekt MTOM
Datenelement.System.IO.BinaryWriter
-Objekt durch Aufrufen des Konstruktors und Übergeben des System.IO.FileStream
-Objekt.System.IO.BinaryWriter
-Objekt Write
-Methode verwenden und das Byte-Array übergeben.Siehe auch
Digitales Signieren von PDF-Dokumenten
Invoking AEM Forms using SwaRef
Sie können ein interaktives Formular signieren, das der Forms-Dienst erstellt. Betrachten Sie beispielsweise den folgenden Workflow:
Das Ergebnis ist ein digital signiertes interaktives PDF-Formular. Wenn Sie ein PDF-Formular signieren, das auf einem XFA-Formular basiert, stellen Sie sicher, dass Sie die PDF-Datei als statisches PDF-Formular für die Adobe speichern. Wenn Sie versuchen, ein PDF-Formular zu signieren, das als dynamisches PDF-Formular der Adobe gespeichert ist, tritt eine Ausnahme auf. Da Sie das Formular signieren, das vom Forms-Dienst zurückgegeben wird, stellen Sie sicher, dass das Formular ein Signaturfeld enthält.
Bevor Sie ein interaktives Formular digital signieren können, müssen Sie sicherstellen, dass Sie das Zertifikat zu AEM Forms hinzufügen. Ein Zertifikat wird über Administration Console oder programmgesteuert mithilfe der Trust Manager-API hinzugefügt. (Siehe Importieren von Anmeldeinformationen mithilfe der Trust Manager-API.
Legen Sie bei Verwendung der Forms Service-API die GenerateServerAppearance
Laufzeitoption zu true
. Diese Laufzeitoption stellt sicher, dass das Erscheinungsbild des Formulars, das auf dem Server generiert wird, auch dann gültig bleibt, wenn es in Acrobat oder Adobe Reader geöffnet wird. Es wird empfohlen, diese Laufzeitoption beim Generieren eines interaktiven Formulars festzulegen, das mithilfe der Forms-API signiert werden soll.
Bevor Sie Digital Signing Interactive Forms lesen, sollten Sie mit dem Signieren von PDF-Dokumenten vertraut sein. (Siehe Digitales Signieren von PDF-Dokumenten.
Um ein interaktives Formular digital zu signieren, das der Forms-Dienst zurückgibt, führen Sie die folgenden Aufgaben aus:
Projektdateien einschließen
Fügen Sie die erforderlichen Dateien in Ihr Entwicklungsprojekt ein. Wenn Sie eine Clientanwendung mit Java erstellen, schließen Sie die erforderlichen JAR-Dateien ein. Wenn Sie Webdienste verwenden, stellen Sie sicher, dass Sie die Proxy-Dateien einschließen.
Die folgenden JAR-Dateien müssen zum Klassenpfad Ihres Projekts hinzugefügt werden:
Informationen zum Speicherort dieser JAR-Dateien finden Sie unter Einschließen von AEM Forms-Java-Bibliotheksdateien.
Erstellen eines Forms- und Signaturclient
Da dieser Workflow sowohl den Forms- als auch den Signature-Dienst aufruft, erstellen Sie sowohl einen Forms-Dienstclient als auch einen Signature-Dienstclient.
Abrufen des interaktiven Formulars mit dem Forms-Dienst
Sie können den Forms-Dienst verwenden, um das interaktive PDF-Formular zum Signieren abzurufen. Ab AEM Forms können Sie eine com.adobe.idp.Document
-Objekt an den Forms-Dienst übergeben, der das wiederzugebende Formular enthält. Der Name dieser Methode lautet renderPDFForm2
. Diese Methode gibt eine com.adobe.idp.Document
-Objekt, das das zu signierende Formular enthält. Sie können dies com.adobe.idp.Document
-Instanz zum Signature-Dienst.
Wenn Sie Webdienste verwenden, können Sie die BLOB
-Instanz, die der Forms-Dienst zum Signature-Dienst zurückgibt.
Der Schnellstart, der mit dem Abschnitt "Digitales Signieren interaktiver Forms"verknüpft ist, ruft die renderPDFForm2
-Methode.
Interaktives Formular unterschreiben
Beim Signieren eines PDF-Dokuments können Sie Laufzeitoptionen festlegen, die der Signature-Dienst verwendet. Sie können die folgenden Optionen festlegen:
Sie können die Darstellungsoptionen mithilfe einer PDFSignatureAppearanceOptionSpec
-Objekt. Beispielsweise können Sie das Datum innerhalb einer Signatur anzeigen, indem Sie die PDFSignatureAppearanceOptionSpec
-Objekt setShowDate
Methode und Übergabe true
.
Speichern Sie das signierte PDF-Dokument
Nachdem der Signature-Dienst das PDF-Dokument digital signiert hat, können Sie es als PDF-Datei speichern. Die PDF-Datei kann in Acrobat oder Adobe Reader geöffnet werden.
Siehe auch
Interaktives Formular mit der Java-API digital signieren
Interaktives Formular mit der Webdienst-API digital signieren
Einbeziehung von AEM Forms Java-Bibliotheksdateien
Verbindungseigenschaften festlegen
Digitales Signieren von PDF-Dokumenten
Rendern interaktiver PDF forms
Interaktives Formular mit der Forms- und Signatur-API (Java) digital signieren:
Projektdateien einschließen
Schließen Sie Client-JAR-Dateien wie adobe-signatures-client.jar und adobe-forms-client.jar in den Klassenpfad Ihres Java-Projekts ein.
Erstellen eines Forms- und Signaturclient
ServiceClientFactory
-" -Objekt, das Verbindungseigenschaften enthält.SignatureServiceClient
-Objekt, indem Sie seinen Konstruktor verwenden und das ServiceClientFactory
-Objekt übergeben.FormsServiceClient
-Objekt, indem Sie seinen Konstruktor verwenden und das ServiceClientFactory
-Objekt übergeben.Abrufen des interaktiven Formulars mit dem Forms-Dienst
Erstellen Sie eine java.io.FileInputStream
-Objekt, das das PDF-Dokument darstellt, das mithilfe seines Konstruktors an den Forms-Dienst übergeben werden soll. Übergeben Sie einen string -Wert, der den Speicherort des PDF-Dokuments angibt.
Erstellen Sie ein com.adobe.idp.Document
-Objekt, indem Sie seinen Konstruktor verwenden und das java.io.FileInputStream
-Objekt übergeben.
Erstellen Sie eine java.io.FileInputStream
-Objekt, das das XML-Dokument darstellt, das Formulardaten enthält, die mithilfe seines Konstruktors an den Forms-Dienst übergeben werden sollen. Übergeben Sie einen string -Wert, der den Speicherort der XML-Datei angibt.
Erstellen Sie ein com.adobe.idp.Document
-Objekt, indem Sie seinen Konstruktor verwenden und das java.io.FileInputStream
-Objekt übergeben.
Erstellen Sie eine PDFFormRenderSpec
-Objekt, das zum Festlegen von Laufzeitoptionen verwendet wird. Rufen Sie die PDFFormRenderSpec
-Objekt setGenerateServerAppearance
-Methode und -übergabe true
.
Rufen Sie die FormsServiceClient
-Objekt renderPDFForm2
-Methode verwenden und die folgenden Werte übergeben:
com.adobe.idp.Document
-Objekt, das das zu rendernde PDF-Formular enthält.com.adobe.idp.Document
-Objekt, das Daten enthält, die mit dem Formular zusammengeführt werden sollen.PDFFormRenderSpec
-Objekt, das Laufzeitoptionen speichert.URLSpec
-Objekt, das URI-Werte enthält, die für den Forms-Dienst erforderlich sind. Sie können null
für diesen Parameterwert.java.util.HashMap
-Objekt, das Dateianlagen speichert. Dies ist ein optionaler Parameter, den Sie null
, wenn Sie keine Dateien an das Formular anhängen möchten.Die renderPDFForm2
-Methode gibt eine FormsResult
-Objekt, das einen Formulardatenstream enthält
Rufen Sie das PDF-Formular ab, indem Sie die FormsResult
-Objekt getOutputContent
-Methode. Diese Methode gibt eine com.adobe.idp.Document
-Objekt, das das interaktive Formular darstellt.
Interaktives Formular unterschreiben
Signieren Sie das PDF-Dokument, indem Sie die SignatureServiceClient
-Objekt sign
-Methode verwenden und die folgenden Werte übergeben:
com.adobe.idp.Document
-Objekt, das das zu signierende PDF-Dokument darstellt. Stellen Sie sicher, dass dieses Objekt com.adobe.idp.Document
-Objekt, das vom Forms-Dienst abgerufen wurde.Credential
-Objekt, das die Berechtigung darstellt, die zum digitalen Signieren des PDF-Dokuments verwendet wird. Erstellen Sie eine Credential
-Objekt durch Aufrufen der Credential
Statische Objektform getInstance
-Methode. Übergeben Sie einen string -Wert, der den Alias-Wert angibt, der der Sicherheitsberechtigung entspricht.HashAlgorithm
-Objekt, das ein statisches Datenelement angibt, das den Hash-Algorithmus darstellt, der zum Digest des PDF-Dokuments verwendet werden soll. Sie können beispielsweise HashAlgorithm.SHA1
, um den SHA1-Algorithmus zu verwenden.PDFSignatureAppearanceOptions
-Objekt, das das Erscheinungsbild der digitalen Signatur steuert. Beispielsweise können Sie dieses Objekt verwenden, um ein benutzerdefiniertes Logo zu einer digitalen Signatur hinzuzufügen.java.lang.Boolean
-Objekt, das angibt, ob das Zertifikat des Signierers einer Sperrprüfung unterzogen werden soll.OCSPPreferences
-Objekt, das Voreinstellungen für die Unterstützung des Online Certificate Status Protocol (OCSP) speichert. Wenn die Sperrprüfung nicht durchgeführt wird, wird dieser Parameter nicht verwendet und Sie können null
.CRLPreferences
-Objekt, das die Voreinstellungen für Zertifikatsperrliste (CRL) speichert. Wenn die Sperrprüfung nicht durchgeführt wird, wird dieser Parameter nicht verwendet und Sie können null
.TSPPreferences
-Objekt, das Voreinstellungen für die Unterstützung des Zeitstempelanbieters (TSP) speichert. Dieser Parameter ist optional und kann null
.Die sign
-Methode gibt eine com.adobe.idp.Document
-Objekt, das das signierte PDF-Dokument darstellt.
Speichern Sie das signierte PDF-Dokument
java.io.File
-Objekt ein und stellen Sie sicher, dass die Dateinamenerweiterung .pdf lautet.com.adobe.idp.Document
object’s copyToFile
method and pass java.io.File
to copy the contents of the Document
object to the file. Ensure that you use the com.adobe.idp.Document
object that the sign
method returned.Siehe auch
Digitally Signing Interactive Forms
Schnellstart (SOAP-Modus): Digitales Signieren eines PDF-Dokuments mit der Java-API
Einbeziehung von AEM Forms Java-Bibliotheksdateien
Verbindungseigenschaften festlegen
Interaktives Formular mit der Forms- und Signatur-API (Webdienst) digital signieren:
Include project files
Create a Microsoft .NET project that uses MTOM. Because this client application invokes two AEM Forms services, create two service references. Use the following WSDL definition for the service reference associated with the Signature service: http://localhost:8080/soap/services/SignatureService?WSDL&lc_version=9.0.1
.
Verwenden Sie die folgende WSDL-Definition für die Dienstreferenz, die mit dem Forms-Dienst verknüpft ist: http://localhost:8080/soap/services/FormsService?WSDL&lc_version=9.0.1
.
Da die BLOB
Datentyp für beide Dienstverweise verwendet wird, müssen Sie die BLOB
Datentyp bei der Verwendung. Im entsprechenden Webdienst-Schnellstart werden alle BLOB
-Instanzen sind vollständig qualifiziert.
Ersetzen localhost
mit der IP-Adresse des Servers, auf dem AEM Forms gehostet wird.
Erstellen eines Forms- und Signaturclient
Erstellen Sie eine SignatureServiceClient
-Objekt mithilfe des Standardkonstruktors.
Erstellen Sie eine SignatureServiceClient.Endpoint.Address
-Objekt mithilfe der System.ServiceModel.EndpointAddress
-Konstruktor. Übergeben Sie einen string -Wert, der die WSDL an den AEM Forms-Dienst angibt (z. B. http://localhost:8080/soap/services/SignatureService?WSDL
). Sie müssen die lc_version
-Attribut. Dieses Attribut wird verwendet, wenn Sie eine Dienstreferenz erstellen.)
Erstellen Sie eine System.ServiceModel.BasicHttpBinding
-Objekt durch Abrufen des Werts der SignatureServiceClient.Endpoint.Binding
-Feld. Wandeln Sie den Rückgabewert in BasicHttpBinding
um.
Legen Sie die System.ServiceModel.BasicHttpBinding
-Objekt MessageEncoding
-Feld zu WSMessageEncoding.Mtom
. Dieser Wert stellt sicher, dass MTOM verwendet wird.
Aktivieren Sie die einfache HTTP-Authentifizierung, indem Sie die folgenden Aufgaben ausführen:
SignatureServiceClient.ClientCredentials.UserName.UserName
.SignatureServiceClient.ClientCredentials.UserName.Password
.HttpClientCredentialType.Basic
zum Feld BasicHttpBindingSecurity.Transport.ClientCredentialType
.Konstantenwert zuweisen BasicHttpSecurityMode.TransportCredentialOnly
zum Feld BasicHttpBindingSecurity.Security.Mode
.
Wiederholen Sie diese Schritte für den Forms-Dienstclient.
Abrufen des interaktiven Formulars mit dem Forms-Dienst
Erstellen Sie ein Objekt BLOB
, indem Sie den Konstruktor verwenden. Die BLOB
-Objekt wird zum Speichern eines signierten PDF-Dokuments verwendet.
Erstellen Sie eine System.IO.FileStream
-Objekt durch Aufrufen des Konstruktors und Übergeben eines Zeichenfolgenwerts, der den Dateispeicherort des zu signierenden PDF-Dokuments und den Modus, in dem die Datei geöffnet werden soll, darstellt.
Erstellen Sie ein Byte-Array, das den Inhalt des System.IO.FileStream
-Objekt. Sie können die Größe des Byte-Arrays bestimmen, indem Sie die System.IO.FileStream
-Objekt Length
-Eigenschaft.
Füllen Sie das Byte-Array mit Stream-Daten, indem Sie die System.IO.FileStream
-Objekt Read
-Methode verwenden und das Byte-Array, die Startposition und die zu lesende Stream-Länge übergeben.
Füllen Sie die BLOB
Objekt durch Zuweisen seiner MTOM
-Eigenschaft den Inhalt des Byte-Arrays.
Erstellen Sie ein Objekt BLOB
, indem Sie den Konstruktor verwenden. Die BLOB
-Objekt wird zum Speichern von Formulardaten verwendet.
Erstellen Sie eine System.IO.FileStream
-Objekt, indem Sie seinen Konstruktor aufrufen und einen string -Wert übergeben, der den Dateispeicherort der XML-Datei, die Formulardaten enthält, und den Modus, in dem die Datei geöffnet werden soll.
Erstellen Sie ein Byte-Array, das den Inhalt des System.IO.FileStream
-Objekt. Sie können die Größe des Byte-Arrays bestimmen, indem Sie die System.IO.FileStream
-Objekt Length
-Eigenschaft.
Füllen Sie das Byte-Array mit Stream-Daten, indem Sie die System.IO.FileStream
-Objekt Read
-Methode verwenden und das Byte-Array, die Startposition und die zu lesende Stream-Länge übergeben.
Füllen Sie die BLOB
Objekt durch Zuweisen seiner MTOM
-Eigenschaft den Inhalt des Byte-Arrays.
Erstellen Sie eine PDFFormRenderSpec
-Objekt, das zum Festlegen von Laufzeitoptionen verwendet wird. Wert zuweisen true
der PDFFormRenderSpec
-Objekt generateServerAppearance
-Feld.
Rufen Sie die FormsServiceClient
-Objekt renderPDFForm2
-Methode verwenden und die folgenden Werte übergeben:
BLOB
-Objekt, das das zu rendernde PDF-Formular enthält.BLOB
-Objekt, das Daten enthält, die mit dem Formular zusammengeführt werden sollen.PDFFormRenderSpec
-Objekt, das Laufzeitoptionen speichert.URLSpec
-Objekt, das URI-Werte enthält, die für den Forms-Dienst erforderlich sind. Sie können null
für diesen Parameterwert.java.util.HashMap
-Objekt, das Dateianlagen speichert. Dies ist ein optionaler Parameter, den Sie null
, wenn Sie keine Dateien an das Formular anhängen möchten.FormResult
-Wert ist ein Ausgabeparameter, der zum Speichern des interaktiven Formulars verwendet wird.Rufen Sie das PDF-Formular durch Aufrufen der FormsResult
-Objekt outputContent
-Feld. In diesem Feld wird eine BLOB
-Objekt, das das interaktive Formular darstellt.
Interaktives Formular unterschreiben
Signieren Sie das PDF-Dokument, indem Sie die SignatureServiceClient
-Objekt sign
-Methode verwenden und die folgenden Werte übergeben:
BLOB
-Objekt, das das zu signierende PDF-Dokument darstellt. Verwenden Sie die BLOB
vom Forms-Dienst zurückgegebene Instanz.Credential
-Objekt, das die Berechtigung darstellt, die zum digitalen Signieren des PDF-Dokuments verwendet wird. Erstellen Sie eine Credential
-Objekt mithilfe des Konstruktors und geben Sie den Alias an, indem Sie dem Credential
-Objekt alias
-Eigenschaft.HashAlgorithm
-Objekt, das ein statisches Datenelement angibt, das den Hash-Algorithmus darstellt, der zum Digest des PDF-Dokuments verwendet werden soll. Sie können beispielsweise HashAlgorithm.SHA1
, um den SHA1-Algorithmus zu verwenden.PDFSignatureAppearanceOptions
-Objekt, das das Erscheinungsbild der digitalen Signatur steuert. Beispielsweise können Sie dieses Objekt verwenden, um ein benutzerdefiniertes Logo zu einer digitalen Signatur hinzuzufügen.System.Boolean
-Objekt, das angibt, ob das Zertifikat des Signierers einer Sperrprüfung unterzogen werden soll. Wenn diese Sperrprüfung durchgeführt wird, wird sie in die Signatur eingebettet. Der Standardwert lautet false
.OCSPPreferences
-Objekt, das Voreinstellungen für die Unterstützung des Online Certificate Status Protocol (OCSP) speichert. Wenn die Sperrprüfung nicht durchgeführt wird, wird dieser Parameter nicht verwendet und Sie können null
. Weitere Informationen zu diesem Objekt finden Sie unter AEM Forms API-Referenz.CRLPreferences
-Objekt, das die Voreinstellungen für Zertifikatsperrliste (CRL) speichert. Wenn die Sperrprüfung nicht durchgeführt wird, wird dieser Parameter nicht verwendet und Sie können null
.TSPPreferences
-Objekt, das Voreinstellungen für die Unterstützung des Zeitstempelanbieters (TSP) speichert. Dieser Parameter ist optional und kann null
.Die sign
-Methode gibt eine BLOB
-Objekt, das das signierte PDF-Dokument darstellt.
Speichern Sie das signierte PDF-Dokument
System.IO.FileStream
-Objekt durch Aufrufen seines Konstruktors. Übergeben Sie einen string -Wert, der den Dateispeicherort des signierten PDF-Dokuments und den Dateimodus darstellt, in dem die Datei geöffnet werden soll.BLOB
-Objekt, das von der sign
-Methode. Füllen Sie das Byte-Array, indem Sie den Wert der BLOB
-Objekt MTOM
Datenelement.System.IO.BinaryWriter
-Objekt durch Aufrufen des Konstruktors und Übergeben des System.IO.FileStream
-Objekt.System.IO.BinaryWriter
-Objekt Write
-Methode verwenden und das Byte-Array übergeben.Siehe auch
Digital Signing Interactive Forms
AEM Forms mithilfe von MTOM aufrufen
Sie können ein PDF-Dokument absichern, indem Sie es mit einem bestimmten Signaturtyp (einer zertifizierten Signatur) zertifizieren. Eine zertifizierte Signatur entscheidet sich wie folgt von einer digitalen Signatur:
Sie können PDF-Dokumente programmgesteuert mit der Signature-Dienst-Java-API oder der Signature-Webdienst-API zertifizieren. Beim Zertifizieren eines PDF-Dokuments müssen Sie auf eine Sicherheitsberechtigung verweisen, die im Berechtigungsdienst vorhanden ist. Informationen zu den Sicherheitsberechtigungen finden Sie in der Installieren und Bereitstellen von AEM Forms Handbuch für Ihren Anwendungsserver.
Wenn beim Zertifizieren und Signieren desselben PDF-Dokuments die Zertifizierungssignatur nicht als vertrauenswürdig eingestuft wird, wird beim Öffnen des PDF-Dokuments in Acrobat oder Adobe Reader neben der ersten Signatursignatur ein gelbes Dreieck angezeigt. Die Zertifizierungssignatur muss vertrauenswürdig sein, um dies zu vermeiden.
Bei Verwendung einer CIPHER nShield-HSM-Berechtigung zum Signieren oder Zertifizieren eines PDF-Dokuments können die neuen Anmeldedaten erst verwendet werden, wenn der J2EE-Anwendungsserver, auf dem AEM Forms bereitgestellt wird, neu gestartet wurde. Sie können jedoch einen Konfigurationswert festlegen, der dazu führt, dass der Vorgang zum Signieren oder Zertifizieren funktioniert, ohne den J2EE-Anwendungsserver neu zu starten.
Sie können den folgenden Konfigurationswert zur Datei "cknfastrc"hinzufügen, die sich unter /opt/nfast/cknfastrc (oder c:\nfast\cknfastrc) befindet:
CKNFAST_ASSUME_SINGLE_PROCESS=0
Nachdem Sie diesen Konfigurationswert zur cknfastrc-Datei hinzugefügt haben, können die neuen Anmeldedaten verwendet werden, ohne den J2EE-Anwendungsserver neu zu starten.
Weitere Informationen zum Signature-Dienst und zum Zertifizieren eines Dokuments finden Sie unter Dienstreferenz für AEM Forms.
Führen Sie zum Zertifizieren eines PDF-Dokuments die folgenden Schritte aus:
Projektdateien einschließen
Fügen Sie die erforderlichen Dateien in Ihr Entwicklungsprojekt ein. Wenn Sie eine Clientanwendung mit Java erstellen, schließen Sie die erforderlichen JAR-Dateien ein. Wenn Sie Webdienste verwenden, stellen Sie sicher, dass Sie die Proxy-Dateien einschließen.
Die folgenden JAR-Dateien müssen zum Klassenpfad Ihres Projekts hinzugefügt werden:
Informationen zum Speicherort dieser JAR-Dateien finden Sie unter Einschließen von AEM Forms-Java-Bibliotheksdateien.
Erstellen eines Signatur-Clients
Bevor Sie einen Signaturvorgang programmgesteuert ausführen können, müssen Sie einen Signature-Client erstellen.
Zu zertifizierendes PDF-Dokument abrufen
Zum Zertifizieren eines PDF-Dokuments müssen Sie ein PDF-Dokument mit einem Signaturfeld abrufen. Wenn ein PDF-Dokument kein Signaturfeld enthält, kann es nicht zertifiziert werden. Ein Signaturfeld kann mithilfe von Designer oder programmgesteuert hinzugefügt werden. Informationen zum programmgesteuerten Hinzufügen eines Signaturfelds finden Sie unter Signaturfelder hinzufügen.
Zertifizieren des PDF-Dokuments
Zum erfolgreichen Zertifizieren eines PDF-Dokuments benötigen Sie die folgenden Eingabewerte, die vom Signature-Dienst zum Zertifizieren eines PDF-Dokuments verwendet werden:
form1[0].#subform[1].SignatureField3[3]
. Bei Verwendung eines XFA-Formularfelds kann auch der Teilname des Signaturfelds verwendet werden: SignatureField3[3]
. Wenn für den Feldnamen ein Nullwert übergeben wird, wird ein unsichtbares Signaturfeld dynamisch erstellt und zertifiziert.false
bedeutet, dass die Sperrprüfung nicht durchgeführt wird.Zertifiziertes PDF-Dokument als PDF-Datei speichern
Nachdem der Signature-Dienst das PDF-Dokument zertifiziert hat, können Sie es als PDF-Datei speichern, damit Benutzer es in Acrobat oder Adobe Reader öffnen können.
Siehe auch
Zertifizieren von PDF-Dokumenten mit der Java-API
Zertifizieren von PDF-Dokumenten mithilfe der Webdienst-API
Einbeziehung von AEM Forms Java-Bibliotheksdateien
Verbindungseigenschaften festlegen
Zertifizieren Sie ein PDF-Dokument mithilfe der Signature-API (Java):
Projektdateien einschließen
Schließen Sie Client-JAR-Dateien wie adobe-signatures-client.jar in den Klassenpfad Ihres Java-Projekts ein.
Erstellen eines Signatur-Clients
ServiceClientFactory
-" -Objekt, das Verbindungseigenschaften enthält.SignatureServiceClient
-Objekt, indem Sie seinen Konstruktor verwenden und das ServiceClientFactory
-Objekt übergeben.Zu zertifizierendes PDF-Dokument abrufen
java.io.FileInputStream
-Objekt, das das zu zertifizierende PDF-Dokument darstellt, indem es seinen Konstruktor verwendet und einen Zeichenfolgenwert übergibt, der den Speicherort des PDF-Dokuments angibt.com.adobe.idp.Document
-Objekt, indem Sie seinen Konstruktor verwenden und das java.io.FileInputStream
-Objekt übergeben.Zertifizieren des PDF-Dokuments
Zertifizieren Sie das PDF-Dokument, indem Sie die SignatureServiceClient
-Objekt certify
-Methode verwenden und die folgenden Werte übergeben:
com.adobe.idp.Document
-Objekt, das das zu zertifizierende PDF-Dokument darstellt.Credential
-Objekt, das die Berechtigung darstellt, die zum Zertifizieren des PDF-Dokuments verwendet wird. Erstellen Sie eine Credential
-Objekt durch Aufrufen der Credential
Statische Objektform getInstance
-Methode verwenden und einen string -Wert übergeben, der den Alias-Wert angibt, der der Sicherheitsberechtigung entspricht.HashAlgorithm
-Objekt, das ein statisches Datenelement angibt, das den Hash-Algorithmus darstellt, der zum Digest des PDF-Dokuments verwendet wird. Sie können beispielsweise HashAlgorithm.SHA1
, um den SHA1-Algorithmus zu verwenden.MDPPermissions
-Objekt, das Aktionen angibt, die für das PDF-Dokument ausgeführt werden können, das die Signatur ungültig macht.PDFSignatureAppearanceOptions
-Objekt, das das Erscheinungsbild der zertifizierten Signatur steuert. Ändern Sie bei Bedarf das Erscheinungsbild der Signatur, indem Sie eine Methode aufrufen, z. B. setShowDate
.java.lang.Boolean
-Objekt, das angibt, ob das Zertifikat des Signierers einer Sperrprüfung unterzogen werden soll. Wenn diese Sperrprüfung durchgeführt wird, wird sie in die Signatur eingebettet. Der Standardwert lautet false
.java.lang.Boolean
-Objekt, das angibt, ob das zu zertifizierende Signaturfeld gesperrt ist. Wenn das Feld gesperrt ist, wird das Signaturfeld als schreibgeschützt markiert, seine Eigenschaften können nicht geändert werden und es kann von niemandem gelöscht werden, der nicht über die erforderlichen Berechtigungen verfügt. Der Standardwert lautet false
.OCSPPreferences
-Objekt, das Voreinstellungen für die Unterstützung des Online Certificate Status Protocol (OCSP) speichert. Wenn die Sperrprüfung nicht durchgeführt wird, wird dieser Parameter nicht verwendet und Sie können null
. Weitere Informationen zu diesem Objekt finden Sie unter AEM Forms API-Referenz.CRLPreferences
-Objekt, das die Voreinstellungen für Zertifikatsperrliste (CRL) speichert. Wenn die Sperrprüfung nicht durchgeführt wird, wird dieser Parameter nicht verwendet und Sie können null
.TSPPreferences
-Objekt, das Voreinstellungen für die Unterstützung des Zeitstempelanbieters (TSP) speichert. Wenn Sie beispielsweise eine TSPPreferences
-Objekt, können Sie die URL des TSP-Servers festlegen, indem Sie die TSPPreferences
-Objekt setTspServerURL
-Methode. Dieser Parameter ist optional und kann null
. Weitere Informationen finden Sie unter Dienstreferenz für AEM Forms.Die certify
-Methode gibt eine com.adobe.idp.Document
-Objekt, das das zertifizierte PDF-Dokument darstellt.
Zertifiziertes PDF-Dokument als PDF-Datei speichern
java.io.File
-Objekt und stellen Sie sicher, dass die Dateierweiterung .pdf ist.com.adobe.idp.Document
-Objekt copyToFile
-Methode zum Kopieren des Inhalts der com.adobe.idp.Document
-Objekt in die Datei ein.Siehe auch
Schnellstart (SOAP-Modus): Zertifizieren eines PDF-Dokuments mit der Java-API
Einbeziehung von AEM Forms Java-Bibliotheksdateien
Verbindungseigenschaften festlegen
Zertifizieren Sie ein PDF-Dokument mithilfe der Signature-API (Webdienst):
Projektdateien einschließen
Erstellen Sie ein Microsoft .NET-Projekt, das MTOM verwendet. Stellen Sie sicher, dass Sie die folgende WSDL-Definition verwenden: http://localhost:8080/soap/services/SignatureService?WSDL&lc_version=9.0.1
.
Ersetzen localhost
mit der IP-Adresse des Servers, auf dem AEM Forms gehostet wird.
Erstellen eines Signatur-Clients
Erstellen Sie eine SignatureServiceClient
-Objekt mithilfe des Standardkonstruktors.
Erstellen Sie eine SignatureServiceClient.Endpoint.Address
-Objekt mithilfe der System.ServiceModel.EndpointAddress
-Konstruktor. Übergeben Sie einen string -Wert, der die WSDL an den AEM Forms-Dienst angibt (z. B. http://localhost:8080/soap/services/SignatureService?WSDL
). Sie müssen die lc_version
-Attribut. Dieses Attribut wird verwendet, wenn Sie eine Dienstreferenz erstellen.)
Erstellen Sie eine System.ServiceModel.BasicHttpBinding
-Objekt durch Abrufen des Werts der SignatureServiceClient.Endpoint.Binding
-Feld. Wandeln Sie den Rückgabewert in BasicHttpBinding
um.
Legen Sie die System.ServiceModel.BasicHttpBinding
-Objekt MessageEncoding
-Feld zu WSMessageEncoding.Mtom
. Dieser Wert stellt sicher, dass MTOM verwendet wird.
Aktivieren Sie die einfache HTTP-Authentifizierung, indem Sie die folgenden Aufgaben ausführen:
SignatureServiceClient.ClientCredentials.UserName.UserName
.SignatureServiceClient.ClientCredentials.UserName.Password
.HttpClientCredentialType.Basic
zum Feld BasicHttpBindingSecurity.Transport.ClientCredentialType
.BasicHttpSecurityMode.TransportCredentialOnly
zum Feld BasicHttpBindingSecurity.Security.Mode
.Zu zertifizierendes PDF-Dokument abrufen
BLOB
, indem Sie den Konstruktor verwenden. Die BLOB
-Objekt wird zum Speichern eines zertifizierten PDF-Dokuments verwendet.System.IO.FileStream
-Objekt, indem Sie seinen Konstruktor aufrufen und einen string -Wert übergeben, der den Dateispeicherort des zu zertifizierenden PDF-Dokuments und den Modus, in dem die Datei geöffnet werden soll, darstellt.System.IO.FileStream
-Objekt. Sie können die Größe des Byte-Arrays bestimmen, indem Sie die System.IO.FileStream
-Objekt Length
-Eigenschaft.System.IO.FileStream
-Objekt Read
-Methode verwenden und das Byte-Array, die Startposition und die zu lesende Stream-Länge übergeben.BLOB
Objekt durch Zuweisen seiner MTOM
data speichert den Inhalt des Byte-Arrays.Zertifizieren des PDF-Dokuments
Zertifizieren Sie das PDF-Dokument, indem Sie die SignatureServiceClient
-Objekt certify
-Methode verwenden und die folgenden Werte übergeben:
BLOB
-Objekt, das das zu zertifizierende PDF-Dokument darstellt.Credential
-Objekt, das die Berechtigung darstellt, die zum Zertifizieren des PDF-Dokuments verwendet wird. Erstellen Sie eine Credential
-Objekt mithilfe des -Konstruktors und geben Sie den Alias an, indem Sie dem Credential
-Objekt alias
-Eigenschaft.HashAlgorithm
-Objekt, das ein statisches Datenelement angibt, das den Hash-Algorithmus darstellt, der zum Digest des PDF-Dokuments verwendet wird. Sie können beispielsweise HashAlgorithm.SHA1
, um den SHA1-Algorithmus zu verwenden.MDPPermissions
das statische Datenelement des -Objekts, das Aktionen angibt, die für das PDF-Dokument ausgeführt werden können, das die Signatur ungültig macht.MDPPermissions
-Objekt, das als vorheriger Parameterwert übergeben wurde.PDFSignatureAppearanceOptions
-Objekt, das das Erscheinungsbild der zertifizierten Signatur steuert. Erstellen Sie ein Objekt PDFSignatureAppearanceOptions
, indem Sie den Konstruktor verwenden. Sie können das Erscheinungsbild der Signatur ändern, indem Sie eines ihrer Datenelemente festlegen.System.Boolean
-Objekt, das angibt, ob das Zertifikat des Signierers einer Sperrprüfung unterzogen werden soll. Wenn diese Sperrprüfung durchgeführt wird, wird sie in die Signatur eingebettet. Der Standardwert lautet false
.System.Boolean
-Objekt, das angibt, ob das zu zertifizierende Signaturfeld gesperrt ist. Wenn das Feld gesperrt ist, wird das Signaturfeld als schreibgeschützt markiert, seine Eigenschaften können nicht geändert werden und es kann von niemandem gelöscht werden, der nicht über die erforderlichen Berechtigungen verfügt. Der Standardwert lautet false
.System.Boolean
-Objekt, das angibt, ob das Signaturfeld gesperrt ist. Das heißt, wenn Sie true
an den vorherigen Parameter übergeben. true
auf diesen Parameter zurück.OCSPPreferences
-Objekt, das Voreinstellungen für die Unterstützung des Online Certificate Status Protocol (OCSP) speichert, das Informationen zum Status der Berechtigung bereitstellt, die zum Zertifizieren des PDF-Dokuments verwendet wird. Wenn die Sperrprüfung nicht durchgeführt wird, wird dieser Parameter nicht verwendet und Sie können null
.CRLPreferences
-Objekt, das die Voreinstellungen für Zertifikatsperrliste (CRL) speichert. Wenn die Sperrprüfung nicht durchgeführt wird, wird dieser Parameter nicht verwendet und Sie können null
.TSPPreferences
-Objekt, das Voreinstellungen für die Unterstützung des Zeitstempelanbieters (TSP) speichert. Wenn Sie beispielsweise eine TSPPreferences
-Objekt, können Sie die URL des TSP festlegen, indem Sie die TSPPreferences
-Objekt tspServerURL
Datenelement. Dieser Parameter ist optional und kann null
.Die certify
-Methode gibt eine BLOB
-Objekt, das das zertifizierte PDF-Dokument darstellt.
Zertifiziertes PDF-Dokument als PDF-Datei speichern
System.IO.FileStream
-Objekt, indem Sie seinen Konstruktor aufrufen und einen string -Wert übergeben, der den Dateispeicherort des PDF-Dokuments darstellt, das das zertifizierte PDF-Dokument enthalten wird, sowie den Modus, in dem die Datei geöffnet werden soll.BLOB
-Objekt, das von der certify
-Methode. Füllen Sie das Byte-Array, indem Sie den Wert der BLOB
-Objekt binaryData
Datenelement.System.IO.BinaryWriter
-Objekt durch Aufrufen des Konstruktors und Übergeben des System.IO.FileStream
-Objekt.System.IO.BinaryWriter
-Objekt Write
-Methode verwenden und das Byte-Array übergeben.Siehe auch
AEM Forms mithilfe von MTOM aufrufen
Aufrufen von AEM Forms mithilfe von SwaRef
Digitale Signaturen können überprüft werden, um sicherzustellen, dass ein signiertes PDF-Dokument nicht geändert wurde und die digitale Signatur gültig ist. Beim Überprüfen einer digitalen Signatur können Sie den Status der Signatur und die Eigenschaften der Signatur überprüfen, z. B. die Identität des Signierers. Bevor Sie einer digitalen Signatur vertrauen, sollten Sie sie überprüfen. Verwenden Sie beim Überprüfen einer digitalen Signatur ein PDF-Dokument, das eine digitale Signatur enthält.
Angenommen, die Identität des Signierers ist unbekannt. Wenn Sie das PDF-Dokument in Acrobat öffnen, wird in einer Warnmeldung darauf hingewiesen, dass die Identität des Unterzeichners unbekannt ist, wie in der folgenden Abbildung dargestellt.
Ebenso können Sie beim programmgesteuerten Überprüfen einer digitalen Signatur den Status der Identität des Signierers ermitteln. Wenn Sie beispielsweise die digitale Signatur in dem in der vorherigen Abbildung gezeigten Dokument überprüfen, wäre das Ergebnis, dass die Identität des Unterzeichners unbekannt ist.
Weitere Informationen zum Signature-Dienst und zum Überprüfen digitaler Signaturen finden Sie unter Dienstreferenz für AEM Forms.
Führen Sie zum Überprüfen einer digitalen Signatur die folgenden Aufgaben aus:
Projektdateien einschließen
Schließen Sie die erforderlichen Dateien in Ihr Entwicklungsprojekt ein. Wenn Sie eine Clientanwendung mit Java erstellen, schließen Sie die erforderlichen JAR-Dateien ein. Wenn Sie Webdienste verwenden, schließen Sie die Proxy-Dateien ein.
Die folgenden JAR-Dateien müssen zum Klassenpfad Ihres Projekts hinzugefügt werden:
Informationen zum Speicherort dieser JAR-Dateien finden Sie unter Einschließen von AEM Forms-Java-Bibliotheksdateien.
Erstellen eines Signatur-Clients
Bevor Sie einen Signature-Dienstvorgang programmgesteuert ausführen, erstellen Sie einen Signature-Dienstclient.
Abrufen des PDF-Dokuments mit der Signatur zur Überprüfung
Um eine Signatur zu überprüfen, die zum digitalen Signieren oder Zertifizieren eines PDF-Dokuments verwendet wird, rufen Sie ein PDF-Dokument mit einer Signatur ab.
Festlegen von PKI-Laufzeitoptionen
Legen Sie diese PKI-Laufzeitoptionen fest, die der Signature-Dienst beim Überprüfen von Signaturen in einem PDF-Dokument verwendet:
Im Rahmen der Einstellung dieser Optionen können Sie den Überprüfungszeitpunkt festlegen. Sie können beispielsweise die aktuelle Zeit (die Zeit auf dem Computer des Validators) auswählen, die angibt, die aktuelle Zeit zu verwenden. Weitere Informationen zu den verschiedenen Zeitwerten finden Sie unter VerificationTime
Auflistungswert in AEM Forms API-Referenz.
Sie können auch angeben, ob im Rahmen des Überprüfungsprozesses eine Sperrprüfung durchgeführt werden soll. Sie können beispielsweise eine Sperrprüfung durchführen, um festzustellen, ob das Zertifikat gesperrt ist. Informationen zu den Optionen für die Sperrprüfung finden Sie unter RevocationCheckStyle
Auflistungswert in AEM Forms API-Referenz.
Um eine Sperrprüfung für ein Zertifikat durchzuführen, geben Sie mithilfe eines CRLOptionSpec
-Objekt. Wenn Sie jedoch keine URL für den CRL-Server angeben, ruft der Signature-Dienst die URL vom Zertifikat ab.
Anstelle eines CRL-Servers können Sie bei der Prüfung von Sperren einen OCSP-Server (Online Certificate Status Protocol) verwenden. Normalerweise wird bei Verwendung eines OCSP-Servers im Gegensatz zu einem CRL-Server die Sperrprüfung schneller durchgeführt. (Siehe Online-Zertifikatstatusprotokoll.
Sie können die CRL- und OCSP-Serverreihenfolge festlegen, die der Signature-Dienst mithilfe von Adobe Applications and Services verwendet. Wenn beispielsweise der OCSP-Server zuerst in Adobe Applications and Services festgelegt wird, wird der OCSP-Server überprüft, gefolgt vom CRL-Server.
Wenn Sie keine Sperrprüfung durchführen, überprüft der Signature-Dienst nicht, ob das Zertifikat gesperrt ist. Das heißt, CRL- und OCSP-Serverinformationen werden ignoriert.
Sie können die im Zertifikat angegebene URL überschreiben, indem Sie eine CRLOptionSpec
und OCSPOptionSpec
-Objekt. Um beispielsweise den CRL-Server zu überschreiben, können Sie die CRLOptionSpec
-Objekt setLocalURI
-Methode.
Beim Zeitstempel wird der Zeitpunkt verfolgt, zu dem ein signiertes oder zertifiziertes Dokument geändert wurde. Nachdem ein Dokument signiert wurde, kann es von niemandem geändert werden. Die Zeitstempel helfen, die Gültigkeit eines signierten oder zertifizierten Dokuments zu erzwingen. Sie können Zeitstempeloptionen mithilfe eines TSPOptionSpec
-Objekt. Sie können beispielsweise die URL eines Zeitstempelanbieter-Servers (TSP) angeben.
Beim Schnellstart für Java- und Webdienst wird die Verifizierungszeit auf VerificationTime.CURRENT_TIME
und die Sperrprüfung auf RevocationCheckStyle.BestEffort
. Da keine CRL- oder OCSP-Serverinformationen angegeben sind, werden die Serverinformationen aus dem Zertifikat abgerufen.
Digitale Signatur überprüfen
Um eine Signatur erfolgreich zu überprüfen, geben Sie den vollqualifizierten Namen des Signaturfelds an, das die Signatur enthält, z. B. form1[0].#subform[1].SignatureField3[3]
. Bei Verwendung eines XFA-Formularfelds können Sie auch den Teilnamen des Signaturfelds verwenden: SignatureField3
.
Standardmäßig beschränkt der Signature-Dienst die Zeit, die ein Dokument nach der Validierung signiert werden kann, auf 65 Minuten. Wenn ein Benutzer versucht, eine Signatur zur aktuellen Zeit zu überprüfen, die Signaturzeit nach der aktuellen Zeit liegt und innerhalb von 65 Minuten liegt, erstellt der Signature-Dienst keinen Überprüfungsfehler.
Weitere Werte, die Sie beim Überprüfen einer Signatur benötigen, finden Sie unter AEM Forms API-Referenz.
Status der Signatur bestimmen
As part of verifying a digital signature, you can check the status of the signature.
Identität des Signierers bestimmen
Sie können die Identität des Signierers bestimmen, bei dem es sich um einen der folgenden Werte handeln kann:
Siehe auch
Digitale Signaturen mithilfe der Java-API überprüfen
Digitale Signaturen mithilfe der Webdienst-API überprüfen
Einbeziehung von AEM Forms Java-Bibliotheksdateien
Verbindungseigenschaften festlegen
Überprüfen einer digitalen Signatur mithilfe der Signature Service-API (Java):
Projektdateien einschließen
Schließen Sie Client-JAR-Dateien wie adobe-signatures-client.jar in den Klassenpfad Ihres Java-Projekts ein.
Erstellen eines Signatur-Clients
ServiceClientFactory
-" -Objekt, das Verbindungseigenschaften enthält.SignatureServiceClient
-Objekt, indem Sie seinen Konstruktor verwenden und das ServiceClientFactory
-Objekt übergeben.Abrufen des PDF-Dokuments mit der Signatur zur Überprüfung
java.io.FileInputStream
-Objekt, das das PDF-Dokument darstellt, das die Signatur enthält, die mithilfe des Konstruktors überprüft werden soll. Übergeben Sie einen string -Wert, der den Speicherort des PDF-Dokuments angibt.com.adobe.idp.Document
-Objekt, indem Sie seinen Konstruktor verwenden und das java.io.FileInputStream
-Objekt übergeben.Festlegen von PKI-Laufzeitoptionen
PKIOptions
, indem Sie den Konstruktor verwenden.PKIOptions
-Objekt setVerificationTime
-Methode und Übergeben einer VerificationTime
Auflistungswert, der die Verifizierungszeit angibt.PKIOptions
-Objekt setRevocationCheckStyle
-Methode und Übergeben einer RevocationCheckStyle
enumeration -Wert, der angibt, ob eine Sperrprüfung durchgeführt werden soll.Digitale Signatur überprüfen
Überprüfen der Signatur durch Aufrufen der SignatureServiceClient
-Objekt verify2
-Methode verwenden und die folgenden Werte übergeben:
com.adobe.idp.Document
-Objekt, das ein digital signiertes oder zertifiziertes PDF-Dokument enthält.PKIOptions
-Objekt, das PKI-Laufzeitoptionen enthält.VerifySPIOptions
-Instanz, die SPI-Informationen enthält. Sie können null
für diesen Parameter.Die verify2
-Methode gibt eine PDFSignatureVerificationInfo
-Objekt, das Informationen enthält, die zum Überprüfen der digitalen Signatur verwendet werden können.
Status der Signatur bestimmen
PDFSignatureVerificationInfo
-Objekt getStatus
-Methode. Diese Methode gibt eine SignatureStatus
-Objekt, das den Signaturstatus angibt. Wenn beispielsweise ein signiertes PDF-Dokument nicht geändert wird, gibt diese Methode SignatureStatus.DocumentSigNoChanges
.Identität des Signierers bestimmen
PDFSignatureVerificationInfo
-Objekt getSigner
-Methode. Diese Methode gibt eine IdentityInformation
-Objekt.IdentityInformation
-Objekt getStatus
-Methode zur Bestimmung der Identität des Unterzeichners. Diese Methode gibt eine IdentityStatus
Auflistungswert, der die Identität angibt. Wenn beispielsweise der Unterzeichner als vertrauenswürdig eingestuft wird, gibt diese Methode IdentityStatus.TRUSTED
.Siehe auch
Überprüfen digitaler Signaturen
Schnellstart (SOAP-Modus): Digitale Signatur mithilfe der Java-API überprüfen
Einbeziehung von AEM Forms Java-Bibliotheksdateien
Verbindungseigenschaften festlegen
Überprüfen einer digitalen Signatur mithilfe der Signature Service-API (Webdienst):
Projektdateien einschließen
Erstellen Sie ein Microsoft .NET-Projekt, das MTOM verwendet. Stellen Sie sicher, dass Sie die folgende WSDL-Definition verwenden: http://localhost:8080/soap/services/SignatureService?WSDL&lc_version=9.0.1
.
Ersetzen localhost
mit der IP-Adresse des Servers, auf dem AEM Forms gehostet wird.
Erstellen eines Signatur-Clients
Erstellen Sie eine SignatureServiceClient
-Objekt mithilfe des Standardkonstruktors.
Erstellen Sie eine SignatureServiceClient.Endpoint.Address
-Objekt mithilfe der System.ServiceModel.EndpointAddress
-Konstruktor. Übergeben Sie einen string -Wert, der die WSDL an den AEM Forms-Dienst angibt (z. B. http://localhost:8080/soap/services/SignatureService?WSDL
). Sie müssen die lc_version
-Attribut. Dieses Attribut wird verwendet, wenn Sie eine Dienstreferenz erstellen.)
Erstellen Sie eine System.ServiceModel.BasicHttpBinding
-Objekt durch Abrufen des Werts der SignatureServiceClient.Endpoint.Binding
-Feld. Wandeln Sie den Rückgabewert in BasicHttpBinding
um.
Legen Sie die System.ServiceModel.BasicHttpBinding
-Objekt MessageEncoding
-Feld zu WSMessageEncoding.Mtom
. Dieser Wert stellt sicher, dass MTOM verwendet wird.
Aktivieren Sie die einfache HTTP-Authentifizierung, indem Sie die folgenden Aufgaben ausführen:
SignatureServiceClient.ClientCredentials.UserName.UserName
.SignatureServiceClient.ClientCredentials.UserName.Password
.HttpClientCredentialType.Basic
zum Feld BasicHttpBindingSecurity.Transport.ClientCredentialType
.BasicHttpSecurityMode.TransportCredentialOnly
zum Feld BasicHttpBindingSecurity.Security.Mode
.Abrufen des PDF-Dokuments mit der Signatur zur Überprüfung
BLOB
, indem Sie den Konstruktor verwenden. Die BLOB
-Objekt wird zum Speichern eines PDF-Dokuments verwendet, das eine zu verifizierende digitale oder zertifizierte Signatur enthält.System.IO.FileStream
-Objekt durch Aufrufen seines Konstruktors. Übergeben Sie einen string -Wert, der den Dateispeicherort des signierten PDF-Dokuments und den Dateimodus darstellt, in dem die Datei geöffnet werden soll.System.IO.FileStream
-Objekt. Sie können die Größe des Byte-Arrays bestimmen, indem Sie die System.IO.FileStream
-Objekt Length
-Eigenschaft.System.IO.FileStream
-Objekt Read
-Methode. Übergeben Sie das Byte-Array, die Startposition und die zu lesende Stream-Länge.BLOB
Objekt durch Zuweisen seiner MTOM
-Eigenschaft den Inhalt des Byte-Arrays.Festlegen von PKI-Laufzeitoptionen
PKIOptions
, indem Sie den Konstruktor verwenden.PKIOptions
-Objekt verificationTime
Datenelement VerificationTime
Auflistungswert, der die Verifizierungszeit angibt.PKIOptions
-Objekt revocationCheckStyle
Datenelement RevocationCheckStyle
enumeration -Wert, der angibt, ob eine Sperrprüfung durchgeführt werden soll.Digitale Signatur überprüfen
Überprüfen der Signatur durch Aufrufen der SignatureServiceClient
-Objekt verify2
-Methode verwenden und die folgenden Werte übergeben:
BLOB
-Objekt, das ein digital signiertes oder zertifiziertes PDF-Dokument enthält.PKIOptions
-Objekt, das PKI-Laufzeitoptionen enthält.VerifySPIOptions
-Instanz, die SPI-Informationen enthält. Sie können null
für diesen Parameter.Die verify2
-Methode gibt eine PDFSignatureVerificationInfo
-Objekt, das Informationen enthält, die zum Überprüfen der digitalen Signatur verwendet werden können.
Status der Signatur bestimmen
Bestimmen Sie den Signaturstatus, indem Sie den Wert der PDFSignatureVerificationInfo
-Objekt status
Datenelement. Dieses Datenelement speichert eine SignatureStatus
-Objekt, das den Status der Signatur angibt. Wenn beispielsweise ein signiertes PDF-Dokument geändert wird, wird die status
Datenelement speichert den Wert SignatureStatus.DocumentSigNoChanges
.
Identität des Signierers bestimmen
PDFSignatureVerificationInfo
-Objekt signer
Datenelement. Dieses Mitglied gibt eine IdentityInformation
-Objekt.IdentityInformation
-Objekt status
-Datenelement zur Bestimmung der Identität des Unterzeichners. Dieses Datenelement gibt eine IdentityStatus
Auflistungswert, der die Identität angibt. Wenn beispielsweise der Unterzeichner als vertrauenswürdig eingestuft wird, gibt dieses Mitglied IdentityStatus.TRUSTED
.Siehe auch
Überprüfen digitaler Signaturen
AEM Forms mithilfe von MTOM aufrufen
Aufrufen von AEM Forms mithilfe von SwaRef
AEM Forms bietet die Möglichkeit, alle digitalen Signaturen zu überprüfen, die sich in einem PDF-Dokument befinden. Angenommen, ein PDF-Dokument enthält mehrere digitale Unterschriften als Ergebnis eines Geschäftsprozesses, der Unterschriften von mehreren Unterzeichnern erfordert. Betrachten Sie beispielsweise eine Finanztransaktion, die sowohl die Unterschrift eines Kreditsachbediensteten als auch eines Managers erfordert. Sie können die Java-API des Signature-Dienstes oder die Webdienst-API verwenden, um alle Signaturen im PDF-Dokument zu überprüfen. Beim Überprüfen mehrerer digitaler Signaturen können Sie den Status und die Eigenschaften jeder Signatur prüfen. Bevor Sie einer digitalen Signatur vertrauen, sollten Sie sie überprüfen. Es wird empfohlen, dass Sie mit der Verifizierung einer einzelnen digitalen Signatur vertraut sind.
Weitere Informationen zum Signature-Dienst und zum Überprüfen digitaler Signaturen finden Sie unter Dienstreferenz für AEM Forms.
Führen Sie die folgenden Aufgaben aus, um mehrere digitale Signaturen zu überprüfen:
Projektdateien einschließen
Schließen Sie die erforderlichen Dateien in Ihr Entwicklungsprojekt ein. Wenn Sie eine Clientanwendung mit Java erstellen, schließen Sie die erforderlichen JAR-Dateien ein. Wenn Sie Webdienste verwenden, schließen Sie die Proxy-Dateien ein.
The following JAR files must be added to your project’s classpath:
Informationen zum Speicherort dieser JAR-Dateien finden Sie unter Einschließen von AEM Forms-Java-Bibliotheksdateien.
Erstellen eines Signatur-Clients
Before you programmatically perform a Signature service operation, create a Signature service client.
Abrufen des PDF-Dokuments, das die zu überprüfenden Signaturen enthält
Um eine Signatur zu überprüfen, die zum digitalen Signieren oder Zertifizieren eines PDF-Dokuments verwendet wird, rufen Sie ein PDF-Dokument mit einer Signatur ab.
PKI-Laufzeitoptionen festlegen
Set these PKI run-time options that the Signature service uses when verifying all signatures in a PDF document:
Im Rahmen der Einstellung dieser Optionen können Sie den Überprüfungszeitpunkt festlegen. Sie können beispielsweise die aktuelle Zeit (die Zeit auf dem Computer des Validators) auswählen, die angibt, die aktuelle Zeit zu verwenden. Weitere Informationen zu den verschiedenen Zeitwerten finden Sie unter VerificationTime
Auflistungswert in AEM Forms API-Referenz.
Sie können auch angeben, ob im Rahmen des Überprüfungsprozesses eine Sperrprüfung durchgeführt werden soll. Sie können beispielsweise eine Sperrprüfung durchführen, um festzustellen, ob das Zertifikat gesperrt ist. Informationen zu den Optionen für die Sperrprüfung finden Sie unter RevocationCheckStyle
Auflistungswert in AEM Forms API-Referenz.
Um eine Sperrprüfung für ein Zertifikat durchzuführen, geben Sie mithilfe eines CRLOptionSpec
-Objekt. Wenn Sie jedoch keine URL für einen Zertifikatsperrlisten-Server angeben, ruft der Signature-Dienst die URL vom Zertifikat ab.
Anstelle eines CRL-Servers können Sie bei der Prüfung von Sperren einen OCSP-Server (Online Certificate Status Protocol) verwenden. In der Regel wird bei Verwendung eines OCSP-Servers anstelle eines CRL-Servers die Sperrprüfung schneller durchgeführt. (Siehe Online-Zertifikatstatusprotokoll.
Sie können die CRL- und OCSP-Serverreihenfolge festlegen, die der Signature-Dienst mithilfe von Adobe Applications and Services verwendet. Wenn beispielsweise der OCSP-Server zuerst in Adobe Applications and Services festgelegt wird, wird der OCSP-Server überprüft, gefolgt vom CRL-Server.
Wenn Sie keine Sperrprüfung durchführen, überprüft der Signature-Dienst nicht, ob das Zertifikat gesperrt ist. Das heißt, CRL- und OCSP-Serverinformationen werden ignoriert.
Sie können die im Zertifikat angegebene URL überschreiben, indem Sie eine CRLOptionSpec
und OCSPOptionSpec
-Objekt. Um beispielsweise den CRL-Server zu überschreiben, können Sie die CRLOptionSpec
-Objekt setLocalURI
-Methode.
Beim Zeitstempel wird der Zeitpunkt verfolgt, zu dem ein signiertes oder zertifiziertes Dokument geändert wurde. Nachdem ein Dokument signiert wurde, kann es von niemandem geändert werden. Die Zeitstempel helfen, die Gültigkeit eines signierten oder zertifizierten Dokuments zu erzwingen. Sie können Zeitstempeloptionen mithilfe eines TSPOptionSpec
-Objekt. Sie können beispielsweise die URL eines Zeitstempelanbieter-Servers (TSP) angeben.
Beim Schnellstart für Java- und Webdienst wird die Verifizierungszeit auf VerificationTime.CURRENT_TIME
und die Sperrprüfung auf RevocationCheckStyle.BestEffort
. Da keine CRL- oder OCSP-Serverinformationen angegeben sind, werden die Serverinformationen aus dem Zertifikat abgerufen.
Alle digitalen Signaturen abrufen
Rufen Sie zum Überprüfen aller digitalen Signaturen in einem PDF-Dokument die digitalen Signaturen aus dem PDF-Dokument ab. Alle Signaturen werden in einer Liste zurückgegeben. Überprüfen Sie im Rahmen der Überprüfung einer digitalen Signatur den Status der Signatur.
Im Gegensatz zur Überprüfung einer einzelnen digitalen Signatur müssen Sie bei der Überprüfung mehrerer Signaturen keinen Signaturfeldnamen angeben.
Durchsuchen aller Signaturen
Iterieren Sie durch jede Signatur. Das heißt, für jede Signatur überprüfen Sie die digitale Signatur und überprüfen Sie die Identität des Signierers und den Status jeder Signatur. (Siehe Überprüfen digitaler Signaturen.
Sie müssen nicht alle Signaturen durchlaufen, wenn die Anforderung das gesamte Dokument ist.
Siehe auch
Mehrere digitale Signaturen mithilfe der Java-API überprüfen
Mehrere digitale Signaturen mithilfe der Webdienst-API überprüfen
Einbeziehung von AEM Forms Java-Bibliotheksdateien
Verbindungseigenschaften festlegen
Überprüfen mehrerer digitaler Signaturen mithilfe der Signature Service-API (Java):
Projektdateien einschließen
Schließen Sie Client-JAR-Dateien wie adobe-signatures-client.jar in den Klassenpfad Ihres Java-Projekts ein.
Erstellen eines Signatur-Clients
ServiceClientFactory
-" -Objekt, das Verbindungseigenschaften enthält.SignatureServiceClient
-Objekt, indem Sie seinen Konstruktor verwenden und das ServiceClientFactory
-Objekt übergeben.Abrufen des PDF-Dokuments, das die zu überprüfenden Signaturen enthält
java.io.FileInputStream
-Objekt, das das PDF-Dokument darstellt, das mehrere digitale Signaturen enthält, die mithilfe seines Konstruktors überprüft werden sollen. Übergeben Sie einen string -Wert, der den Speicherort des PDF-Dokuments angibt.com.adobe.idp.Document
-Objekt, indem Sie seinen Konstruktor verwenden und das java.io.FileInputStream
-Objekt übergeben.PKI-Laufzeitoptionen festlegen
PKIOptions
, indem Sie den Konstruktor verwenden.PKIOptions
-Objekt setVerificationTime
-Methode und Übergeben einer VerificationTime
Auflistungswert, der die Verifizierungszeit angibt.PKIOptions
-Objekt setRevocationCheckStyle
-Methode und Übergeben einer RevocationCheckStyle
enumeration -Wert, der angibt, ob eine Sperrprüfung durchgeführt werden soll.Alle digitalen Signaturen abrufen
Rufen Sie die SignatureServiceClient
-Objekt verifyPDFDocument
-Methode verwenden und die folgenden Werte übergeben:
com.adobe.idp.Document
-Objekt, das ein PDF-Dokument mit mehreren digitalen Signaturen enthält.PKIOptions
-Objekt, das PKI-Laufzeitoptionen enthält.VerifySPIOptions
-Instanz, die SPI-Informationen enthält. Sie können null
für diesen Parameter.Die verifyPDFDocument
-Methode gibt eine PDFDocumentVerificationInfo
-Objekt, das Informationen zu allen digitalen Signaturen enthält, die sich im PDF-Dokument befinden.
Durchsuchen aller Signaturen
PDFDocumentVerificationInfo
-Objekt getVerificationInfos
-Methode. Diese Methode gibt eine java.util.List
Objekt, bei dem jedes Element PDFSignatureVerificationInfo
-Objekt. Verwenden Sie eine java.util.Iterator
-Objekt, das durch die Liste der Signaturen iteriert wird.PDFSignatureVerificationInfo
-Objekt können Sie Aufgaben ausführen, z. B. den Status der Signatur durch Aufrufen der PDFSignatureVerificationInfo
-Objekt getStatus
-Methode. Diese Methode gibt eine SignatureStatus
-Objekt, dessen statisches Datenelement Sie über den Status der Signatur informiert. Wenn die Signatur beispielsweise unbekannt ist, gibt diese Methode SignatureStatus.DocumentSignatureUnknown
.Siehe auch
Überprüfen mehrerer digitaler Signaturen
Schnellstart (SOAP-Modus): Überprüfen mehrerer digitaler Signaturen mit der Java-API
Einbeziehung von AEM Forms Java-Bibliotheksdateien
Überprüfen digitaler Signaturen
Verbindungseigenschaften festlegen
Überprüfen mehrerer digitaler Signaturen mithilfe der Signature Service-API (Webdienst):
Projektdateien einschließen
Erstellen Sie ein Microsoft .NET-Projekt, das MTOM verwendet. Stellen Sie sicher, dass Sie die folgende WSDL-Definition verwenden: http://localhost:8080/soap/services/SignatureService?WSDL&lc_version=9.0.1
.
Ersetzen localhost
mit der IP-Adresse des Servers, auf dem AEM Forms gehostet wird.
Erstellen eines Signatur-Clients
Erstellen Sie eine SignatureServiceClient
-Objekt mithilfe des Standardkonstruktors.
Erstellen Sie eine SignatureServiceClient.Endpoint.Address
-Objekt mithilfe der System.ServiceModel.EndpointAddress
-Konstruktor. Übergeben Sie einen string -Wert, der die WSDL an den AEM Forms-Dienst angibt (z. B. http://localhost:8080/soap/services/SignatureService?WSDL
). Sie müssen die lc_version
-Attribut. Dieses Attribut wird verwendet, wenn Sie eine Dienstreferenz erstellen.)
Erstellen Sie eine System.ServiceModel.BasicHttpBinding
-Objekt durch Abrufen des Werts der SignatureServiceClient.Endpoint.Binding
-Feld. Wandeln Sie den Rückgabewert in BasicHttpBinding
um.
Legen Sie die System.ServiceModel.BasicHttpBinding
-Objekt MessageEncoding
-Feld zu WSMessageEncoding.Mtom
. Dieser Wert stellt sicher, dass MTOM verwendet wird.
Aktivieren Sie die einfache HTTP-Authentifizierung, indem Sie die folgenden Aufgaben ausführen:
SignatureServiceClient.ClientCredentials.UserName.UserName
.SignatureServiceClient.ClientCredentials.UserName.Password
.HttpClientCredentialType.Basic
zum Feld BasicHttpBindingSecurity.Transport.ClientCredentialType
.BasicHttpSecurityMode.TransportCredentialOnly
zum Feld BasicHttpBindingSecurity.Security.Mode
.Abrufen des PDF-Dokuments, das die zu überprüfenden Signaturen enthält
BLOB
, indem Sie den Konstruktor verwenden. Die BLOB
-Objekt speichert ein PDF-Dokument, das mehrere zu verifizierende digitale Signaturen enthält.System.IO.FileStream
-Objekt durch Aufrufen seines Konstruktors. Übergeben Sie einen string -Wert, der den Dateispeicherort des PDF-Dokuments und den Modus darstellt, in dem die Datei geöffnet werden soll.System.IO.FileStream
-Objekt. Sie können die Größe des Byte-Arrays bestimmen, indem Sie die System.IO.FileStream
-Objekt Length
-Eigenschaft.System.IO.FileStream
-Objekt Read
-Methode. Übergeben Sie das Byte-Array, die Startposition und die zu lesende Stream-Länge.BLOB
Objekt durch Zuweisen seiner MTOM
-Eigenschaft den Inhalt des Byte-Arrays.PKI-Laufzeitoptionen festlegen
PKIOptions
, indem Sie den Konstruktor verwenden.PKIOptions
-Objekt verificationTime
Datenelement VerificationTime
Auflistungswert, der die Verifizierungszeit angibt.PKIOptions
-Objekt revocationCheckStyle
Datenelement RevocationCheckStyle
enumeration -Wert, der angibt, ob eine Sperrprüfung durchgeführt werden soll.Alle digitalen Signaturen abrufen
Rufen Sie die SignatureServiceClient
-Objekt verifyPDFDocument
-Methode verwenden und die folgenden Werte übergeben:
BLOB
-Objekt, das ein PDF-Dokument mit mehreren digitalen Signaturen enthält.PKIOptions
-Objekt, das PKI-Laufzeitoptionen enthält.VerifySPIOptions
-Instanz, die SPI-Informationen enthält. Sie können für diesen Parameter null angeben.Die verifyPDFDocument
-Methode gibt eine PDFDocumentVerificationInfo
-Objekt, das Informationen zu allen digitalen Signaturen enthält, die sich im PDF-Dokument befinden.
Durchsuchen aller Signaturen
PDFDocumentVerificationInfo
-Objekt verificationInfos
Datenelement. This data member returns an Object
array where each element is a PDFSignatureVerificationInfo
object.PDFSignatureVerificationInfo
object, you can perform tasks like determining the status of the signature by getting the PDFSignatureVerificationInfo
object’s status
data member. Dieses Datenelement gibt eine SignatureStatus
-Objekt, dessen statisches Datenelement Sie über den Status der Signatur informiert. Wenn die Signatur beispielsweise unbekannt ist, gibt diese Methode SignatureStatus.DocumentSignatureUnknown
.Siehe auch
Überprüfen mehrerer digitaler Signaturen
AEM Forms mithilfe von MTOM aufrufen
Invoking AEM Forms using SwaRef
Digitale Signaturen müssen aus einem Signaturfeld entfernt werden, bevor eine neuere digitale Signatur angewendet werden kann. A digital signature cannot be overwritten. If you attempt to apply a digital signature to a signature field that contains a signature, an exception occurs.
Weitere Informationen zum Signature-Dienst finden Sie unter Dienstreferenz für AEM Forms.
Führen Sie die folgenden Aufgaben aus, um eine digitale Signatur aus einem Signaturfeld zu entfernen:
Projektdateien einschließen
Fügen Sie die erforderlichen Dateien in Ihr Entwicklungsprojekt ein. Wenn Sie eine Clientanwendung mit Java erstellen, schließen Sie die erforderlichen JAR-Dateien ein. Wenn Sie Webdienste verwenden, stellen Sie sicher, dass Sie die Proxy-Dateien einschließen.
Die folgenden JAR-Dateien müssen zum Klassenpfad Ihres Projekts hinzugefügt werden:
Informationen zum Speicherort dieser JAR-Dateien finden Sie unter Einschließen von AEM Forms-Java-Bibliotheksdateien.
Erstellen eines Signatur-Clients
Bevor Sie einen Signature-Dienstvorgang programmgesteuert ausführen können, müssen Sie einen Signature-Dienstclient erstellen.
Abrufen des PDF-Dokuments, das eine Signatur zum Entfernen enthält
Um eine Signatur aus einem PDF-Dokument zu entfernen, müssen Sie ein PDF-Dokument mit einer Signatur abrufen.
Digitale Signatur aus dem Signaturfeld entfernen
Um eine digitale Signatur erfolgreich aus einem PDF-Dokument zu entfernen, müssen Sie den Namen des Signaturfelds angeben, das die digitale Signatur enthält. Außerdem müssen Sie über die Berechtigung zum Entfernen der digitalen Signatur verfügen. Andernfalls tritt eine Ausnahme auf.
PDF-Dokument als PDF-Datei speichern
Nachdem der Signature-Dienst eine digitale Signatur aus einem Signaturfeld entfernt hat, können Sie das PDF-Dokument als PDF-Datei speichern, damit Benutzer es in Acrobat oder Adobe Reader öffnen können.
Siehe auch
Digitale Signaturen mithilfe der Java-API entfernen
Digitale Signaturen mithilfe der Webdienst-API entfernen
Einbeziehung von AEM Forms Java-Bibliotheksdateien
Verbindungseigenschaften festlegen
Entfernen Sie eine digitale Signatur mithilfe der Signature-API (Java):
Projektdateien einschließen
Schließen Sie Client-JAR-Dateien wie adobe-signatures-client.jar in den Klassenpfad Ihres Java-Projekts ein.
Erstellen Sie einen Signaturclient.
ServiceClientFactory
-" -Objekt, das Verbindungseigenschaften enthält.SignatureServiceClient
-Objekt, indem Sie seinen Konstruktor verwenden und das ServiceClientFactory
-Objekt übergeben.Abrufen des PDF-Dokuments, das eine Signatur zum Entfernen enthält
java.io.FileInputStream
-Objekt, das das PDF-Dokument darstellt, das die zu entfernende Signatur enthält, indem es seinen Konstruktor verwendet und einen Zeichenfolgenwert übergibt, der den Speicherort des PDF-Dokuments angibt.com.adobe.idp.Document
-Objekt, indem Sie seinen Konstruktor verwenden und das java.io.FileInputStream
-Objekt übergeben.Digitale Signatur aus dem Signaturfeld entfernen
Entfernen Sie eine digitale Signatur aus einem Signaturfeld, indem Sie die SignatureServiceClient
-Objekt clearSignatureField
-Methode verwenden und die folgenden Werte übergeben:
com.adobe.idp.Document
-Objekt, das das PDF-Dokument darstellt, das die zu entfernende Signatur enthält.Die clearSignatureField
-Methode gibt eine com.adobe.idp.Document
-Objekt, das das PDF-Dokument darstellt, aus dem die digitale Signatur entfernt wurde.
PDF-Dokument als PDF-Datei speichern
java.io.File
-Objekt und stellen Sie sicher, dass die Dateierweiterung .pdf ist.com.adobe.idp.Document
-Objekt copyToFile
-Methode. Übergeben Sie die java.io.File
-Objekt, um den Inhalt des com.adobe.idp.Document
-Objekt in die Datei ein. Stellen Sie sicher, dass Sie das Document
-Objekt verwenden, das von der clearSignatureField
-Methode zurückgegeben wurde.Siehe auch
Entfernen digitaler Signaturen
Schnellstart (SOAP-Modus): Digitale Signatur mithilfe der Java-API entfernen
Einbeziehung von AEM Forms Java-Bibliotheksdateien
Verbindungseigenschaften festlegen
Entfernen Sie eine digitale Signatur mithilfe der Signature-API (Webdienst):
Projektdateien einschließen
Erstellen Sie ein Microsoft .NET-Projekt, das MTOM verwendet. Stellen Sie sicher, dass Sie die folgende WSDL-Definition verwenden: http://localhost:8080/soap/services/SignatureService?WSDL&lc_version=9.0.1
.
Ersetzen localhost
mit der IP-Adresse des Servers, auf dem AEM Forms gehostet wird.
Erstellen eines Signatur-Clients
Erstellen Sie eine SignatureServiceClient
-Objekt mithilfe des Standardkonstruktors.
Erstellen Sie eine SignatureServiceClient.Endpoint.Address
-Objekt mithilfe der System.ServiceModel.EndpointAddress
-Konstruktor. Übergeben Sie einen string -Wert, der die WSDL an den AEM Forms-Dienst angibt (z. B. http://localhost:8080/soap/services/SignatureService?WSDL
). Sie müssen die lc_version
-Attribut. Dieses Attribut wird verwendet, wenn Sie eine Dienstreferenz erstellen.)
Erstellen Sie eine System.ServiceModel.BasicHttpBinding
-Objekt durch Abrufen des Werts der SignatureServiceClient.Endpoint.Binding
-Feld. Wandeln Sie den Rückgabewert in BasicHttpBinding
um.
Legen Sie die System.ServiceModel.BasicHttpBinding
-Objekt MessageEncoding
-Feld zu WSMessageEncoding.Mtom
. Dieser Wert stellt sicher, dass MTOM verwendet wird.
Aktivieren Sie die einfache HTTP-Authentifizierung, indem Sie die folgenden Aufgaben ausführen:
SignatureServiceClient.ClientCredentials.UserName.UserName
.SignatureServiceClient.ClientCredentials.UserName.Password
.HttpClientCredentialType.Basic
zum Feld BasicHttpBindingSecurity.Transport.ClientCredentialType
.BasicHttpSecurityMode.TransportCredentialOnly
zum Feld BasicHttpBindingSecurity.Security.Mode
.Abrufen des PDF-Dokuments, das eine Signatur zum Entfernen enthält
BLOB
, indem Sie den Konstruktor verwenden. Die BLOB
-Objekt wird zum Speichern eines PDF-Dokuments verwendet, das eine zu entfernende digitale Signatur enthält.System.IO.FileStream
-Objekt durch Aufrufen des Konstruktors und Übergeben eines Zeichenfolgenwerts, der den Dateispeicherort des signierten PDF-Dokuments und den Dateimodus darstellt, in dem die Datei geöffnet werden soll.System.IO.FileStream
-Objekt. Sie können die Größe des Byte-Arrays bestimmen, indem Sie die System.IO.FileStream
-Objekt Length
-Eigenschaft.System.IO.FileStream
-Objekt Read
-Methode. Übergeben Sie das Byte-Array, die Startposition und die zu lesende Stream-Länge.BLOB
Objekt durch Zuweisen seiner MTOM
-Eigenschaft mit dem Inhalt des Byte-Arrays.Digitale Signatur aus dem Signaturfeld entfernen
Entfernen Sie die digitale Signatur, indem Sie die SignatureServiceClient
-Objekt clearSignatureField
-Methode verwenden und die folgenden Werte übergeben:
BLOB
-Objekt, das das signierte PDF-Dokument enthält.Die clearSignatureField
-Methode gibt eine BLOB
-Objekt, das das PDF-Dokument darstellt, aus dem die digitale Signatur entfernt wurde.
PDF-Dokument als PDF-Datei speichern
System.IO.FileStream
-Objekt, indem Sie seinen Konstruktor aufrufen und einen string -Wert übergeben, der den Dateispeicherort des PDF-Dokuments darstellt, das ein leeres Signaturfeld enthält, und den Modus, in dem die Datei geöffnet werden soll.BLOB
-Objekt, das von der sign
-Methode. Füllen Sie das Byte-Array, indem Sie den Wert der BLOB
-Objekt MTOM
Datenelement.System.IO.BinaryWriter
-Objekt durch Aufrufen des Konstruktors und Übergeben des System.IO.FileStream
-Objekt.System.IO.BinaryWriter
-Objekt Write
-Methode verwenden und das Byte-Array übergeben.Siehe auch
Entfernen digitaler Signaturen
AEM Forms mithilfe von MTOM aufrufen
Aufrufen von AEM Forms mithilfe von SwaRef