À propos du service Signature
Le service Signature permet à votre entreprise de protéger la sécurité et la confidentialité des documents Adobe PDF qu’elle diffuse et reçoit. Ce service utilise les signatures numériques et la certification pour s'assurer que seuls les destinataires prévus peuvent modifier les documents. Les fonctions de sécurité étant appliquées au document lui-même, le document reste sécurisé et contrôlé pendant toute sa durée de vie. Un document reste sécurisé au-delà du pare-feu, lorsqu’il est téléchargé hors ligne et lorsqu’il est renvoyé à votre organisation.
Vous pouvez créer un gestionnaire de signatures personnalisé pour le service Signature qui est appelé lorsque certaines opérations sont appelées, comme la signature d’un document PDF.
Noms des champs de signature
Certaines opérations du service Signature exigent que vous spécifiez le nom du champ de signature sur lequel une opération est effectuée. Par exemple, lorsque vous signez un document PDF, vous indiquez le nom du champ de signature à signer. Supposons que le nom complet d’un champ de signature soit form1[0].Form1[0].SignatureField1[0]
. Vous pouvez spécifier SignatureField1[0]
au lieu de form1[0].Form1[0].SignatureField1[0]
.
Il arrive qu’un conflit entraîne la signature du service Signature (ou l’exécution d’une autre opération nécessitant le nom du champ de signature) du champ incorrect. Ce conflit est le résultat du nom SignatureField1[0]
qui apparaît à plusieurs emplacements du même document PDF. Prenons l’exemple d’un document PDF qui contient deux champs de signature nommés form1[0].Form1[0].SignatureField1[0]
et form1[0].Form1[0].SubForm1[0].SignatureField1[0]
et vous spécifiez SignatureField1[0]
. Dans ce cas, le service Signature signe le premier champ de signature trouvé lors de l’itération sur tous les champs de signature du document.
Si plusieurs champs de signature se trouvent dans un document PDF, il est recommandé de spécifier le nom complet des champs de signature. Autrement dit, indiquez form1[0].Form1[0].SignatureField1[0]
au lieu de SignatureField1[0]
.
Vous pouvez exécuter ces tâches à l’aide du service Signature :
Pour plus d’informations sur le service Signature, voir Guide de référence des services pour AEM Forms.
Les signatures numériques apparaissent dans les champs de signature qui sont des champs de formulaire contenant une représentation graphique de la signature. Les champs de signature peuvent être visibles ou invisibles. Les signataires peuvent utiliser un champ de signature préexistant ou un champ de signature peut être ajouté par programmation. Dans les deux cas, le champ de signature doit exister avant la signature du document PDF.
Vous pouvez programmer l’ajout d’un champ de signature à l’aide de l’API Java du service Signature ou de l’API du service Web de signature. Vous pouvez ajouter plusieurs champs de signature à un document PDF ; toutefois, chaque nom de champ de signature doit être unique.
Certains types de document PDF ne permettent pas d’ajouter par programmation un champ de signature. Pour plus d’informations sur le service Signature et l’ajout de champs de signature, voir Guide de référence des services pour AEM Forms.
Pour ajouter un champ de signature à un document PDF, effectuez les tâches suivantes :
Inclure les fichiers de projet
Incluez les fichiers nécessaires dans votre projet de développement. Si vous créez une application cliente à l’aide de Java, incluez les fichiers JAR nécessaires. Si vous utilisez des services Web, veillez à inclure les fichiers proxy.
Les fichiers JAR suivants doivent être ajoutés au chemin de classe de votre projet :
Création d’un client Signature
Avant de pouvoir exécuter une opération de service Signature par programmation, vous devez créer un client de service Signature.
Obtenir un document PDF auquel un champ de signature est ajouté
Vous devez obtenir un document PDF auquel un champ de signature est ajouté.
Ajouter un champ de signature
Pour ajouter un champ de signature à un document PDF, spécifiez des valeurs de coordonnées qui identifient l’emplacement du champ de signature. (Si vous ajoutez un champ de signature invisible, ces valeurs ne sont pas requises.) En outre, vous pouvez spécifier les champs du document PDF verrouillés après l’application d’une signature au champ de signature.
Enregistrer le document PDF en tant que fichier PDF
Une fois que le service Signature a ajouté un champ de signature au document PDF, vous pouvez enregistrer le document en tant que fichier PDF afin que les utilisateurs puissent l’ouvrir dans Acrobat ou Adobe Reader.
Voir également
Inclusion des fichiers de bibliothèque Java AEM Forms
Réglage des propriétés de la connexion
Signature numérique de Documents PDF
Ajoutez un champ de signature à l’aide de l’API de signature (Java) :
Inclure les fichiers de projet
Incluez des fichiers JAR client, tels que adobe-signatures-client.jar, dans le chemin de classe de votre projet Java.
Création d’un client Signature
ServiceClientFactory
qui contient des propriétés de connexion.SignatureServiceClient
en utilisant son constructeur et en transmettant l’objet ServiceClientFactory
.Obtenir un document PDF auquel un champ de signature est ajouté
java.io.FileInputStream
représentant le document PDF auquel un champ de signature est ajouté à l’aide de son constructeur et transmettez une valeur de chaîne indiquant l’emplacement du document PDF.com.adobe.idp.Document
en utilisant son constructeur et en transmettant l’objet java.io.FileInputStream
.Ajouter un champ de signature
Créez un objet PositionRectangle
qui spécifie l’emplacement du champ de signature à l’aide de son constructeur. Dans le constructeur, spécifiez des valeurs de coordonnées.
Si vous le souhaitez, créez un objet FieldMDPOptions
qui spécifie les champs verrouillés lorsqu’une signature numérique est appliquée au champ de signature.
Ajoutez un champ de signature à un document PDF en appelant la méthode addSignatureField
de l’objet SignatureServiceClient
et en transmettant les valeurs suivantes :
com.adobe.idp
. Document
qui représente le document PDF auquel un champ de signature est ajouté.java.lang.Integer
qui représente le numéro de page auquel un champ de signature est ajouté.PositionRectangle
qui spécifie l’emplacement du champ de signature.FieldMDPOptions
qui spécifie les champs du document PDF verrouillés après l’application d’une signature numérique au champ de signature. Cette valeur de paramètre est facultative et vous pouvez transmettre null
.Objet PDFSeedValueOptions
qui spécifie diverses valeurs d’exécution. Cette valeur de paramètre est facultative et vous pouvez transmettre null
.
La méthode addSignatureField
renvoie un com.adobe.idp
. Document
qui représente un document PDF contenant un champ de signature.
Vous pouvez appeler la méthode addInvisibleSignatureField
de l’objet SignatureServiceClient
pour ajouter un champ de signature invisible.
Enregistrer le document PDF en tant que fichier PDF
java.io.File
et assurez-vous que l’extension du fichier est .pdf.com.adobe.idp
. Document
la copyToFile
méthode de l’objet pour copier le contenu de l’ Document
objet dans le fichier. Veillez à utiliser com.adobe.idp
. Document
qui a été renvoyé par la addSignatureField
méthode.Voir également
Débuts rapides de l’API du service Signature
Pour ajouter un champ de signature à l’aide de l’API de signature (service Web) :
Inclure les fichiers de projet
Créez un projet Microsoft .NET qui utilise MTOM. Assurez-vous d’utiliser la définition WSDL suivante : http://localhost:8080/soap/services/SignatureService?WSDL&lc_version=9.0.1
.
Remplacez localhost
par l’adresse IP du serveur hébergeant AEM Forms.
Création d’un client Signature
Créez un objet SignatureServiceClient
en utilisant son constructeur par défaut.
Créez un objet SignatureServiceClient.Endpoint.Address
en utilisant le constructeur System.ServiceModel.EndpointAddress
. Transmettez une valeur de chaîne qui spécifie le WSDL au service AEM Forms (par exemple, http://localhost:8080/soap/services/SignatureService?WSDL
). Vous n'avez pas besoin d'utiliser l'attribut lc_version
. Cet attribut est utilisé lorsque vous créez une référence de service.)
Créez un objet System.ServiceModel.BasicHttpBinding
en obtenant la valeur du champ SignatureServiceClient.Endpoint.Binding
. Convertissez la valeur de retour en BasicHttpBinding
.
Définissez le champ MessageEncoding
de l’objet System.ServiceModel.BasicHttpBinding
sur WSMessageEncoding.Mtom
. Cette valeur garantit l’utilisation de MTOM.
Activez l’authentification HTTP de base en exécutant les tâches suivantes :
SignatureServiceClient.ClientCredentials.UserName.UserName
.SignatureServiceClient.ClientCredentials.UserName.Password
.HttpClientCredentialType.Basic
au champ BasicHttpBindingSecurity.Transport.ClientCredentialType
.BasicHttpSecurityMode.TransportCredentialOnly
au champ BasicHttpBindingSecurity.Security.Mode
.Obtenir un document PDF auquel un champ de signature est ajouté
BLOB
en utilisant son constructeur. L’objet BLOB
permet de stocker le document PDF qui doit contenir un champ de signature.System.IO.FileStream
en appelant son constructeur et en transmettant une valeur de chaîne qui représente l’emplacement du fichier du document PDF et le mode d’ouverture du fichier.System.IO.FileStream
. Vous pouvez déterminer la taille du tableau d’octets en obtenant la propriété System.IO.FileStream
de l’objet Length
.System.IO.FileStream
de l’objet Read
et en transmettant le tableau d’octets, la position de départ et la longueur du flux à lire.BLOB
en attribuant sa propriété MTOM
au contenu du tableau d’octets.Ajouter un champ de signature
Ajoutez un champ de signature au document PDF en appelant la méthode addSignatureField
de l’objet SignatureServiceClient
et en transmettant les valeurs suivantes :
BLOB
représentant le document PDF auquel un champ de signature est ajouté.PositionRect
qui spécifie l’emplacement du champ de signature.FieldMDPOptions
qui spécifie les champs du document PDF verrouillés après l’application d’une signature numérique au champ de signature. Cette valeur de paramètre est facultative et vous pouvez transmettre null
.PDFSeedValueOptions
qui spécifie diverses valeurs d’exécution. Cette valeur de paramètre est facultative et vous pouvez transmettre null
.La méthode addSignatureField
renvoie un objet BLOB
qui représente un document PDF contenant un champ de signature.
Enregistrer le document PDF en tant que fichier PDF
System.IO.FileStream
en appelant son constructeur et en transmettant une valeur de chaîne qui représente l’emplacement du fichier du document PDF qui contiendra le champ de signature et le mode d’ouverture du fichier.BLOB
renvoyé par la méthode addSignatureField
. Renseignez le tableau d’octets en obtenant la valeur du membre de données binaryData
de l’objet BLOB
.System.IO.BinaryWriter
en appelant son constructeur et en transmettant l'objet System.IO.FileStream
.System.IO.BinaryWriter
de l’objet Write
et en transmettant le tableau d’octets.Voir également
Appel de AEM Forms à l’aide de MTOM
Appel de AEM Forms à l’aide de SwaRef
Vous pouvez récupérer les noms de tous les champs de signature d’un document PDF que vous souhaitez signer ou certifier. Si vous n’êtes pas certain de connaître les noms de champ de signature d’un document PDF ou si vous souhaitez vérifier leurs noms, vous pouvez programmer leur récupération. Le service Signature renvoie le nom qualifié complet du champ de signature, tel que form1[0].grantApplication[0].page1[0].SignatureField1[0]
.
Pour plus d’informations sur le service Signature, voir Guide de référence des services pour AEM Forms.
Pour récupérer les noms des champs de signature, effectuez les tâches suivantes :
Inclure les fichiers de projet
Incluez les fichiers nécessaires dans votre projet de développement. Si vous créez une application cliente à l’aide de Java, incluez les fichiers JAR nécessaires. Si vous utilisez des services Web, veillez à inclure les fichiers proxy.
Les fichiers JAR suivants doivent être ajoutés au chemin de classe de votre projet :
Pour plus d’informations sur l’emplacement de ces fichiers JAR, voir Inclusion de fichiers de bibliothèque Java AEM Forms.
Création d’un client Signature
Avant de pouvoir exécuter une opération de service Signature par programmation, vous devez créer un client de service Signature.
Obtention du document PDF contenant les champs de signature
Récupérez un document PDF contenant des champs de signature.
Récupérer les noms des champs de signature
Vous pouvez récupérer les noms des champs de signature après avoir récupéré un document PDF contenant un ou plusieurs champs de signature.
Voir également
Récupération des noms de champs de signature à l’aide de l’API Java
Récupérer le champ de signature à l’aide de l’API du service Web
Inclusion des fichiers de bibliothèque Java AEM Forms
Réglage des propriétés de la connexion
Ajouter des champs de signature
Récupérez les noms des champs de signature à l’aide de l’API Signature (Java) :
Inclure les fichiers de projet
Incluez des fichiers JAR client, tels que adobe-signatures-client.jar, dans le chemin de classe de votre projet Java.
Création d’un client Signature
ServiceClientFactory
qui contient des propriétés de connexion.SignatureServiceClient
en utilisant son constructeur et en transmettant l’objet ServiceClientFactory
.Obtention du document PDF contenant les champs de signature
java.io.FileInputStream
représentant le document PDF contenant des champs de signature à l’aide de son constructeur et en transmettant une valeur de chaîne indiquant l’emplacement du document PDF.com.adobe.idp.Document
en utilisant son constructeur et en transmettant l’objet java.io.FileInputStream
.Récupérer les noms des champs de signature
SignatureServiceClient
de l’objet getSignatureFieldList
et en transmettant l’objet com.adobe.idp.Document
contenant le document PDF contenant les champs de signature. Cette méthode renvoie un objet java.util.List
dans lequel chaque élément contient un objet PDFSignatureField
. Cet objet vous permet d’obtenir des informations supplémentaires sur un champ de signature, par exemple s’il est visible.java.util.List
pour déterminer s’il existe des noms de champ de signature. Pour chaque champ de signature du document PDF, vous pouvez obtenir un objet PDFSignatureField
distinct. Pour obtenir le nom du champ de signature, appelez la méthode PDFSignatureField
de l’objet getName
. Cette méthode renvoie une valeur de chaîne qui spécifie le nom du champ de signature.Voir également
Récupération des noms des champs de signature
Début rapide (mode SOAP) : Récupération des noms de champs de signature à l’aide de l’API Java
Inclusion des fichiers de bibliothèque Java AEM Forms
Réglage des propriétés de la connexion
Récupérez les noms des champs de signature à l’aide de l’API Signature (service Web) :
Inclure les fichiers de projet
Créez un projet Microsoft .NET qui utilise MTOM. Assurez-vous d’utiliser la définition WSDL suivante : http://localhost:8080/soap/services/SignatureService?WSDL&lc_version=9.0.1
.
Remplacez localhost
par l’adresse IP du serveur hébergeant AEM Forms.
Création d’un client Signature
Créez un objet SignatureServiceClient
en utilisant son constructeur par défaut.
Créez un objet SignatureServiceClient.Endpoint.Address
en utilisant le constructeur System.ServiceModel.EndpointAddress
. Transmettez une valeur de chaîne qui spécifie le WSDL au service AEM Forms (par exemple, http://localhost:8080/soap/services/SignatureService?WSDL
). Vous n'avez pas besoin d'utiliser l'attribut lc_version
. Cet attribut est utilisé lorsque vous créez une référence de service.)
Créez un objet System.ServiceModel.BasicHttpBinding
en obtenant la valeur du champ SignatureServiceClient.Endpoint.Binding
. Convertissez la valeur de retour en BasicHttpBinding
.
Définissez le champ MessageEncoding
de l’objet System.ServiceModel.BasicHttpBinding
sur WSMessageEncoding.Mtom
. Cette valeur garantit l’utilisation de MTOM.
Activez l’authentification HTTP de base en exécutant les tâches suivantes :
SignatureServiceClient.ClientCredentials.UserName.UserName
.SignatureServiceClient.ClientCredentials.UserName.Password
.HttpClientCredentialType.Basic
au champ BasicHttpBindingSecurity.Transport.ClientCredentialType
.BasicHttpSecurityMode.TransportCredentialOnly
au champ BasicHttpBindingSecurity.Security.Mode
.Obtention du document PDF contenant les champs de signature
BLOB
en utilisant son constructeur. L’objet BLOB
est utilisé pour stocker le document PDF qui contient des champs de signature.System.IO.FileStream
en appelant son constructeur et en transmettant une valeur de chaîne qui représente l’emplacement du fichier du document PDF et le mode d’ouverture du fichier.System.IO.FileStream
. Vous pouvez déterminer la taille du tableau d’octets en obtenant la propriété System.IO.FileStream
de l’objet Length
.System.IO.FileStream
de l’objet Read
et en transmettant le tableau d’octets, la position de départ et la longueur du flux à lire.BLOB
en attribuant son champ MTOM
au contenu du tableau d’octets.Récupérer les noms des champs de signature
SignatureServiceClient
de l’objet getSignatureFieldList
et en transmettant l’objet BLOB
contenant le document PDF contenant les champs de signature. Cette méthode renvoie un objet de collection MyArrayOfPDFSignatureField
où chaque élément contient un objet PDFSignatureField
.MyArrayOfPDFSignatureField
pour déterminer s’il existe des noms de champ de signature. Pour chaque champ de signature du document PDF, vous pouvez obtenir un objet PDFSignatureField
. Pour obtenir le nom du champ de signature, appelez la méthode PDFSignatureField
de l’objet getName
. Cette méthode renvoie une valeur de chaîne qui spécifie le nom du champ de signature.Voir également
Récupération des noms des champs de signature
Appel de AEM Forms à l’aide de MTOM
Appel de AEM Forms à l’aide de SwaRef
Vous pouvez modifier les champs de signature situés dans un document PDF à l’aide de l’API Java et de l’API de service Web. La modification d’un champ de signature implique de manipuler ses valeurs de dictionnaire de verrouillage des champs de signature ou ses valeurs du dictionnaire de valeur de départ.
Un dictionnaire de verrouillage de champ ** spécifie une liste de champs verrouillés lorsque le champ de signature est signé. Un champ verrouillé empêche les utilisateurs d’apporter des modifications au champ. Un dictionnaire de valeur de départ contient des informations contraignantes utilisées au moment de l’application de la signature. Par exemple, vous pouvez modifier les autorisations qui contrôlent les actions pouvant se produire sans invalider la signature.
En modifiant un champ de signature existant, vous pouvez apporter des modifications au document PDF en fonction de l’évolution des besoins de l’entreprise. Par exemple, une nouvelle exigence professionnelle peut nécessiter le verrouillage de tous les champs de document après la signature du document.
Cette section explique comment modifier un champ de signature en modifiant à la fois les valeurs du dictionnaire de verrouillage de champ et celles du dictionnaire de valeur de départ. Les modifications apportées au dictionnaire de verrouillage des champs de signature entraînent le verrouillage de tous les champs du document PDF lors de la signature d’un champ de signature. Les modifications apportées au dictionnaire des valeurs sources interdisent des types spécifiques de modifications au document.
Pour plus d’informations sur le service Signature et la modification des champs de signature, voir Guide de référence des services pour AEM Forms.
Pour modifier les champs de signature situés dans un document PDF, effectuez les tâches suivantes :
Inclure les fichiers de projet
Incluez les fichiers nécessaires dans votre projet de développement. Si vous créez une application cliente à l’aide de Java, incluez les fichiers JAR nécessaires. Si vous utilisez des services Web, veillez à inclure les fichiers proxy.
Les fichiers JAR suivants doivent être ajoutés au chemin de classe de votre projet :
Pour plus d’informations sur l’emplacement de ces fichiers JAR, voir Inclusion de fichiers de bibliothèque Java LiveCycle.
Création d’un client Signature
Avant de pouvoir exécuter une opération de service Signature par programmation, vous devez créer un client de service Signature.
Obtenir le document PDF contenant le champ de signature à modifier
Récupérez un document PDF contenant le champ de signature à modifier.
Définition des valeurs de dictionnaire
Pour modifier un champ de signature, affectez des valeurs à son dictionnaire de verrouillage de champ ou à son dictionnaire de valeur de départ. La spécification des valeurs du dictionnaire de verrouillage de champ de signature implique la spécification des champs de document PDF verrouillés lors de la signature du champ de signature. (Cette section explique comment verrouiller tous les champs.)
Vous pouvez définir les valeurs suivantes du dictionnaire des valeurs de base :
Vérification de révision : Indique si la vérification de révocation est effectuée lorsqu’une signature est appliquée au champ de signature.
Options de certificat : Attribue des valeurs au dictionnaire de valeurs de départ de certificat. Avant de spécifier des options de certificat, il est recommandé de se familiariser avec un dictionnaire de valeur de départ de certificat. (Voir Référence PDF.)
Options de résumé : Attribue des algorithmes digest utilisés pour la signature. Les valeurs valides sont SHA1, SHA256, SHA384, SHA512 et RIPEMD160.
Filtre : Indique le filtre utilisé avec le champ de signature. Par exemple, vous pouvez utiliser le filtre Adobe.PPKLite. (Voir Référence PDF.)
Options d'indicateur : Indique les valeurs d’indicateur associées à ce champ de signature. La valeur 1 signifie qu’un signataire ne doit utiliser que les valeurs spécifiées pour l’entrée. La valeur 0 signifie que d’autres valeurs sont autorisées. Voici les positions de Bit :
Attestations légales : Lorsqu’un document est certifié, il est automatiquement analysé à la recherche de types de contenu spécifiques qui peuvent rendre le contenu visible d’un document ambigu ou trompeur. Par exemple, une annotation peut masquer du texte important pour comprendre ce qui est certifié. Le processus d’analyse génère des avertissements indiquant la présence de ce type de contenu. Il fournit également une explication supplémentaire du contenu susceptible d’avoir généré des avertissements.
Autorisations : Indique les autorisations qui peuvent être utilisées sur un document PDF sans invalider la signature.
Raisons : Indique les raisons pour lesquelles ce document doit être signé.
Horodatage : Spécifie les options d’horodatage. Vous pouvez, par exemple, définir l’URL du serveur d’horodatage utilisé.
Version : Indique le numéro de version minimum du gestionnaire de signatures à utiliser pour signer le champ de signature.
Modification du champ de signature
Après avoir créé un client de service Signature, récupéré le document PDF contenant le champ de signature à modifier et défini les valeurs du dictionnaire, vous pouvez demander au service Signature de modifier le champ de signature. Le service Signature renvoie ensuite un document PDF contenant le champ de signature modifié. Le document PDF d’origine n’est pas affecté.
Enregistrer le document PDF en tant que fichier PDF
Enregistrez le document PDF contenant le champ de signature modifié au format PDF afin que les utilisateurs puissent l’ouvrir dans Acrobat ou Adobe Reader.
Voir également
Inclusion des fichiers de bibliothèque Java AEM Forms
Réglage des propriétés de la connexion
Débuts rapides de l’API du service Signature
Signature numérique de Documents PDF
Modifiez un champ de signature à l’aide de l’API de signature (Java) :
Inclure les fichiers de projet
Incluez des fichiers JAR client, tels que adobe-signatures-client.jar, dans le chemin de classe de votre projet Java.
Création d’un client Signature
ServiceClientFactory
qui contient des propriétés de connexion.SignatureServiceClient
en utilisant son constructeur et en transmettant l’objet ServiceClientFactory
.Obtenir le document PDF contenant le champ de signature à modifier
java.io.FileInputStream
qui représente le document PDF contenant le champ de signature à modifier à l’aide de son constructeur et en transmettant une valeur de chaîne indiquant l’emplacement du document PDF.com.adobe.idp.Document
en utilisant son constructeur et en transmettant l’objet java.io.FileInputStream
.Définition des valeurs de dictionnaire
PDFSignatureFieldProperties
en utilisant son constructeur. Un objet PDFSignatureFieldProperties
stocke le dictionnaire de verrouillage de champ de signature et les informations du dictionnaire de valeur de départ.PDFSeedValueOptionSpec
en utilisant son constructeur. Cet objet vous permet de définir les valeurs du dictionnaire de valeurs de départ.PDFSeedValueOptionSpec
de l’objet setMdpValue
et en transmettant la valeur de énumération MDPPermissions.NoChanges
.FieldMDPOptionSpec
en utilisant son constructeur. Cet objet vous permet de définir les valeurs du dictionnaire de verrouillage des champs de signature.FieldMDPOptionSpec
de l’objet setMdpValue
et en transmettant la valeur de énumération FieldMDPAction.ALL
.PDFSignatureFieldProperties
de l’objet setSeedValue
et en transmettant l’objet PDFSeedValueOptionSpec
.PDFSignatureFieldProperties
de l’objet setFieldMDP
et en transmettant l’objet FieldMDPOptionSpec
.Pour afficher toutes les valeurs du dictionnaire de valeurs de départ que vous pouvez définir, voir la référence de classe PDFSeedValueOptionSpec
. (Voir Référence de l’API AEM Forms.)
Modification du champ de signature
Modifiez le champ de signature en appelant la méthode modifySignatureField
de l’objet SignatureServiceClient
et en transmettant les valeurs suivantes :
com.adobe.idp.Document
qui stocke le document PDF contenant le champ de signature à modifierPDFSignatureFieldProperties
qui stocke le dictionnaire de verrou du champ de signature et les informations du dictionnaire de valeur de départLa méthode modifySignatureField
renvoie un objet com.adobe.idp.Document
qui stocke un document PDF contenant le champ de signature modifié.
Enregistrer le document PDF en tant que fichier PDF
java.io.File
et assurez-vous que l’extension de nom de fichier est .pdf.com.adobe.idp.Document
de l'objet copyToFile
pour copier le contenu de l'objet com.adobe.idp.Document
dans le fichier. Assurez-vous d’utiliser l’objet com.adobe.idp.Document
renvoyé par la méthode modifySignatureField
.Modifiez un champ de signature à l’aide de l’API de signature (service Web) :
Inclure les fichiers de projet
Créez un projet Microsoft .NET qui utilise MTOM. Assurez-vous d’utiliser la définition WSDL suivante : http://localhost:8080/soap/services/SignatureService?WSDL&lc_version=9.0.1
.
Remplacez localhost
par l’adresse IP du serveur hébergeant AEM Forms.
Création d’un client Signature
Créez un objet SignatureServiceClient
en utilisant son constructeur par défaut.
Créez un objet SignatureServiceClient.Endpoint.Address
en utilisant le constructeur System.ServiceModel.EndpointAddress
. Transmettez une valeur de chaîne qui spécifie le WSDL au service AEM Forms (par exemple, http://localhost:8080/soap/services/SignatureService?WSDL
). Vous n'avez pas besoin d'utiliser l'attribut lc_version
. Cet attribut est utilisé lorsque vous créez une référence de service.)
Créez un objet System.ServiceModel.BasicHttpBinding
en obtenant la valeur du champ SignatureServiceClient.Endpoint.Binding
. Convertissez la valeur de retour en BasicHttpBinding
.
Définissez le champ MessageEncoding
de l’objet System.ServiceModel.BasicHttpBinding
sur WSMessageEncoding.Mtom
. Cette valeur garantit l’utilisation de MTOM.
Activez l’authentification HTTP de base en exécutant les tâches suivantes :
SignatureServiceClient.ClientCredentials.UserName.UserName
.SignatureServiceClient.ClientCredentials.UserName.Password
.HttpClientCredentialType.Basic
au champ BasicHttpBindingSecurity.Transport.ClientCredentialType
.BasicHttpSecurityMode.TransportCredentialOnly
au champ BasicHttpBindingSecurity.Security.Mode
.Obtenir le document PDF contenant le champ de signature à modifier
BLOB
en utilisant son constructeur. L’objet BLOB
est utilisé pour stocker le document PDF qui contient le champ de signature à modifier.System.IO.FileStream
en appelant son constructeur et en transmettant une valeur de chaîne qui représente l’emplacement du fichier du document PDF et le mode d’ouverture du fichier.System.IO.FileStream
. Vous pouvez déterminer la taille du tableau d’octets en obtenant la propriété System.IO.FileStream
de l’objet Length
.System.IO.FileStream
de l’objet Read
et en transmettant le tableau d’octets, la position de départ et la longueur du flux à lire.BLOB
en attribuant sa propriété MTOM
au contenu du tableau d’octets.Définition des valeurs de dictionnaire
PDFSignatureFieldProperties
en utilisant son constructeur. Cet objet stocke des informations sur le dictionnaire de verrouillage de champ de signature et le dictionnaire de valeur de départ.PDFSeedValueOptionSpec
en utilisant son constructeur. Cet objet vous permet de définir les valeurs du dictionnaire de valeurs de départ.MDPPermissions.NoChanges
au membre de données PDFSeedValueOptionSpec
de l’objet mdpValue
.FieldMDPOptionSpec
en utilisant son constructeur. Cet objet vous permet de définir les valeurs du dictionnaire de verrouillage des champs de signature.FieldMDPAction.ALL
au membre de données FieldMDPOptionSpec
de l’objet mdpValue
.PDFSeedValueOptionSpec
au membre de données PDFSignatureFieldProperties
de l'objet seedValue
.FieldMDPOptionSpec
au membre de données PDFSignatureFieldProperties
de l'objet fieldMDP
.Pour afficher toutes les valeurs du dictionnaire de valeurs de départ que vous pouvez définir, voir la référence de classe PDFSeedValueOptionSpec
. (Voir Référence de l’API AEM Forms).
Modification du champ de signature
Modifiez le champ de signature en appelant la méthode modifySignatureField
de l’objet SignatureServiceClient
et en transmettant les valeurs suivantes :
BLOB
qui stocke le document PDF contenant le champ de signature à modifierPDFSignatureFieldProperties
qui stocke le dictionnaire de verrou du champ de signature et les informations du dictionnaire de valeur de départLa méthode modifySignatureField
renvoie un objet BLOB
qui stocke un document PDF contenant le champ de signature modifié.
Enregistrer le document PDF en tant que fichier PDF
System.IO.FileStream
en appelant son constructeur et en transmettant une valeur de chaîne qui représente l’emplacement du fichier du document PDF qui contiendra le champ de signature et le mode d’ouverture du fichier.BLOB
renvoyé par la méthode addSignatureField
. Renseignez le tableau d’octets en obtenant la valeur du membre de données MTOM
de l’objet BLOB
.System.IO.BinaryWriter
en appelant son constructeur et en transmettant l'objet System.IO.FileStream
.System.IO.BinaryWriter
de l’objet Write
et en transmettant le tableau d’octets.Voir également
Appel de AEM Forms à l’aide de MTOM
Appel de AEM Forms à l’aide de SwaRef
Les signatures numériques peuvent être appliquées aux documents PDF pour fournir un niveau de sécurité. Les signatures numériques, tout comme les signatures manuscrites, permettent aux signataires de s’identifier et d’effectuer des instructions sur le document. La technologie utilisée pour signer numériquement des documents permet de s’assurer que le signataire et les destinataires se sont accordés sur ce qui a été signé et croient en la non-altération du document signé.
Les documents PDF sont signés au moyen de la technologie de clé publique. Le signataire a deux clés : une clé publique et une clé privée. La clé privée est stockée dans les informations d’identification d’un utilisateur qui doivent être disponibles au moment de la signature. La clé publique est stockée dans le certificat de l’utilisateur et doit être accessible aux destinataires pour valider la signature. Les informations relatives aux certificats révoqués se trouvent dans les listes de révocation des certificats et les réponses OCSP (Online Certificate Status Protocol) distribuées par les autorités de certification (CA). L’heure de la signature peut être obtenue d’une source approuvée appelée Autorité de d’horodatage.
Avant de signer numériquement un document PDF, vous devez vous assurer d’ajouter le certificat à AEM Forms. Un certificat est ajouté à l’aide d’Administration Console ou par programmation à l’aide de l’API Trust Manager. (Voir Importation des informations d’identification à l’aide de l’API Trust Manager.)
Vous pouvez signer numériquement des documents PDF par programmation. Lors de la signature numérique d’un document PDF, vous devez référencer les informations d’identification de sécurité qui existent dans AEM Forms. Les informations d’identification sont la clé privée utilisée pour la signature.
Le service Signature effectue les étapes suivantes lorsqu’un document PDF est signé :
Pour plus d’informations sur la gestion des informations d’identification de sécurité, voir le guide* Installation et déploiement d’AEM Forms* correspondant à votre serveur d’applications.
Il existe des différences entre les documents de signature et de certification. (Voir Certification de Documents PDF.)
Tous les documents PDF ne prennent pas en charge la signature. Pour plus d’informations sur le service Signature et les documents de signature numérique, voir Guide de référence des services pour AEM Forms.
Le service Signature ne prend pas en charge les fichiers XDP contenant des données PDF incorporées en entrée pour une opération, telle que la certification d’un document. Cette action entraîne le déclenchement par le service Signature d’un PDFOperationException
. Pour résoudre ce problème, convertissez le fichier XDP en fichier PDF à l’aide du service PDF Utilities, puis transmettez le fichier PDF converti en opération de service Signature. (Voir Utilisation des utilitaires PDF.)
Informations d’identification nCipher nShield HSM
Lors de l’utilisation d’informations d’identification HSM nCipher pour signer ou certifier un document PDF, les nouvelles informations d’identification ne peuvent pas être utilisées tant que le serveur d’applications J2EE sur lequel AEM Forms est déployé n’est pas redémarré. Cependant, vous pouvez définir une valeur de configuration, ce qui signifie que l’opération de signature ou de certification fonctionne sans redémarrer le serveur d’applications J2EE.
Vous pouvez ajouter la valeur de configuration suivante dans le fichier cknfastrc, qui se trouve dans /opt/nfast/cknfastrc (ou c:\nfast\cknfastrc) :
CKNFAST_ASSUME_SINGLE_PROCESS=0
Après avoir ajouté cette valeur de configuration au fichier cknfastrc, vous pouvez utiliser les nouvelles informations d’identification sans redémarrer le serveur d’applications J2EE.
Signature non approuvée
Lors de la certification et de la signature du même document PDF, si la signature de certification n’est pas approuvée, un triangle jaune apparaît par rapport à la première signature lors de l’ouverture du document PDF dans Acrobat ou Adobe Reader. La signature de certification doit être approuvée pour éviter cette situation.
Signature de documents basés sur XFA
Si vous tentez de signer un formulaire XFA à l’aide de l’API du service Signature, il se peut que les données soient absentes de View
Signed
Version
situé à Acrobat. Prenons l’exemple du processus suivant :
Pour signer numériquement un document PDF, effectuez les tâches suivantes :
Inclure les fichiers de projet
Incluez les fichiers nécessaires dans votre projet de développement. Si vous créez une application cliente à l’aide de Java, incluez les fichiers JAR nécessaires. Si vous utilisez des services Web, veillez à inclure les fichiers proxy.
Les fichiers JAR suivants doivent être ajoutés au chemin de classe de votre projet :
Créer un client Signatures
Avant de pouvoir exécuter une opération de service Signature par programmation, vous devez créer un client de service Signature.
Obtenir le document PDF à signer
Pour signer un document PDF, vous devez obtenir un document PDF contenant un champ de signature. Si un document PDF ne contient pas de champ de signature, il ne peut pas être signé. Un champ de signature peut être ajouté à l’aide de Designer ou par programmation.
Signature du document PDF
Lors de la signature d’un document PDF, vous pouvez définir les options d’exécution utilisées par le service Signature. Vous pouvez configurer les options suivantes :
Vous définissez les options d'apparence en utilisant un objet PDFSignatureAppearanceOptionSpec
. Par exemple, vous pouvez afficher la date dans une signature en appelant la méthode PDFSignatureAppearanceOptionSpec
de l’objet setShowDate
et en transmettant true
.
Vous pouvez également indiquer si une vérification de révocation doit être effectuée afin de déterminer si le certificat utilisé pour signer numériquement un document PDF a été révoqué. Pour effectuer une vérification de révocation, vous pouvez spécifier l’une des valeurs suivantes :
Pour effectuer une vérification de révocation sur un certificat, vous pouvez spécifier une URL vers un serveur CRL (Certificate Revocation liste) à l’aide d’un objet CRLOptionSpec
. Cependant, si vous souhaitez effectuer une vérification de révocation et que vous ne spécifiez pas d’URL vers un serveur CRL, le service Signature obtient l’URL à partir du certificat.
Au lieu d’utiliser un serveur CRL, vous pouvez utiliser un serveur OCSP (Online Certificate Status Protocol) lors de la vérification de révocation. En règle générale, lorsque vous utilisez un serveur OCSP plutôt qu’un serveur CRL, la vérification de révocation est effectuée plus rapidement. (Voir "Protocole d'état du certificat en ligne" à l'adresse https://tools.ietf.org/html/rfc2560.)
Vous pouvez définir l’ordre de CRL et de serveur OCSP que le service Signature utilise à l’aide d’Adobe Applications and Services. Par exemple, si le serveur OCSP est défini en premier dans Adobe Applications and Services, le serveur OCSP est coché, suivi du serveur CRL. (voir "Gestion des certificats et des informations d’identification à l’aide de Trust Store" dans l’aide AAC).
Si vous indiquez de ne pas effectuer la vérification de révocation, le service Signature ne vérifie pas si le certificat utilisé pour signer ou certifier un document a été révoqué. En d’autres termes, les informations de CRL et de serveur OCSP sont ignorées.
Bien qu’une liste de révocation des certificats ou un serveur OCSP puisse être spécifié dans le certificat, vous pouvez remplacer l’URL spécifiée dans le certificat en utilisant un objet CRLOptionSpec
et un objet OCSPOptionSpec
. Par exemple, pour remplacer le serveur CRL, vous pouvez appeler la méthode CRLOptionSpec
de l’objet setLocalURI
.
L’horodatage fait référence au processus de suivi de l’heure de modification d’un document signé ou certifié. Une fois un document signé, il ne doit pas être modifié, même par le propriétaire du document. L’horodatage permet de garantir la validité d’un document signé ou certifié. Vous pouvez définir des options d’horodatage à l’aide d’un objet TSPOptionSpec
. Vous pouvez, par exemple, spécifier l’URL d’un serveur TSP (Time Timping provider).
Dans les sections Java et Web Service et les débuts rapides correspondants, la vérification de révocation est utilisée. Comme aucune liste de révocation des certificats ou aucune information sur le serveur OCSP n’est spécifiée, les informations sur le serveur sont obtenues à partir du certificat utilisé pour signer numériquement le document PDF.
Pour signer un document PDF, vous pouvez spécifier le nom complet du champ de signature qui contiendra la signature numérique, tel que form1[0].#subform[1].SignatureField3[3]
. Lors de l’utilisation d’un champ de formulaire XFA, le nom partiel du champ de signature peut également être utilisé : SignatureField3[3]
.
Vous devez également référencer des informations d’identification de sécurité pour signer numériquement un document PDF. Pour référencer des informations d’identification de sécurité, vous spécifiez un alias. L’alias est une référence à des informations d’identification réelles qui peuvent se trouver dans un fichier PKCS#12 (avec une extension .pfx) ou un module de sécurité matérielle (HSM). Pour plus d’informations sur les informations d’identification de sécurité, voir le guide* Installation et déploiement d’AEM Forms* correspondant à votre serveur d’applications.
Enregistrer le document PDF signé
Une fois que le service Signature a signé numériquement le document PDF, vous pouvez l’enregistrer en tant que fichier PDF afin que les utilisateurs puissent l’ouvrir dans Acrobat ou Adobe Reader.
Voir également
Signature numérique de documents PDF à l’aide de l’API Java
Signature numérique de documents PDF à l’aide de l’API du service Web
Inclusion des fichiers de bibliothèque Java AEM Forms
Réglage des propriétés de la connexion
Ajouter des champs de signature
Récupération des noms des champs de signature
Signer numériquement un document PDF à l’aide de l’API de signature (Java) :
Inclure les fichiers de projet
Incluez des fichiers JAR client, tels que adobe-signatures-client.jar, dans le chemin de classe de votre projet Java.
Créer un client Signatures
ServiceClientFactory
qui contient des propriétés de connexion.SignatureServiceClient
en utilisant son constructeur et en transmettant l’objet ServiceClientFactory
.Obtenir le document PDF à signer
java.io.FileInputStream
représentant le document PDF à signer numériquement à l’aide de son constructeur et transmettez une valeur de chaîne indiquant l’emplacement du document PDF.com.adobe.idp.Document
en utilisant son constructeur et en transmettant l’objet java.io.FileInputStream
.Signature du document PDF
Signez le document PDF en appelant la méthode sign
de l’objet SignatureServiceClient
et en transmettant les valeurs suivantes :
com.adobe.idp.Document
représentant le document PDF à signer.Credential
représentant les informations d’identification utilisées pour signer numériquement le document PDF. Créez un objet Credential
en appelant la méthode statique Credential
de l'objet getInstance
et en transmettant une valeur de chaîne qui spécifie la valeur d'alias correspondant aux informations d'identification de sécurité.HashAlgorithm
qui spécifie un membre de données statique qui représente l’algorithme de hachage à utiliser pour digérer le document PDF. Par exemple, vous pouvez spécifier HashAlgorithm.SHA1
pour utiliser l’algorithme SHA1.PDFSignatureAppearanceOptions
qui contrôle l’aspect de la signature numérique. Par exemple, vous pouvez utiliser cet objet pour ajouter un logo personnalisé à une signature numérique.java.lang.Boolean
qui spécifie s’il faut effectuer une vérification de révocation sur le certificat du signataire.OCSPOptionSpec
qui stocke les préférences pour la prise en charge du protocole OCSP (Online Certificate Status Protocol). Si la vérification de révocation n’est pas effectuée, ce paramètre n’est pas utilisé et vous pouvez spécifier null
.CRLPreferences
qui stocke les préférences de liste de révocation des certificats (CRL). Si la vérification de révocation n’est pas effectuée, ce paramètre n’est pas utilisé et vous pouvez spécifier null
.TSPPreferences
qui stocke les préférences pour la prise en charge du fournisseur d’horodatage (TSP). Ce paramètre est facultatif et peut être null
. Pour plus d’informations, voir Référence de l’API AEM Forms.La méthode sign
renvoie un objet com.adobe.idp.Document
qui représente le document PDF signé.
Enregistrer le document PDF signé
java.io.File
et assurez-vous que l’extension du fichier est .pdf.com.adobe.idp.Document
de l'objet copyToFile
et transmettez java.io.File
pour copier le contenu de l'objet Document
dans le fichier. Assurez-vous d’utiliser l’objet com.adobe.idp.Document
qui a été retourné par la méthode sign
.Voir également
Signature numérique de Documents PDF
Début rapide (mode SOAP) : Signature numérique d’un document PDF à l’aide de l’API Java
Inclusion des fichiers de bibliothèque Java AEM Forms
Réglage des propriétés de la connexion
Pour signer numériquement un document PDF à l’aide de l’API de signature (service Web) :
Inclure les fichiers de projet
Créez un projet Microsoft .NET qui utilise MTOM. Assurez-vous d’utiliser la définition WSDL suivante : http://localhost:8080/soap/services/SignatureService?WSDL&lc_version=9.0.1
.
Remplacez localhost
par l’adresse IP du serveur hébergeant AEM Forms.
Créer un client Signatures
Créez un objet SignatureServiceClient
en utilisant son constructeur par défaut.
Créez un objet SignatureServiceClient.Endpoint.Address
en utilisant le constructeur System.ServiceModel.EndpointAddress
. Transmettez une valeur de chaîne qui spécifie le WSDL au service AEM Forms (par exemple, http://localhost:8080/soap/services/SignatureService?WSDL
). Vous n'avez pas besoin d'utiliser l'attribut lc_version
. Cet attribut est utilisé lorsque vous créez une référence de service.)
Créez un objet System.ServiceModel.BasicHttpBinding
en obtenant la valeur du champ SignatureServiceClient.Endpoint.Binding
. Convertissez la valeur de retour en BasicHttpBinding
.
Définissez le champ MessageEncoding
de l’objet System.ServiceModel.BasicHttpBinding
sur WSMessageEncoding.Mtom
. Cette valeur garantit l’utilisation de MTOM.
Activez l’authentification HTTP de base en exécutant les tâches suivantes :
SignatureServiceClient.ClientCredentials.UserName.UserName
.SignatureServiceClient.ClientCredentials.UserName.Password
.HttpClientCredentialType.Basic
au champ BasicHttpBindingSecurity.Transport.ClientCredentialType
.BasicHttpSecurityMode.TransportCredentialOnly
au champ BasicHttpBindingSecurity.Security.Mode
.Obtenir le document PDF à signer
BLOB
en utilisant son constructeur. L’objet BLOB
permet de stocker un document PDF signé.System.IO.FileStream
en appelant son constructeur et en transmettant une valeur de chaîne qui représente l’emplacement de fichier du document PDF à signer, ainsi que le mode d’ouverture du fichier.System.IO.FileStream
. Vous pouvez déterminer la taille du tableau d’octets en obtenant la propriété System.IO.FileStream
de l’objet Length
.System.IO.FileStream
de l’objet Read
et en transmettant le tableau d’octets, la position de départ et la longueur du flux à lire.BLOB
en attribuant sa propriété MTOM
au contenu du tableau d’octets.Signature du document PDF
Signez le document PDF en appelant la méthode sign
de l’objet SignatureServiceClient
et en transmettant les valeurs suivantes :
BLOB
représentant le document PDF à signer.Credential
représentant les informations d’identification utilisées pour signer numériquement le document PDF. Créez un objet Credential
en utilisant son constructeur et spécifiez l'alias en attribuant une valeur à la propriété alias
de l'objet Credential
.HashAlgorithm
qui spécifie un membre de données statique qui représente l’algorithme de hachage à utiliser pour digérer le document PDF. Par exemple, vous pouvez spécifier HashAlgorithm.SHA1
pour utiliser l’algorithme SHA1.PDFSignatureAppearanceOptions
qui contrôle l’aspect de la signature numérique. Par exemple, vous pouvez utiliser cet objet pour ajouter un logo personnalisé à une signature numérique.System.Boolean
qui spécifie s’il faut effectuer une vérification de révocation sur le certificat du signataire. Si cette vérification de révocation est effectuée, elle est incorporée dans la signature. La valeur par défaut est de false
.OCSPOptionSpec
qui stocke les préférences pour la prise en charge du protocole OCSP (Online Certificate Status Protocol). Si la vérification de révocation n’est pas effectuée, ce paramètre n’est pas utilisé et vous pouvez spécifier null
. Pour plus d’informations sur cet objet, voir Référence de l’API AEM Forms.CRLPreferences
qui stocke les préférences de liste de révocation des certificats (CRL). Si la vérification de révocation n’est pas effectuée, ce paramètre n’est pas utilisé et vous pouvez spécifier null
.TSPPreferences
qui stocke les préférences pour la prise en charge du fournisseur d’horodatage (TSP). Ce paramètre est facultatif et peut être null
.La méthode sign
renvoie un objet BLOB
qui représente le document PDF signé.
Enregistrer le document PDF signé
System.IO.FileStream
en appelant son constructeur. Transmettez une valeur de chaîne qui représente l’emplacement du fichier du document PDF signé et le mode d’ouverture du fichier.BLOB
renvoyé par la méthode sign
. Renseignez le tableau d’octets en obtenant la valeur du membre de données MTOM
de l’objet BLOB
.System.IO.BinaryWriter
en appelant son constructeur et en transmettant l'objet System.IO.FileStream
.System.IO.BinaryWriter
de l’objet Write
et en transmettant le tableau d’octets.Voir également
Signature numérique de Documents PDF
Appel de AEM Forms à l’aide de MTOM
Appel de AEM Forms à l’aide de SwaRef
Vous pouvez signer un formulaire interactif que le service Forms crée. Prenons l’exemple du processus suivant :
Il en résulte un formulaire PDF interactif signé numériquement. Lors de la signature d’un formulaire PDF basé sur un formulaire XFA, veillez à enregistrer le fichier PDF en tant que formulaire PDF statique Adobe. Si vous tentez de signer un formulaire PDF enregistré en tant que formulaire PDF dynamique Adobe, une exception se produit. Etant donné que vous signez le formulaire renvoyé par le service Forms, veillez à ce qu’il contienne un champ de signature.
Avant de pouvoir signer numériquement un formulaire interactif, vous devez vous assurer d’ajouter le certificat à AEM Forms. Un certificat est ajouté à l’aide d’Administration Console ou par programmation à l’aide de l’API Trust Manager. (Voir Importation des informations d’identification à l’aide de l’API Trust Manager.)
Lors de l’utilisation de l’API Forms Service, définissez l’option d’exécution GenerateServerAppearance
sur true
. Cette option d’exécution garantit que l’aspect du formulaire généré sur le serveur reste valide lors de son ouverture dans Acrobat ou Adobe Reader. Il est recommandé de définir cette option d’exécution lors de la génération d’un formulaire interactif à signer à l’aide de l’API Forms.
Avant de lire Digital Signing Interactive Forms, il est recommandé de se familiariser avec la signature de documents PDF. (Voir Signature numérique de Documents PDF.)
Pour signer numériquement un formulaire interactif renvoyé par le service Forms, effectuez les tâches suivantes :
Inclure les fichiers de projet
Incluez les fichiers nécessaires dans votre projet de développement. Si vous créez une application cliente à l’aide de Java, incluez les fichiers JAR nécessaires. Si vous utilisez des services Web, veillez à inclure les fichiers proxy.
Les fichiers JAR suivants doivent être ajoutés au chemin de classe de votre projet :
Pour plus d’informations sur l’emplacement de ces fichiers JAR, voir Inclusion de fichiers de bibliothèque Java AEM Forms.
Création d’un client Forms and Signatures
Dans la mesure où ce flux de travail appelle les services Forms et Signature, créez un client de service Forms et un client de service Signature.
Obtention du formulaire interactif à l’aide du service Forms
Vous pouvez utiliser le service Forms pour obtenir le formulaire PDF interactif à signer. Depuis AEM Forms, vous pouvez transmettre un objet com.adobe.idp.Document
au service Forms qui contient le formulaire à rendre. Le nom de cette méthode est renderPDFForm2
. Cette méthode renvoie un objet com.adobe.idp.Document
contenant le formulaire à signer. Vous pouvez transmettre cette instance com.adobe.idp.Document
au service Signature.
De même, si vous utilisez des services Web, vous pouvez transmettre l’instance BLOB
que le service Forms renvoie au service Signature.
Le début rapide associé à la section Digital Signing Interactive Forms appelle la méthode renderPDFForm2
.
Signature du formulaire interactif
Lors de la signature d’un document PDF, vous pouvez définir les options d’exécution utilisées par le service Signature. Vous pouvez configurer les options suivantes :
Vous définissez les options d'apparence en utilisant un objet PDFSignatureAppearanceOptionSpec
. Par exemple, vous pouvez afficher la date dans une signature en appelant la méthode PDFSignatureAppearanceOptionSpec
de l’objet setShowDate
et en transmettant true
.
Enregistrer le document PDF signé
Une fois que le service Signature a signé numériquement le document PDF, vous pouvez l’enregistrer au format PDF. Le fichier PDF peut être ouvert en Acrobat ou en Adobe Reader.
Voir également
Signature numérique d’un formulaire interactif à l’aide de l’API Java
Signature numérique d’un formulaire interactif à l’aide de l’API du service Web
Inclusion des fichiers de bibliothèque Java AEM Forms
Réglage des propriétés de la connexion
Signature numérique de Documents PDF
Rendu des PDF forms interactifs
Signer numériquement un formulaire interactif à l’aide de l’API Forms and Signature (Java) :
Inclure les fichiers de projet
Incluez des fichiers JAR client, tels que adobe-signatures-client.jar et adobe-forms-client.jar, dans le chemin de classe de votre projet Java.
Création d’un client Forms and Signatures
ServiceClientFactory
qui contient des propriétés de connexion.SignatureServiceClient
en utilisant son constructeur et en transmettant l’objet ServiceClientFactory
.FormsServiceClient
en utilisant son constructeur et en transmettant l’objet ServiceClientFactory
.Obtention du formulaire interactif à l’aide du service Forms
Créez un objet java.io.FileInputStream
qui représente le document PDF à transmettre au service Forms à l’aide de son constructeur. Transmettez une valeur de chaîne qui spécifie l’emplacement du document PDF.
Créez un objet com.adobe.idp.Document
en utilisant son constructeur et en transmettant l’objet java.io.FileInputStream
.
Créez un objet java.io.FileInputStream
qui représente le document XML contenant des données de formulaire à transmettre au service Forms à l’aide de son constructeur. Transmettez une valeur de chaîne qui spécifie l’emplacement du fichier XML.
Créez un objet com.adobe.idp.Document
en utilisant son constructeur et en transmettant l’objet java.io.FileInputStream
.
Créez un objet PDFFormRenderSpec
utilisé pour définir les options d’exécution. Appelez la méthode PDFFormRenderSpec
de l’objet setGenerateServerAppearance
et transmettez true
.
Appelez la méthode renderPDFForm2
de l’objet FormsServiceClient
et transmettez les valeurs suivantes :
com.adobe.idp.Document
contenant le formulaire PDF à générer.com.adobe.idp.Document
contenant les données à fusionner avec le formulaire.PDFFormRenderSpec
qui stocke les options d’exécution.URLSpec
contenant des valeurs URI requises par le service Forms. Vous pouvez spécifier null
pour cette valeur de paramètre.java.util.HashMap
qui stocke les pièces jointes. Il s’agit d’un paramètre facultatif et vous pouvez spécifier null
si vous ne souhaitez pas joindre de fichiers au formulaire.La méthode renderPDFForm2
renvoie un objet FormsResult
contenant un flux de données de formulaire.
Récupérez le formulaire PDF en appelant la méthode FormsResult
de l’objet getOutputContent
. Cette méthode renvoie un objet com.adobe.idp.Document
qui représente le formulaire interactif.
Signature du formulaire interactif
Signez le document PDF en appelant la méthode sign
de l’objet SignatureServiceClient
et en transmettant les valeurs suivantes :
com.adobe.idp.Document
représentant le document PDF à signer. Assurez-vous que cet objet est l'objet com.adobe.idp.Document
obtenu à partir du service Forms.Credential
représentant les informations d’identification utilisées pour signer numériquement le document PDF. Créez un objet Credential
en appelant la méthode statique Credential
de l'objet getInstance
. Transmettez une valeur de chaîne qui spécifie la valeur d’alias qui correspond aux informations d’identification de sécurité.HashAlgorithm
qui spécifie un membre de données statique qui représente l’algorithme de hachage à utiliser pour digérer le document PDF. Par exemple, vous pouvez spécifier HashAlgorithm.SHA1
pour utiliser l’algorithme SHA1.PDFSignatureAppearanceOptions
qui contrôle l’aspect de la signature numérique. Par exemple, vous pouvez utiliser cet objet pour ajouter un logo personnalisé à une signature numérique.java.lang.Boolean
qui spécifie s’il faut effectuer une vérification de révocation sur le certificat du signataire.OCSPPreferences
qui stocke les préférences pour la prise en charge du protocole OCSP (Online Certificate Status Protocol). Si la vérification de révocation n’est pas effectuée, ce paramètre n’est pas utilisé et vous pouvez spécifier null
.CRLPreferences
qui stocke les préférences de liste de révocation des certificats (CRL). Si la vérification de révocation n’est pas effectuée, ce paramètre n’est pas utilisé et vous pouvez spécifier null
.TSPPreferences
qui stocke les préférences pour la prise en charge du fournisseur d’horodatage (TSP). Ce paramètre est facultatif et peut être null
.La méthode sign
renvoie un objet com.adobe.idp.Document
qui représente le document PDF signé.
Enregistrer le document PDF signé
java.io.File
et assurez-vous que l’extension de nom de fichier est .pdf.com.adobe.idp.Document
de l'objet copyToFile
et transmettez java.io.File
pour copier le contenu de l'objet Document
dans le fichier. Assurez-vous d’utiliser l’objet com.adobe.idp.Document
renvoyé par la méthode sign
.Voir également
Signature numérique d’un Forms interactif
Début rapide (mode SOAP) : Signature numérique d’un document PDF à l’aide de l’API Java
Inclusion des fichiers de bibliothèque Java AEM Forms
Réglage des propriétés de la connexion
Signer numériquement un formulaire interactif à l’aide de l’API Forms and Signature (service Web) :
Inclure les fichiers de projet
Créez un projet Microsoft .NET qui utilise MTOM. Dans la mesure où cette application cliente appelle deux services AEM Forms, créez deux références de service. Utilisez la définition WSDL suivante pour la référence de service associée au service Signature : http://localhost:8080/soap/services/SignatureService?WSDL&lc_version=9.0.1
.
Utilisez la définition WSDL suivante pour la référence de service associée au service Forms : http://localhost:8080/soap/services/FormsService?WSDL&lc_version=9.0.1
.
Le type de données BLOB
étant commun aux deux références de service, qualifiez pleinement le type de données BLOB
lors de son utilisation. Dans le début rapide du service Web correspondant, toutes les instances BLOB
sont pleinement qualifiées.
Remplacez localhost
par l’adresse IP du serveur hébergeant AEM Forms.
Création d’un client Forms and Signatures
Créez un objet SignatureServiceClient
en utilisant son constructeur par défaut.
Créez un objet SignatureServiceClient.Endpoint.Address
en utilisant le constructeur System.ServiceModel.EndpointAddress
. Transmettez une valeur de chaîne qui spécifie le WSDL au service AEM Forms (par exemple, http://localhost:8080/soap/services/SignatureService?WSDL
). Vous n'avez pas besoin d'utiliser l'attribut lc_version
. Cet attribut est utilisé lorsque vous créez une référence de service.)
Créez un objet System.ServiceModel.BasicHttpBinding
en obtenant la valeur du champ SignatureServiceClient.Endpoint.Binding
. Convertissez la valeur de retour en BasicHttpBinding
.
Définissez le champ MessageEncoding
de l’objet System.ServiceModel.BasicHttpBinding
sur WSMessageEncoding.Mtom
. Cette valeur garantit l’utilisation de MTOM.
Activez l’authentification HTTP de base en exécutant les tâches suivantes :
SignatureServiceClient.ClientCredentials.UserName.UserName
.SignatureServiceClient.ClientCredentials.UserName.Password
.HttpClientCredentialType.Basic
au champ BasicHttpBindingSecurity.Transport.ClientCredentialType
.Affectez la valeur constante BasicHttpSecurityMode.TransportCredentialOnly
au champ BasicHttpBindingSecurity.Security.Mode
.
Répétez ces étapes pour le client de service Forms.
Obtention du formulaire interactif à l’aide du service Forms
Créez un objet BLOB
en utilisant son constructeur. L’objet BLOB
permet de stocker un document PDF signé.
Créez un objet System.IO.FileStream
en appelant son constructeur et en transmettant une valeur de chaîne qui représente l’emplacement de fichier du document PDF à signer, ainsi que le mode d’ouverture du fichier.
Créez un tableau d’octets qui stocke le contenu de l’objet System.IO.FileStream
. Vous pouvez déterminer la taille du tableau d’octets en obtenant la propriété System.IO.FileStream
de l’objet Length
.
Renseignez le tableau d’octets avec les données de flux en appelant la méthode System.IO.FileStream
de l’objet Read
et en transmettant le tableau d’octets, la position de départ et la longueur du flux à lire.
Renseignez l’objet BLOB
en attribuant sa propriété MTOM
au contenu du tableau d’octets.
Créez un objet BLOB
en utilisant son constructeur. L’objet BLOB
est utilisé pour stocker les données de formulaire.
Créez un objet System.IO.FileStream
en appelant son constructeur et en transmettant une valeur de chaîne qui représente l’emplacement du fichier XML contenant les données du formulaire et le mode d’ouverture du fichier.
Créez un tableau d’octets qui stocke le contenu de l’objet System.IO.FileStream
. Vous pouvez déterminer la taille du tableau d’octets en obtenant la propriété System.IO.FileStream
de l’objet Length
.
Renseignez le tableau d’octets avec les données de flux en appelant la méthode System.IO.FileStream
de l’objet Read
et en transmettant le tableau d’octets, la position de départ et la longueur du flux à lire.
Renseignez l’objet BLOB
en attribuant sa propriété MTOM
au contenu du tableau d’octets.
Créez un objet PDFFormRenderSpec
utilisé pour définir les options d’exécution. Affectez la valeur true
au champ PDFFormRenderSpec
de l’objet generateServerAppearance
.
Appelez la méthode renderPDFForm2
de l’objet FormsServiceClient
et transmettez les valeurs suivantes :
BLOB
contenant le formulaire PDF à générer.BLOB
contenant les données à fusionner avec le formulaire.PDFFormRenderSpec
qui stocke les options d’exécution.URLSpec
contenant des valeurs URI requises par le service Forms. Vous pouvez spécifier null
pour cette valeur de paramètre.java.util.HashMap
qui stocke les pièces jointes. Il s’agit d’un paramètre facultatif et vous pouvez spécifier null
si vous ne souhaitez pas joindre de fichiers au formulaire.FormResult
qui est un paramètre de sortie utilisé pour stocker le formulaire interactif.Supprimez le formulaire PDF en appelant le champ outputContent
de l’objet FormsResult
. Ce champ stocke un objet BLOB
qui représente le formulaire interactif.
Signature du formulaire interactif
Signez le document PDF en appelant la méthode sign
de l’objet SignatureServiceClient
et en transmettant les valeurs suivantes :
BLOB
représentant le document PDF à signer. Utilisez l'instance BLOB
renvoyée par le service Forms.Credential
représentant les informations d’identification utilisées pour signer numériquement le document PDF. Créez un objet Credential
en utilisant son constructeur et spécifiez l'alias en attribuant une valeur à la propriété alias
de l'objet Credential
.HashAlgorithm
qui spécifie un membre de données statique qui représente l’algorithme de hachage à utiliser pour digérer le document PDF. Par exemple, vous pouvez spécifier HashAlgorithm.SHA1
pour utiliser l’algorithme SHA1.PDFSignatureAppearanceOptions
qui contrôle l’aspect de la signature numérique. Par exemple, vous pouvez utiliser cet objet pour ajouter un logo personnalisé à une signature numérique.System.Boolean
qui spécifie s’il faut effectuer une vérification de révocation sur le certificat du signataire. Si cette vérification de révocation est effectuée, elle est incorporée dans la signature. La valeur par défaut est de false
.OCSPPreferences
qui stocke les préférences pour la prise en charge du protocole OCSP (Online Certificate Status Protocol). Si la vérification de révocation n’est pas effectuée, ce paramètre n’est pas utilisé et vous pouvez spécifier null
. Pour plus d’informations sur cet objet, voir Référence de l’API AEM Forms.CRLPreferences
qui stocke les préférences de liste de révocation des certificats (CRL). Si la vérification de révocation n’est pas effectuée, ce paramètre n’est pas utilisé et vous pouvez spécifier null
.TSPPreferences
qui stocke les préférences pour la prise en charge du fournisseur d’horodatage (TSP). Ce paramètre est facultatif et peut être null
.La méthode sign
renvoie un objet BLOB
qui représente le document PDF signé.
Enregistrer le document PDF signé
System.IO.FileStream
en appelant son constructeur. Transmettez une valeur de chaîne qui représente l’emplacement du fichier du document PDF signé et le mode d’ouverture du fichier.BLOB
renvoyé par la méthode sign
. Renseignez le tableau d’octets en obtenant la valeur du membre de données MTOM
de l’objet BLOB
.System.IO.BinaryWriter
en appelant son constructeur et en transmettant l'objet System.IO.FileStream
.System.IO.BinaryWriter
de l’objet Write
et en transmettant le tableau d’octets.Voir également
Signature numérique d’un Forms interactif
Appel de AEM Forms à l’aide de MTOM
Vous pouvez définir un document PDF en le certifiant avec un type de signature particulier appelé signature certifiée. Une signature certifiée se différencie d’une signature numérique de plusieurs manières :
Vous pouvez programmer la certification des documents PDF à l’aide de l’API Java du service Signature ou de l’API du service Web Signature. Lors de la certification d’un document PDF, vous devez référencer des informations d’identification de sécurité qui existent dans le service d’informations d’identification. Pour plus d’informations sur les informations d’identification de sécurité, voir le guide Installation et déploiement d’AEM Forms correspondant à votre serveur d’applications.
Lors de la certification et de la signature du même document PDF, si la signature de certification n’est pas approuvée, un triangle jaune s’affiche en regard de la signature du premier signe lorsque vous ouvrez le document PDF dans Acrobat ou Adobe Reader. La signature de certification doit être approuvée pour éviter cette situation.
Lors de l’utilisation d’informations d’identification HSM nCipher pour signer ou certifier un document PDF, les nouvelles informations d’identification ne peuvent pas être utilisées tant que le serveur d’applications J2EE sur lequel AEM Forms est déployé n’a pas redémarré. Cependant, vous pouvez définir une valeur de configuration, ce qui signifie que l’opération de signature ou de certification fonctionne sans redémarrer le serveur d’applications J2EE.
Vous pouvez ajouter la valeur de configuration suivante dans le fichier cknfastrc, qui se trouve dans /opt/nfast/cknfastrc (ou c:\nfast\cknfastrc) :
CKNFAST_ASSUME_SINGLE_PROCESS=0
Après avoir ajouté cette valeur de configuration au fichier cknfastrc, vous pouvez utiliser les nouvelles informations d’identification sans redémarrer le serveur d’applications J2EE.
Pour plus d’informations sur le service Signature et la certification d’un document, voir Guide de référence des services pour AEM Forms.
Pour certifier un document PDF, effectuez les tâches suivantes :
Inclure les fichiers de projet
Incluez les fichiers nécessaires dans votre projet de développement. Si vous créez une application cliente à l’aide de Java, incluez les fichiers JAR nécessaires. Si vous utilisez des services Web, veillez à inclure les fichiers proxy.
Les fichiers JAR suivants doivent être ajoutés au chemin de classe de votre projet :
Pour plus d’informations sur l’emplacement de ces fichiers JAR, voir Inclusion de fichiers de bibliothèque Java AEM Forms.
Création d’un client Signature
Avant de pouvoir exécuter une opération Signature par programmation, vous devez créer un client Signature.
Obtention du document PDF à certifier
Pour certifier un document PDF, vous devez obtenir un document PDF contenant un champ de signature. Si un document PDF ne contient pas de champ de signature, il ne peut pas être certifié. Un champ de signature peut être ajouté à l’aide de Designer ou par programmation. Pour plus d’informations sur l’ajout programmatique d’un champ de signature, voir Ajouter des champs de signature.
Certification du document PDF
Pour certifier un document PDF, vous devez disposer des valeurs d’entrée suivantes utilisées par le service Signature pour certifier un document PDF :
form1[0].#subform[1].SignatureField3[3]
. Lors de l’utilisation d’un champ de formulaire XFA, le nom partiel du champ de signature peut également être utilisé : SignatureField3[3]
. Si une valeur nulle est transmise pour le nom du champ, un champ de signature invisible est créé et certifié de manière dynamique.false
signifie que la vérification de révocation n’est pas effectuée.Enregistrer le document PDF certifié en tant que fichier PDF
Une fois que le service Signature a certifié le document PDF, vous pouvez l’enregistrer en tant que fichier PDF afin que les utilisateurs puissent l’ouvrir dans Acrobat ou Adobe Reader.
Voir également
Certification de documents PDF à l’aide de l’API Java
Certification de documents PDF à l’aide de l’API du service Web
Inclusion des fichiers de bibliothèque Java AEM Forms
Réglage des propriétés de la connexion
Ajouter des champs de signature
Certifier un document PDF à l’aide de l’API Signature (Java) :
Inclure les fichiers de projet
Incluez des fichiers JAR client, tels que adobe-signatures-client.jar, dans le chemin de classe de votre projet Java.
Création d’un client Signature
ServiceClientFactory
qui contient des propriétés de connexion.SignatureServiceClient
en utilisant son constructeur et en transmettant l’objet ServiceClientFactory
.Obtention du document PDF à certifier
java.io.FileInputStream
représentant le document PDF à certifier à l’aide de son constructeur et transmettez une valeur de chaîne indiquant l’emplacement du document PDF.com.adobe.idp.Document
en utilisant son constructeur et en transmettant l’objet java.io.FileInputStream
.Certification du document PDF
Certifiez le document PDF en appelant la méthode SignatureServiceClient
de l’objet certify
et en transmettant les valeurs suivantes :
com.adobe.idp.Document
représentant le document PDF à certifier.Credential
représentant les informations d’identification utilisées pour certifier le document PDF. Créez un objet Credential
en appelant la méthode statique Credential
de l'objet getInstance
et en transmettant une valeur de chaîne qui spécifie la valeur d'alias correspondant aux informations d'identification de sécurité.HashAlgorithm
qui spécifie un membre de données statique qui représente l’algorithme de hachage utilisé pour digérer le document PDF. Par exemple, vous pouvez spécifier HashAlgorithm.SHA1
pour utiliser l’algorithme SHA1.MDPPermissions
qui spécifie les actions qui peuvent être exécutées sur le document PDF et qui invalide la signature.PDFSignatureAppearanceOptions
contrôlant l’aspect de la signature certifiée. Si vous le souhaitez, modifiez l’aspect de la signature en appelant une méthode, telle que setShowDate
.java.lang.Boolean
qui spécifie s’il faut effectuer une vérification de révocation sur le certificat du signataire. Si cette vérification de révocation est effectuée, elle est incorporée dans la signature. La valeur par défaut est de false
.java.lang.Boolean
qui spécifie si le champ de signature en cours de certification est verrouillé ou non. Si le champ est verrouillé, le champ de signature est marqué en lecture seule, ses propriétés ne peuvent pas être modifiées et il ne peut pas être effacé par quiconque ne dispose pas des autorisations requises. La valeur par défaut est de false
.OCSPPreferences
qui stocke les préférences pour la prise en charge du protocole OCSP (Online Certificate Status Protocol). Si la vérification de révocation n’est pas effectuée, ce paramètre n’est pas utilisé et vous pouvez spécifier null
. Pour plus d’informations sur cet objet, voir Référence de l’API AEM Forms.CRLPreferences
qui stocke les préférences de liste de révocation des certificats (CRL). Si la vérification de révocation n’est pas effectuée, ce paramètre n’est pas utilisé et vous pouvez spécifier null
.TSPPreferences
qui stocke les préférences pour la prise en charge du fournisseur d’horodatage (TSP). Par exemple, après avoir créé un objet TSPPreferences
, vous pouvez définir l’URL du serveur TSP en appelant la méthode setTspServerURL
de l’objet TSPPreferences
. Ce paramètre est facultatif et peut être null
. Pour plus d’informations, voir Guide de référence des services pour AEM Forms.La méthode certify
renvoie un objet com.adobe.idp.Document
qui représente le document PDF certifié.
Enregistrer le document PDF certifié en tant que fichier PDF
java.io.File
et assurez-vous que l’extension du fichier est .pdf.com.adobe.idp.Document
de l'objet copyToFile
pour copier le contenu de l'objet com.adobe.idp.Document
dans le fichier.Voir également
Certification de documents PDF
Début rapide (mode SOAP) : Certification d’un document PDF à l’aide de l’API Java
Inclusion des fichiers de bibliothèque Java AEM Forms
Réglage des propriétés de la connexion
Certifier un document PDF à l’aide de l’API Signature (service Web) :
Inclure les fichiers de projet
Créez un projet Microsoft .NET qui utilise MTOM. Assurez-vous d’utiliser la définition WSDL suivante : http://localhost:8080/soap/services/SignatureService?WSDL&lc_version=9.0.1
.
Remplacez localhost
par l’adresse IP du serveur hébergeant AEM Forms.
Création d’un client Signature
Créez un objet SignatureServiceClient
en utilisant son constructeur par défaut.
Créez un objet SignatureServiceClient.Endpoint.Address
en utilisant le constructeur System.ServiceModel.EndpointAddress
. Transmettez une valeur de chaîne qui spécifie le WSDL au service AEM Forms (par exemple, http://localhost:8080/soap/services/SignatureService?WSDL
). Vous n'avez pas besoin d'utiliser l'attribut lc_version
. Cet attribut est utilisé lorsque vous créez une référence de service.)
Créez un objet System.ServiceModel.BasicHttpBinding
en obtenant la valeur du champ SignatureServiceClient.Endpoint.Binding
. Convertissez la valeur de retour en BasicHttpBinding
.
Définissez le champ MessageEncoding
de l’objet System.ServiceModel.BasicHttpBinding
sur WSMessageEncoding.Mtom
. Cette valeur garantit l’utilisation de MTOM.
Activez l’authentification HTTP de base en exécutant les tâches suivantes :
SignatureServiceClient.ClientCredentials.UserName.UserName
.SignatureServiceClient.ClientCredentials.UserName.Password
.HttpClientCredentialType.Basic
au champ BasicHttpBindingSecurity.Transport.ClientCredentialType
.BasicHttpSecurityMode.TransportCredentialOnly
au champ BasicHttpBindingSecurity.Security.Mode
.Obtention du document PDF à certifier
BLOB
en utilisant son constructeur. L’objet BLOB
est utilisé pour stocker un document PDF certifié.System.IO.FileStream
en appelant son constructeur et en transmettant une valeur de chaîne qui représente l’emplacement du fichier du document PDF à certifier et le mode d’ouverture du fichier.System.IO.FileStream
. Vous pouvez déterminer la taille du tableau d’octets en obtenant la propriété System.IO.FileStream
de l’objet Length
.System.IO.FileStream
de l’objet Read
et en transmettant le tableau d’octets, la position de départ et la longueur du flux à lire.BLOB
en affectant à son membre de données MTOM
le contenu du tableau d'octets.Certification du document PDF
Certifiez le document PDF en appelant la méthode SignatureServiceClient
de l’objet certify
et en transmettant les valeurs suivantes :
BLOB
représentant le document PDF à certifier.Credential
représentant les informations d’identification utilisées pour certifier le document PDF. Créez un objet Credential
à l'aide de son constructeur et spécifiez l'alias en attribuant une valeur à la propriété alias
de l'objet Credential
.HashAlgorithm
qui spécifie un membre de données statique qui représente l’algorithme de hachage utilisé pour digérer le document PDF. Par exemple, vous pouvez spécifier HashAlgorithm.SHA1
pour utiliser l’algorithme SHA1.MDPPermissions
qui spécifie les actions qui peuvent être exécutées sur le document PDF qui invalident la signature.MDPPermissions
doit être utilisé comme valeur de paramètre précédente.PDFSignatureAppearanceOptions
contrôlant l’aspect de la signature certifiée. Créez un objet PDFSignatureAppearanceOptions
en utilisant son constructeur. Vous pouvez modifier l’aspect de la signature en définissant l’un de ses membres de données.System.Boolean
qui spécifie s’il faut effectuer une vérification de révocation sur le certificat du signataire. Si cette vérification de révocation est effectuée, elle est incorporée dans la signature. La valeur par défaut est de false
.System.Boolean
qui spécifie si le champ de signature en cours de certification est verrouillé ou non. Si le champ est verrouillé, le champ de signature est marqué en lecture seule, ses propriétés ne peuvent pas être modifiées et il ne peut pas être effacé par quiconque ne dispose pas des autorisations requises. La valeur par défaut est de false
.System.Boolean
qui spécifie si le champ de signature est verrouillé. Autrement dit, si vous transmettez true
au paramètre précédent, transmettez true
à ce paramètre.OCSPPreferences
qui stocke des préférences pour la prise en charge du protocole OCSP (Online Certificate Status Protocol), qui fournit des informations sur l’état des informations d’identification utilisées pour certifier le document PDF. Si la vérification de révocation n’est pas effectuée, ce paramètre n’est pas utilisé et vous pouvez spécifier null
.CRLPreferences
qui stocke les préférences de liste de révocation des certificats (CRL). Si la vérification de révocation n’est pas effectuée, ce paramètre n’est pas utilisé et vous pouvez spécifier null
.TSPPreferences
qui stocke les préférences pour la prise en charge du fournisseur d’horodatage (TSP). Par exemple, après avoir créé un objet TSPPreferences
, vous pouvez définir l’URL du fournisseur de services de télécommunication en définissant le membre de données TSPPreferences
de l’objet tspServerURL
. Ce paramètre est facultatif et peut être null
.La méthode certify
renvoie un objet BLOB
qui représente le document PDF certifié.
Enregistrer le document PDF certifié en tant que fichier PDF
System.IO.FileStream
en appelant son constructeur et en transmettant une valeur de chaîne qui représente l’emplacement du fichier du document PDF qui contiendra le document PDF certifié et le mode d’ouverture du fichier.BLOB
renvoyé par la méthode certify
. Renseignez le tableau d’octets en obtenant la valeur du membre de données binaryData
de l’objet BLOB
.System.IO.BinaryWriter
en appelant son constructeur et en transmettant l'objet System.IO.FileStream
.System.IO.BinaryWriter
de l’objet Write
et en transmettant le tableau d’octets.Voir également
Certification de documents PDF
Appel de AEM Forms à l’aide de MTOM
Appel de AEM Forms à l’aide de SwaRef
Les signatures numériques peuvent être vérifiées pour vous assurer qu’un document PDF signé n’a pas été modifié et que la signature numérique est valide. Lors de la vérification d’une signature numérique, vous pouvez vérifier l’état de la signature et ses propriétés, telles que l’identité du signataire. Avant d’approuver une signature numérique, il est recommandé de la vérifier. Lors de la vérification d’une signature numérique, référencez un document PDF contenant une signature numérique.
Supposons que l’identité du signataire soit inconnue. Lorsque vous ouvrez le document PDF dans Acrobat, un message d’avertissement indique que l’identité du signataire est inconnue, comme illustré ci-dessous.
De même, lorsque vous vérifiez par programmation une signature numérique, vous pouvez déterminer l’état de l’identité du signataire. Par exemple, si vous vérifiez la signature numérique dans le document illustré ci-dessus, l’identité du signataire est inconnue.
Pour plus d’informations sur le service Signature et la vérification des signatures numériques, voir Guide de référence des services pour AEM Forms.
Pour vérifier une signature numérique, effectuez les tâches suivantes :
Inclure les fichiers de projet
Incluez les fichiers nécessaires dans votre projet de développement. Si vous créez une application cliente à l’aide de Java, incluez les fichiers JAR nécessaires. Si vous utilisez des services Web, incluez les fichiers proxy.
Les fichiers JAR suivants doivent être ajoutés au chemin de classe de votre projet :
Pour plus d’informations sur l’emplacement de ces fichiers JAR, voir Inclusion de fichiers de bibliothèque Java AEM Forms.
Création d’un client Signature
Avant d’effectuer une opération de service Signature par programmation, créez un client de service Signature.
Obtenir le document PDF contenant la signature à vérifier
Pour vérifier une signature utilisée pour signer ou certifier numériquement un document PDF, obtenez un document PDF contenant une signature.
Définition des options d’exécution PKI
Définissez les options d’exécution PKI que le service Signature utilise lors de la vérification des signatures dans un document PDF :
Dans le cadre de la définition de ces options, vous pouvez spécifier l’heure de vérification. Par exemple, vous pouvez sélectionner l’heure actuelle (l’heure sur l’ordinateur du validateur), qui indique d’utiliser l’heure actuelle. Pour plus d’informations sur les différentes valeurs d’heure, voir la valeur de énumération VerificationTime
dans Référence de l’API AEM Forms.
Vous pouvez également indiquer si la vérification de révocation doit être effectuée dans le cadre du processus de vérification. Par exemple, vous pouvez effectuer une vérification de révocation pour déterminer si le certificat est révoqué. Pour plus d’informations sur les options de vérification de révocation, voir la valeur de énumération RevocationCheckStyle
dans Référence de l’API AEM Forms.
Pour effectuer une vérification de révocation sur un certificat, spécifiez une URL vers un serveur CRL (Certificate Revocation liste) à l’aide d’un objet CRLOptionSpec
. Cependant, si vous ne spécifiez pas d’URL vers le serveur CRL, le service Signature obtient l’URL à partir du certificat.
Au lieu d’utiliser un serveur CRL, vous pouvez utiliser un serveur OCSP (Online Certificate Status Protocol) lors de la vérification de révocation. En règle générale, lorsque vous utilisez un serveur OCSP plutôt qu’un serveur CRL, la vérification de révocation est effectuée plus rapidement. (Voir Protocole d'état du certificat en ligne.)
Vous pouvez définir l’ordre de CRL et de serveur OCSP utilisé par le service Signature à l’aide d’Adobe Applications and Services. Par exemple, si le serveur OCSP est défini en premier dans Adobe Applications and Services, le serveur OCSP est coché, suivi du serveur CRL.
Si vous n’effectuez pas de vérification de révocation, le service Signature ne vérifie pas si le certificat est révoqué. En d’autres termes, les informations de CRL et de serveur OCSP sont ignorées.
Vous pouvez remplacer l’URL spécifiée dans le certificat en utilisant un objet CRLOptionSpec
et un objet OCSPOptionSpec
. Par exemple, pour remplacer le serveur CRL, vous pouvez appeler la méthode CRLOptionSpec
de l’objet setLocalURI
.
L’horodatage est le processus de suivi de l’heure de modification d’un document signé ou certifié. Après la signature d'un document, personne ne peut le modifier. L’horodatage permet de garantir la validité d’un document signé ou certifié. Vous pouvez définir des options d’horodatage à l’aide d’un objet TSPOptionSpec
. Vous pouvez, par exemple, spécifier l’URL d’un serveur TSP (Time Timping provider).
Dans les débuts rapides de Java et de service Web, l’heure de vérification est définie sur VerificationTime.CURRENT_TIME
et la vérification de révocation sur RevocationCheckStyle.BestEffort
. Comme aucune liste de révocation des certificats ou aucune information sur le serveur OCSP n’est spécifiée, les informations sur le serveur sont obtenues à partir du certificat.
Vérification de la signature numérique
Pour vérifier une signature, indiquez le nom qualifié complet du champ de signature qui contient la signature, tel que form1[0].#subform[1].SignatureField3[3]
. Lors de l’utilisation d’un champ de formulaire XFA, vous pouvez également utiliser le nom partiel du champ de signature : SignatureField3
.
Par défaut, le service Signature limite à 65 minutes la durée pendant laquelle un document peut être signé après l’heure de validation. Si un utilisateur tente de vérifier une signature à l’heure actuelle et que l’heure de la signature est postérieure à l’heure actuelle et qu’elle est inférieure à 65 minutes, le service Signature ne crée pas d’erreur de vérification.
Pour connaître les autres valeurs dont vous avez besoin lors de la vérification d’une signature, voir Référence de l’API AEM Forms.
Détermination de l’état de la signature
Lors de la vérification d’une signature numérique, vous pouvez vérifier l’état de la signature.
Détermination de l’identité du signataire
Vous pouvez déterminer l’identité du signataire, qui peut être l’une des valeurs suivantes :
Voir également
Vérification des signatures numériques à l’aide de l’API Java
Vérification des signatures numériques à l’aide de l’API du service Web
Inclusion des fichiers de bibliothèque Java AEM Forms
Réglage des propriétés de la connexion
Vérifiez une signature numérique à l’aide de l’API Signature Service (Java) :
Inclure les fichiers de projet
Incluez des fichiers JAR client, tels que adobe-signatures-client.jar, dans le chemin de classe de votre projet Java.
Création d’un client Signature
ServiceClientFactory
qui contient des propriétés de connexion.SignatureServiceClient
en utilisant son constructeur et en transmettant l’objet ServiceClientFactory
.Obtenir le document PDF contenant la signature à vérifier
java.io.FileInputStream
représentant le document PDF contenant la signature à vérifier à l’aide de son constructeur. Transmettez une valeur de chaîne qui spécifie l’emplacement du document PDF.com.adobe.idp.Document
en utilisant son constructeur et en transmettant l’objet java.io.FileInputStream
.Définition des options d’exécution PKI
PKIOptions
en utilisant son constructeur.PKIOptions
de l’objet setVerificationTime
et en transmettant une valeur de énumération VerificationTime
qui spécifie l’heure de vérification.PKIOptions
de l’objet setRevocationCheckStyle
et en transmettant une valeur de énumération RevocationCheckStyle
qui indique s’il convient d’effectuer une vérification de révocation.Vérification de la signature numérique
Vérifiez la signature en appelant la méthode verify2
de l’objet SignatureServiceClient
et en transmettant les valeurs suivantes :
com.adobe.idp.Document
contenant un document PDF signé numériquement ou certifié.PKIOptions
contenant des options d’exécution PKI.VerifySPIOptions
contenant des informations SPI. Vous pouvez spécifier null
pour ce paramètre.La méthode verify2
renvoie un objet PDFSignatureVerificationInfo
contenant des informations qui peuvent être utilisées pour vérifier la signature numérique.
Détermination de l’état de la signature
PDFSignatureVerificationInfo
de l’objet getStatus
. Cette méthode renvoie un objet SignatureStatus
qui spécifie l’état de la signature. Par exemple, si un document PDF signé n’est pas modifié, cette méthode renvoie SignatureStatus.DocumentSigNoChanges
.Détermination de l’identité du signataire
PDFSignatureVerificationInfo
de l’objet getSigner
. Cette méthode renvoie un objet IdentityInformation
.IdentityInformation
de l’objet getStatus
pour déterminer l’identité du signataire. Cette méthode renvoie une valeur de énumération IdentityStatus
qui spécifie l'identité. Par exemple, si le signataire est approuvé, cette méthode renvoie IdentityStatus.TRUSTED
.Voir également
Vérification des signatures numériques
Début rapide (mode SOAP) : Vérification d’une signature numérique à l’aide de l’API Java
Inclusion des fichiers de bibliothèque Java AEM Forms
Réglage des propriétés de la connexion
Vérifiez une signature numérique à l’aide de l’API Signature Service (service Web) :
Inclure les fichiers de projet
Créez un projet Microsoft .NET qui utilise MTOM. Assurez-vous d’utiliser la définition WSDL suivante : http://localhost:8080/soap/services/SignatureService?WSDL&lc_version=9.0.1
.
Remplacez localhost
par l’adresse IP du serveur hébergeant AEM Forms.
Création d’un client Signature
Créez un objet SignatureServiceClient
en utilisant son constructeur par défaut.
Créez un objet SignatureServiceClient.Endpoint.Address
en utilisant le constructeur System.ServiceModel.EndpointAddress
. Transmettez une valeur de chaîne qui spécifie le WSDL au service AEM Forms (par exemple, http://localhost:8080/soap/services/SignatureService?WSDL
). Vous n'avez pas besoin d'utiliser l'attribut lc_version
. Cet attribut est utilisé lorsque vous créez une référence de service.)
Créez un objet System.ServiceModel.BasicHttpBinding
en obtenant la valeur du champ SignatureServiceClient.Endpoint.Binding
. Convertissez la valeur de retour en BasicHttpBinding
.
Définissez le champ MessageEncoding
de l’objet System.ServiceModel.BasicHttpBinding
sur WSMessageEncoding.Mtom
. Cette valeur garantit l’utilisation de MTOM.
Activez l’authentification HTTP de base en exécutant les tâches suivantes :
SignatureServiceClient.ClientCredentials.UserName.UserName
.SignatureServiceClient.ClientCredentials.UserName.Password
.HttpClientCredentialType.Basic
au champ BasicHttpBindingSecurity.Transport.ClientCredentialType
.BasicHttpSecurityMode.TransportCredentialOnly
au champ BasicHttpBindingSecurity.Security.Mode
.Obtenir le document PDF contenant la signature à vérifier
BLOB
en utilisant son constructeur. L’objet BLOB
permet de stocker un document PDF contenant une signature numérique ou certifiée à vérifier.System.IO.FileStream
en appelant son constructeur. Transmettez une valeur de chaîne qui représente l’emplacement du fichier du document PDF signé et le mode d’ouverture du fichier.System.IO.FileStream
. Vous pouvez déterminer la taille du tableau d’octets en obtenant la propriété System.IO.FileStream
de l’objet Length
.System.IO.FileStream
de l’objet Read
. Passez le tableau d’octets, la position de départ et la longueur du flux à lire.BLOB
en attribuant sa propriété MTOM
au contenu du tableau d’octets.Définition des options d’exécution PKI
PKIOptions
en utilisant son constructeur.verificationTime
de l’objet PKIOptions
une valeur de énumération VerificationTime
qui spécifie l’heure de vérification.revocationCheckStyle
de l’objet PKIOptions
une valeur de énumération RevocationCheckStyle
qui indique s’il faut effectuer une vérification de révocation.Vérification de la signature numérique
Vérifiez la signature en appelant la méthode verify2
de l’objet SignatureServiceClient
et en transmettant les valeurs suivantes :
BLOB
contenant un document PDF signé numériquement ou certifié.PKIOptions
contenant des options d’exécution PKI.VerifySPIOptions
contenant des informations SPI. Vous pouvez spécifier null
pour ce paramètre.La méthode verify2
renvoie un objet PDFSignatureVerificationInfo
contenant des informations qui peuvent être utilisées pour vérifier la signature numérique.
Détermination de l’état de la signature
Déterminez l’état de la signature en obtenant la valeur du membre de données status
de l’objet PDFSignatureVerificationInfo
. Ce membre de données stocke un objet SignatureStatus
qui spécifie l’état de la signature. Par exemple, si un document PDF signé est modifié, le membre de données status
stocke la valeur SignatureStatus.DocumentSigNoChanges
.
Détermination de l’identité du signataire
PDFSignatureVerificationInfo
de l’objet signer
. Ce membre renvoie un objet IdentityInformation
.IdentityInformation
de l’objet status
pour déterminer l’identité du signataire. Ce membre de données renvoie une valeur de énumération IdentityStatus
qui spécifie l'identité. Par exemple, si le signataire est approuvé, ce membre renvoie IdentityStatus.TRUSTED
.Voir également
Vérification des signatures numériques
Appel de AEM Forms à l’aide de MTOM
Appel de AEM Forms à l’aide de SwaRef
AEM Forms permet de vérifier toutes les signatures numériques qui se trouvent dans un document PDF. Supposons qu’un document PDF contient plusieurs signatures numériques suite à un processus d’entreprise qui requiert des signatures de plusieurs signataires. Prenons l’exemple d’une transaction financière qui requiert à la fois la signature d’un agent de prêt et celle d’un gestionnaire. Vous pouvez utiliser l’API Java du service Signature ou l’API du service Web pour vérifier toutes les signatures du document PDF. Lors de la vérification de plusieurs signatures numériques, vous pouvez vérifier l’état et les propriétés de chaque signature. Avant d’approuver une signature numérique, il est recommandé de la vérifier. Il est recommandé de se familiariser avec la vérification d’une signature numérique unique.
Pour plus d’informations sur le service Signature et la vérification des signatures numériques, voir Guide de référence des services pour AEM Forms.
Pour vérifier plusieurs signatures numériques, effectuez les tâches suivantes :
Inclure les fichiers de projet
Incluez les fichiers nécessaires dans votre projet de développement. Si vous créez une application cliente à l’aide de Java, incluez les fichiers JAR nécessaires. Si vous utilisez des services Web, incluez les fichiers proxy.
Les fichiers JAR suivants doivent être ajoutés au chemin de classe de votre projet :
Pour plus d’informations sur l’emplacement de ces fichiers JAR, voir Inclusion de fichiers de bibliothèque Java AEM Forms.
Création d’un client Signature
Avant d’effectuer une opération de service Signature par programmation, créez un client de service Signature.
Obtenir le document PDF contenant les signatures à vérifier
Pour vérifier une signature utilisée pour signer ou certifier numériquement un document PDF, obtenez un document PDF contenant une signature.
Définition des options d’exécution PKI
Définissez les options d’exécution PKI que le service Signature utilise lors de la vérification de toutes les signatures dans un document PDF :
Dans le cadre de la définition de ces options, vous pouvez spécifier l’heure de vérification. Par exemple, vous pouvez sélectionner l’heure actuelle (l’heure sur l’ordinateur du validateur), qui indique d’utiliser l’heure actuelle. Pour plus d’informations sur les différentes valeurs d’heure, voir la valeur de énumération VerificationTime
dans Référence de l’API AEM Forms.
Vous pouvez également indiquer si la vérification de révocation doit être effectuée dans le cadre du processus de vérification. Par exemple, vous pouvez effectuer une vérification de révocation pour déterminer si le certificat est révoqué. Pour plus d’informations sur les options de vérification de révocation, voir la valeur de énumération RevocationCheckStyle
dans Référence de l’API AEM Forms.
Pour effectuer une vérification de révocation sur un certificat, spécifiez une URL vers un serveur CRL (Certificate Revocation liste) à l’aide d’un objet CRLOptionSpec
. Cependant, si vous ne spécifiez pas d’URL vers un serveur CRL, le service Signature obtient l’URL à partir du certificat.
Au lieu d’utiliser un serveur CRL, vous pouvez utiliser un serveur OCSP (Online Certificate Status Protocol) lors de la vérification de révocation. En règle générale, lorsque vous utilisez un serveur OCSP plutôt qu’un serveur CRL, la vérification de révocation est effectuée plus rapidement. (Voir Protocole d'état du certificat en ligne.)
Vous pouvez définir l’ordre de CRL et de serveur OCSP utilisé par le service Signature à l’aide d’Adobe Applications and Services. Par exemple, si le serveur OCSP est défini en premier dans Adobe Applications and Services, le serveur OCSP est coché, suivi du serveur CRL.
Si vous n’effectuez pas de vérification de révocation, le service Signature ne vérifie pas si le certificat est révoqué. En d’autres termes, les informations de CRL et de serveur OCSP sont ignorées.
Vous pouvez remplacer l’URL spécifiée dans le certificat en utilisant un objet CRLOptionSpec
et un objet OCSPOptionSpec
. Par exemple, pour remplacer le serveur CRL, vous pouvez appeler la méthode CRLOptionSpec
de l’objet setLocalURI
.
L’horodatage est le processus de suivi de l’heure de modification d’un document signé ou certifié. Après la signature d'un document, personne ne peut le modifier. L’horodatage permet de garantir la validité d’un document signé ou certifié. Vous pouvez définir des options d’horodatage à l’aide d’un objet TSPOptionSpec
. Vous pouvez, par exemple, spécifier l’URL d’un serveur TSP (Time Timping provider).
Dans les débuts rapides de Java et de service Web, l’heure de vérification est définie sur VerificationTime.CURRENT_TIME
et la vérification de révocation sur RevocationCheckStyle.BestEffort
. Comme aucune liste de révocation des certificats ou aucune information sur le serveur OCSP n’est spécifiée, les informations sur le serveur sont obtenues à partir du certificat.
Récupérer toutes les signatures numériques
Pour vérifier toutes les signatures numériques se trouvant dans un document PDF, récupérez les signatures numériques du document PDF. Toutes les signatures sont renvoyées dans une liste. Dans le cadre de la vérification d’une signature numérique, vérifiez l’état de la signature.
Contrairement à la vérification d’une signature numérique unique, lorsque vous vérifiez plusieurs signatures, vous n’êtes pas tenu de spécifier le nom du champ de signature.
Effectuer une itération à travers toutes les signatures
Effectuez une itération sur chaque signature. Ainsi, pour chaque signature, vérifiez la signature numérique et l’identité du signataire et l’état de chaque signature. (Voir Vérification des signatures numériques.)
Il n’est pas nécessaire de parcourir toutes les signatures si l’exigence correspond à l’ensemble du document.
Voir également
Vérification de plusieurs signatures numériques à l’aide de l’API Java
Vérification de plusieurs signatures numériques à l’aide de l’API du service Web
Inclusion des fichiers de bibliothèque Java AEM Forms
Réglage des propriétés de la connexion
Vérifiez plusieurs signatures numériques à l’aide de l’API Signature Service (Java) :
Inclure les fichiers de projet
Incluez des fichiers JAR client, tels que adobe-signatures-client.jar, dans le chemin de classe de votre projet Java.
Création d’un client Signature
ServiceClientFactory
qui contient des propriétés de connexion.SignatureServiceClient
en utilisant son constructeur et en transmettant l’objet ServiceClientFactory
.Obtenir le document PDF contenant les signatures à vérifier
java.io.FileInputStream
qui représente le document PDF contenant plusieurs signatures numériques à vérifier à l’aide de son constructeur. Transmettez une valeur de chaîne qui spécifie l’emplacement du document PDF.com.adobe.idp.Document
en utilisant son constructeur et en transmettant l’objet java.io.FileInputStream
.Définition des options d’exécution PKI
PKIOptions
en utilisant son constructeur.PKIOptions
de l’objet setVerificationTime
et en transmettant une valeur de énumération VerificationTime
qui spécifie l’heure de vérification.PKIOptions
de l’objet setRevocationCheckStyle
et en transmettant une valeur de énumération RevocationCheckStyle
qui spécifie si la vérification de révocation doit être effectuée.Récupérer toutes les signatures numériques
Appelez la méthode verifyPDFDocument
de l’objet SignatureServiceClient
et transmettez les valeurs suivantes :
com.adobe.idp.Document
contenant un document PDF contenant plusieurs signatures numériques.PKIOptions
contenant des options d’exécution PKI.VerifySPIOptions
contenant des informations SPI. Vous pouvez spécifier null
pour ce paramètre.La méthode verifyPDFDocument
renvoie un objet PDFDocumentVerificationInfo
contenant des informations sur toutes les signatures numériques situées dans le document PDF.
Effectuer une itération à travers toutes les signatures
getVerificationInfos
de l’objet PDFDocumentVerificationInfo
. Cette méthode renvoie un objet java.util.List
où chaque élément est un objet PDFSignatureVerificationInfo
. Utilisez un objet java.util.Iterator
pour effectuer une itération à travers la liste des signatures.PDFSignatureVerificationInfo
permet d'effectuer des tâches telles que la détermination de l'état de la signature en appelant la méthode PDFSignatureVerificationInfo
de l'objet getStatus
. Cette méthode renvoie un objet SignatureStatus
dont le membre de données statiques vous informe sur l’état de la signature. Par exemple, si la signature est inconnue, cette méthode renvoie SignatureStatus.DocumentSignatureUnknown
.Voir également
Vérification de plusieurs signatures numériques
Début rapide (mode SOAP) : Vérification de plusieurs signatures numériques à l’aide de l’API Java
Inclusion des fichiers de bibliothèque Java AEM Forms
Vérification des signatures numériques
Réglage des propriétés de la connexion
Vérifiez plusieurs signatures numériques à l’aide de l’API Signature Service (service Web) :
Inclure les fichiers de projet
Créez un projet Microsoft .NET qui utilise MTOM. Assurez-vous d’utiliser la définition WSDL suivante : http://localhost:8080/soap/services/SignatureService?WSDL&lc_version=9.0.1
.
Remplacez localhost
par l’adresse IP du serveur hébergeant AEM Forms.
Création d’un client Signature
Créez un objet SignatureServiceClient
en utilisant son constructeur par défaut.
Créez un objet SignatureServiceClient.Endpoint.Address
en utilisant le constructeur System.ServiceModel.EndpointAddress
. Transmettez une valeur de chaîne qui spécifie le WSDL au service AEM Forms (par exemple, http://localhost:8080/soap/services/SignatureService?WSDL
). Vous n'avez pas besoin d'utiliser l'attribut lc_version
. Cet attribut est utilisé lorsque vous créez une référence de service.)
Créez un objet System.ServiceModel.BasicHttpBinding
en obtenant la valeur du champ SignatureServiceClient.Endpoint.Binding
. Convertissez la valeur de retour en BasicHttpBinding
.
Définissez le champ MessageEncoding
de l’objet System.ServiceModel.BasicHttpBinding
sur WSMessageEncoding.Mtom
. Cette valeur garantit l’utilisation de MTOM.
Activez l’authentification HTTP de base en exécutant les tâches suivantes :
SignatureServiceClient.ClientCredentials.UserName.UserName
.SignatureServiceClient.ClientCredentials.UserName.Password
.HttpClientCredentialType.Basic
au champ BasicHttpBindingSecurity.Transport.ClientCredentialType
.BasicHttpSecurityMode.TransportCredentialOnly
au champ BasicHttpBindingSecurity.Security.Mode
.Obtenir le document PDF contenant les signatures à vérifier
BLOB
en utilisant son constructeur. L’objet BLOB
stocke un document PDF contenant plusieurs signatures numériques à vérifier.System.IO.FileStream
en appelant son constructeur. Transmettez une valeur de chaîne qui représente l’emplacement du fichier du document PDF et le mode d’ouverture du fichier.System.IO.FileStream
. Vous pouvez déterminer la taille du tableau d’octets en obtenant la propriété System.IO.FileStream
de l’objet Length
.System.IO.FileStream
de l’objet Read
. Passez le tableau d’octets, la position de départ et la longueur du flux à lire.BLOB
en attribuant sa propriété MTOM
au contenu du tableau d’octets.Définition des options d’exécution PKI
PKIOptions
en utilisant son constructeur.verificationTime
de l’objet PKIOptions
une valeur de énumération VerificationTime
qui spécifie l’heure de vérification.revocationCheckStyle
de l’objet PKIOptions
une valeur de énumération RevocationCheckStyle
qui indique s’il faut effectuer une vérification de révocation.Récupérer toutes les signatures numériques
Appelez la méthode verifyPDFDocument
de l’objet SignatureServiceClient
et transmettez les valeurs suivantes :
BLOB
contenant un document PDF contenant plusieurs signatures numériques.PKIOptions
contenant des options d’exécution PKI.VerifySPIOptions
contenant des informations SPI. Vous pouvez spécifier null pour ce paramètre.La méthode verifyPDFDocument
renvoie un objet PDFDocumentVerificationInfo
contenant des informations sur toutes les signatures numériques situées dans le document PDF.
Effectuer une itération à travers toutes les signatures
verificationInfos
de l’objet PDFDocumentVerificationInfo
. Ce membre de données renvoie un tableau Object
où chaque élément est un objet PDFSignatureVerificationInfo
.PDFSignatureVerificationInfo
vous permet d'effectuer des tâches telles que déterminer l'état de la signature en obtenant le membre de données PDFSignatureVerificationInfo
de l'objet status
. Ce membre de données renvoie un objet SignatureStatus
dont le membre de données statiques vous informe sur l’état de la signature. Par exemple, si la signature est inconnue, cette méthode renvoie SignatureStatus.DocumentSignatureUnknown
.Voir également
Vérification de plusieurs signatures numériques
Appel de AEM Forms à l’aide de MTOM
Appel de AEM Forms à l’aide de SwaRef
Les signatures numériques doivent être supprimées d’un champ de signature pour qu’une signature numérique plus récente puisse être appliquée. Une signature numérique ne peut pas être remplacée. Si vous tentez d’appliquer une signature numérique à un champ de signature contenant une signature, une exception se produit.
Pour plus d’informations sur le service Signature, voir Guide de référence des services pour AEM Forms.
Pour supprimer une signature numérique d’un champ de signature, effectuez les tâches suivantes :
Inclure les fichiers de projet
Incluez les fichiers nécessaires dans votre projet de développement. Si vous créez une application cliente à l’aide de Java, incluez les fichiers JAR nécessaires. Si vous utilisez des services Web, veillez à inclure les fichiers proxy.
Les fichiers JAR suivants doivent être ajoutés au chemin de classe de votre projet :
Pour plus d’informations sur l’emplacement de ces fichiers JAR, voir Inclusion de fichiers de bibliothèque Java AEM Forms.
Création d’un client Signature
Avant de pouvoir exécuter une opération de service Signature par programmation, vous devez créer un client de service Signature.
Obtenir le document PDF contenant une signature à supprimer
Pour supprimer une signature d’un document PDF, vous devez obtenir un document PDF contenant une signature.
Supprimer la signature numérique du champ de signature
Pour supprimer une signature numérique d’un document PDF, vous devez indiquer le nom du champ de signature qui contient la signature numérique. Vous devez également être autorisé à supprimer la signature numérique ; dans le cas contraire, une exception se produit.
Enregistrer le document PDF en tant que fichier PDF
Une fois que le service Signature a supprimé une signature numérique d’un champ de signature, vous pouvez enregistrer le document PDF en tant que fichier PDF afin que les utilisateurs puissent l’ouvrir dans Acrobat ou Adobe Reader.
Voir également
Suppression des signatures numériques à l’aide de l’API Java
Suppression des signatures numériques à l’aide de l’API du service Web
Inclusion des fichiers de bibliothèque Java AEM Forms
Réglage des propriétés de la connexion
Ajouter des champs de signature
Supprimez une signature numérique à l’aide de l’API Signature (Java) :
Inclure les fichiers de projet
Incluez des fichiers JAR client, tels que adobe-signatures-client.jar, dans le chemin de classe de votre projet Java.
Créez un client Signature.
ServiceClientFactory
qui contient des propriétés de connexion.SignatureServiceClient
en utilisant son constructeur et en transmettant l’objet ServiceClientFactory
.Obtenir le document PDF contenant une signature à supprimer
java.io.FileInputStream
qui représente le document PDF contenant la signature à supprimer en utilisant son constructeur et en transmettant une valeur de chaîne indiquant l’emplacement du document PDF.com.adobe.idp.Document
en utilisant son constructeur et en transmettant l’objet java.io.FileInputStream
.Supprimer la signature numérique du champ de signature
Supprimez une signature numérique d’un champ de signature en appelant la méthode clearSignatureField
de l’objet SignatureServiceClient
et en transmettant les valeurs suivantes :
com.adobe.idp.Document
représentant le document PDF contenant la signature à supprimer.La méthode clearSignatureField
renvoie un objet com.adobe.idp.Document
qui représente le document PDF à partir duquel la signature numérique a été supprimée.
Enregistrer le document PDF en tant que fichier PDF
java.io.File
et assurez-vous que l’extension du fichier est .pdf.com.adobe.idp.Document
de l’objet copyToFile
. Transmettez l'objet java.io.File
pour copier le contenu de l'objet com.adobe.idp.Document
dans le fichier. Assurez-vous d’utiliser l’objet Document
qui a été retourné par la méthode clearSignatureField
.Voir également
Suppression des signatures numériques
Début rapide (mode SOAP) : Suppression d’une signature numérique à l’aide de l’API Java
Inclusion des fichiers de bibliothèque Java AEM Forms
Réglage des propriétés de la connexion
Supprimez une signature numérique à l’aide de l’API Signature (service Web) :
Inclure les fichiers de projet
Créez un projet Microsoft .NET qui utilise MTOM. Assurez-vous d’utiliser la définition WSDL suivante : http://localhost:8080/soap/services/SignatureService?WSDL&lc_version=9.0.1
.
Remplacez localhost
par l’adresse IP du serveur hébergeant AEM Forms.
Création d’un client Signature
Créez un objet SignatureServiceClient
en utilisant son constructeur par défaut.
Créez un objet SignatureServiceClient.Endpoint.Address
en utilisant le constructeur System.ServiceModel.EndpointAddress
. Transmettez une valeur de chaîne qui spécifie le WSDL au service AEM Forms (par exemple, http://localhost:8080/soap/services/SignatureService?WSDL
). Vous n'avez pas besoin d'utiliser l'attribut lc_version
. Cet attribut est utilisé lorsque vous créez une référence de service.)
Créez un objet System.ServiceModel.BasicHttpBinding
en obtenant la valeur du champ SignatureServiceClient.Endpoint.Binding
. Convertissez la valeur de retour en BasicHttpBinding
.
Définissez le champ MessageEncoding
de l’objet System.ServiceModel.BasicHttpBinding
sur WSMessageEncoding.Mtom
. Cette valeur garantit l’utilisation de MTOM.
Activez l’authentification HTTP de base en exécutant les tâches suivantes :
SignatureServiceClient.ClientCredentials.UserName.UserName
.SignatureServiceClient.ClientCredentials.UserName.Password
.HttpClientCredentialType.Basic
au champ BasicHttpBindingSecurity.Transport.ClientCredentialType
.BasicHttpSecurityMode.TransportCredentialOnly
au champ BasicHttpBindingSecurity.Security.Mode
.Obtenir le document PDF contenant une signature à supprimer
BLOB
en utilisant son constructeur. L’objet BLOB
permet de stocker un document PDF contenant une signature numérique à supprimer.System.IO.FileStream
en appelant son constructeur et en transmettant une valeur de chaîne qui représente l’emplacement du fichier du document PDF signé et le mode d’ouverture du fichier.System.IO.FileStream
. Vous pouvez déterminer la taille du tableau d’octets en obtenant la propriété System.IO.FileStream
de l’objet Length
.System.IO.FileStream
de l’objet Read
. Passez le tableau d’octets, la position de départ et la longueur du flux à lire.BLOB
en attribuant sa propriété MTOM
au contenu du tableau d’octets.Supprimer la signature numérique du champ de signature
Supprimez la signature numérique en appelant la méthode clearSignatureField
de l’objet SignatureServiceClient
et en transmettant les valeurs suivantes :
BLOB
contenant le document PDF signé.La méthode clearSignatureField
renvoie un objet BLOB
qui représente le document PDF à partir duquel la signature numérique a été supprimée.
Enregistrer le document PDF en tant que fichier PDF
System.IO.FileStream
en appelant son constructeur et en transmettant une valeur de chaîne qui représente l’emplacement du fichier du document PDF contenant un champ de signature vide et le mode d’ouverture du fichier.BLOB
renvoyé par la méthode sign
. Renseignez le tableau d’octets en obtenant la valeur du membre de données MTOM
de l’objet BLOB
.System.IO.BinaryWriter
en appelant son constructeur et en transmettant l'objet System.IO.FileStream
.System.IO.BinaryWriter
de l’objet Write
et en transmettant le tableau d’octets.Voir également
Suppression des signatures numériques
Appel de AEM Forms à l’aide de MTOM
Appel de AEM Forms à l’aide de SwaRef