Signer numériquement et certifier des documents digitally-signing-and-certifying-documents
À propos du service Signature
Le service Signature permet à votre entreprise de garantir 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, celui-ci reste sécurisé et contrôlé pendant tout son cycle 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 entreprise.
Noms des champs de signature
Certaines opérations du service Signature requièrent la spécification du nom du champ de signature sur lequel une opération est effectuée. Par exemple, lors de la signature d’un document PDF, vous spécifiez 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 indiquer SignatureField1[0]
au lieu de form1[0].Form1[0].SignatureField1[0]
.
Il arrive qu’en raison d’un conflit, le service Signature signe (ou effectue une autre opération nécessitant le nom du champ de signature) le mauvais champ. Ce conflit est le résultat du nom SignatureField1[0]
apparaissant à plusieurs endroits dans le 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 qu’il détecte lors de l’itération sur tous les champs de signature du document.
Si plusieurs champs de signature sont situés dans un document PDF, il est recommandé de spécifier le nom complet des champs de signature. Autrement dit, spécifiez form1[0].Form1[0].SignatureField1[0]
au lieu de SignatureField1[0]
.
Vous pouvez accomplir les tâches suivantes à l’aide du service Signature :
- Ajouter et supprimer des champs de signature numérique à un document PDF. (Voir Ajouter des champs de signature.)
- Récupérer les noms des champs de signature situés dans un document PDF. (Voir Récupérer les noms des champs de signature.)
- Modifier des champs de signature. (Voir Modifier les champs de signature.)
- Signer numériquement des documents PDF. (Voir Signer numériquement des documents PDF.)
- Certifier des documents PDF. (Voir Certifier des documents PDF.)
- Valider les signatures numériques situées dans un document PDF. (Voir Vérifier les signatures numériques.)
- Valider toutes les signatures numériques situées dans un document PDF. (Voir Vérifier plusieurs signatures numériques.)
- Supprimer une signature numérique d’un champ de signature. (Voir Supprimer des signatures numériques.)
Ajouter des champs de signature adding-signature-fields
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 il est possible d’ajouter un champ de signature par programme. 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. Cependant, chaque nom de champ de signature doit être unique.
Résumé des étapes summary-of-steps
Pour ajouter un champ de signature à un document PDF, effectuez les tâches suivantes :
- Incluez les fichiers de projet.
- Créez un client Signature.
- Obtenir un document PDF auquel un champ de signature est ajouté.
- Ajouter un champ de signature.
- Enregistrez le document PDF au format PDF.
Inclure des 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 d’accès aux classes de votre projet :
- adobe-livecycle-client.jar
- adobe-usermanager-client.jar
- adobe-signatures-client.jar
- adobe-utility.jar (obligatoire si AEM Forms est déployé sur JBoss)
- jbossall-client.jar (obligatoire si AEM Forms est déployé sur JBoss)
Créer un client Signature
Avant d’effectuer par programmation une opération du service Signature, vous devez créer un client du 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 avec succès 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 qui sont verrouillés après l’apposition d’une signature dans le 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 d’AEM Forms
Réglage des propriétés de la connexion
Signer des documents PDF numériquement
Ajouter des champs de signature à l’aide de l’API Java add-signature-fields-using-the-java-api
Ajoutez un champ de signature à l’aide de l’API Signature (Java) :
-
Inclure les fichiers du projet
Incluez les fichiers clients JAR, tels que adobe-signatures-client.jar, dans le paramètre Classpath de votre projet Java.
-
Créer une Signature client
- Créez un objet
ServiceClientFactory
qui contient des propriétés de connexion. - Créez un objet
SignatureServiceClient
en utilisant son constructeur et en transmettant l’objetServiceClientFactory
.
- Créez un objet
-
Obtenir un document PDF auquel un champ de signature est ajouté
- Créez un objet
java.io.FileInputStream
représentant le document PDF auquel un champ de signature est ajouté en utilisant son constructeur et en transmettant 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’objetjava.io.FileInputStream
.
- Créez un objet
-
Ajouter un champ de signature
-
Créez un objet
PositionRectangle
spécifiant l’emplacement du champ de signature à l’aide de son constructeur. Dans le constructeur, spécifiez des valeurs de coordonnée. -
Si vous le souhaitez, créez un objet
FieldMDPOptions
spécifiant 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’objetSignatureServiceClient
et en transmettant les valeurs suivantes :- A
com.adobe.idp
. ObjetDocument
représentant le document PDF auquel un champ de signature est ajouté. - Valeur de chaîne spécifiant le nom du champ de signature.
- Valeur
java.lang.Integer
représentant le numéro de page auquel un champ de signature est ajouté. - Objet
PositionRectangle
spécifiant l’emplacement du champ de signature. - Objet
FieldMDPOptions
spécifiant 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 transmettrenull
.
- A
-
Objet
PDFSeedValueOptions
spécifiant différentes valeurs de temps d’exécution. Cette valeur de paramètre est facultative et vous pouvez transmettrenull
.La méthode
addSignatureField
renvoie un objetcom.adobe.idp
. ObjetDocument
représentant un document PDF contenant un champ de signature.
note note NOTE Vous pouvez appeler la méthode addInvisibleSignatureField
de l’objetSignatureServiceClient
pour ajouter un champ de signature invisible. -
-
Enregistrer le document PDF en tant que fichier PDF
- Créez un objet
java.io.File
et assurez-vous que l’extension du fichier est .pdf. - Appelez l’objet
com.adobe.idp
. MéthodecopyToFile
de l’objetDocument
pour copier le contenu de l’objetDocument
dans le fichier. Veillez à utiliser l’objetcom.adobe.idp
. ObjetDocument
qui a été renvoyé par la méthodeaddSignatureField
.
- Créez un objet
Voir également
Tutoriels de démarrage rapide API du service Signature
Ajouter des champs de signature à l’aide de l’API de service web add-signature-fields-using-the-web-service-api
Pour ajouter un champ de signature à l’aide de l’API Signature (service web) :
-
Inclure les fichiers du projet
Créez un projet Microsoft .NET qui utilise MTOM. Veillez à utiliser la définition WSDL suivante :
http://localhost:8080/soap/services/SignatureService?WSDL&lc_version=9.0.1
.note note NOTE Remplacez localhost
par l’adresse IP du serveur hébergeant AEM Forms. -
Créer une Signature client
-
Créez un objet
SignatureServiceClient
en utilisant son constructeur par défaut. -
Créez un objet
SignatureServiceClient.Endpoint.Address
en utilisant le constructeurSystem.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’attributlc_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 champSignatureServiceClient.Endpoint.Binding
. Convertissez la valeur de retour enBasicHttpBinding
. -
Définissez le champ
MessageEncoding
de l’objetSystem.ServiceModel.BasicHttpBinding
surWSMessageEncoding.Mtom
. Cette valeur garantit l’utilisation de MTOM. -
Activez l’authentification HTTP de base en effectuant les tâches suivantes :
- Attribuez le nom d’utilisateur AEM forms au champ
SignatureServiceClient.ClientCredentials.UserName.UserName
. - Attribuez la valeur de mot de passe correspondante au champ
SignatureServiceClient.ClientCredentials.UserName.Password
. - Attribuez la valeur constante
HttpClientCredentialType.Basic
au champBasicHttpBindingSecurity.Transport.ClientCredentialType
. - Affectez la valeur constante
BasicHttpSecurityMode.TransportCredentialOnly
au champBasicHttpBindingSecurity.Security.Mode
.
- Attribuez le nom d’utilisateur AEM forms au champ
-
-
Obtenir un document PDF auquel un champ de signature est ajouté
- Créez un objet
BLOB
en utilisant son constructeur. L’objetBLOB
sert à stocker le document PDF qui contiendra un champ de signature. - 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 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éLength
de l’objetSystem.IO.FileStream
. - Renseignez le tableau d’octets avec les données de diffusion en appelant la méthode
Read
de l’objetSystem.IO.FileStream
et en transmettant le tableau d’octets, la position de départ et la longueur du flux à lire. - Renseignez l’objet
BLOB
en attribuant à ses propriétésMTOM
le contenu du tableau d’octets.
- Créez un objet
-
Ajouter un champ de signature
Ajoutez un champ de signature au document PDF en appelant la méthode
addSignatureField
de l’objetSignatureServiceClient
et en transmettant les valeurs suivantes :- Objet
BLOB
représentant le document PDF auquel le champ de signature invisible est ajouté. - Valeur de chaîne spécifiant le nom du champ de signature.
- Une valeur entière qui représente le numéro de page auquel un champ de signature est ajouté.
- Objet
PositionRect
spécifiant l’emplacement du champ de signature. - Objet
FieldMDPOptions
spécifiant 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 transmettrenull
. - Objet
PDFSeedValueOptions
spécifiant différentes valeurs de temps d’exécution. Cette valeur de paramètre est facultative et vous pouvez transmettrenull
.
La méthode
addSignatureField
renvoie un objetBLOB
représentant un document PDF contenant un champ de signature. - Objet
-
Enregistrer le document PDF en tant que fichier PDF
- Créez un objet
System.IO.FileStream
en appelant son constructeur et en transmettant une valeur string qui représente l’emplacement du fichier du document PDF qui contiendra le champ de signature et le mode d’ouverture du fichier. - Créez un tableau d’octets qui stocke le contenu de l’objet
BLOB
qui a été renvoyé par la méthodeaddSignatureField
. Renseignez le tableau d’octets en obtenant la valeur du membre de donnéesbinaryData
de l’objetBLOB
. - Créez un objet
System.IO.BinaryWriter
en utilisant son constructeur et en transmettant l’objetSystem.IO.FileStream
. - Écrivez le contenu du tableau d’octets dans un fichier PDF en appelant la méthode
Write
de l’objetSystem.IO.BinaryWriter
et en transmettant le tableau d’octets.
- Créez un objet
Voir également
Appeler AEM Forms en utilisant MTOM
Appel d’AEM Forms à l’aide de SwaRef
Récupérer des noms des champs de signature retrieving-signature-field-names
Vous pouvez récupérer les noms de tous les champs de signature d’un document de PDF que vous souhaitez signer ou certifier. Si vous n’êtes pas sûr des noms de champ de signature figurant dans un document de PDF ou si vous souhaitez vérifier les noms, vous pouvez les récupérer par programmation. Le service Signature renvoie le nom qualifié complet du champ de signature, tel que form1[0].grantApplication[0].page1[0].SignatureField1[0]
.
Résumé des étapes summary_of_steps-1
Pour récupérer les noms des champs de signature, effectuez les tâches suivantes :
- Incluez les fichiers de projet.
- Créez un client Signature.
- Accédez au document PDF contenant les champs de signature.
- Récupérez les noms des champs de signature.
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 d’accès aux classes de votre projet :
- adobe-livecycle-client.jar
- adobe-usermanager-client.jar
- adobe-signatures-client.jar
- adobe-utility.jar (obligatoire si AEM Forms est déployé sur JBoss)
- jbossall-client.jar (obligatoire si AEM Forms est déployé sur JBoss)
Pour plus d’informations sur l’emplacement de ces fichiers JAR, voir Inclure des fichiers de bibliothèque Java AEM Forms.
Créer un client Signature
Avant d’effectuer par programmation une opération du service Signature, vous devez créer un client du service Signature.
Accéder au 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 qui contient un ou plusieurs champs de signature.
Voir également
Récupérer les noms des champs de signature à l’aide de l’API Java
Récupérer le champ de signature à l’aide de l’API Web Service
Inclusion des fichiers de bibliothèque Java d’AEM Forms
Réglage des propriétés de la connexion
Ajouter des champs de signature
Récupérer les noms des champs de signature à l’aide de l’API Java retrieve-signature-field-names-using-the-java-api
Récupérez les noms des champs de signature à l’aide de l’API Signature (Java) :
-
Inclure les fichiers du projet
Incluez les fichiers JAR du client, tels qu’adobe-livecycle-client.jar, dans le chemin d’accès aux classes de votre projet Java.
-
Créer une Signature client
- Créez un objet
ServiceClientFactory
qui contient des propriétés de connexion. - Créez un objet
SignatureServiceClient
en utilisant son constructeur et en transmettant l’objetServiceClientFactory
.
- Créez un objet
-
Accéder au document PDF contenant les champs de signature
- Créez un objet
java.io.FileInputStream
qui représente le document PDF contenant les champs de signature en utilisant son constructeur et en transmettant 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’objetjava.io.FileInputStream
.
- Créez un objet
-
Récupérer des noms de champs de signature
- Récupérez les noms des champs de signature en appelant la méthode
getSignatureFieldList
de l’objetSignatureServiceClient
et en transmettant l’objetcom.adobe.idp.Document
qui contient le document PDF contenant les champs de signature. Cette méthode renvoie un objetjava.util.List
, dont chaque élément contient un objetPDFSignatureField
. Grâce à cet objet, vous pouvez obtenir des informations supplémentaires sur un champ de signature, par exemple s’il est visible. - Effectuez une itération dans l’objet
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 objetPDFSignatureField
. Pour obtenir le nom du champ de signature, appelez la méthodegetName
de l’objetPDFSignatureField
. Cette méthode renvoie une valeur de chaîne indiquant le nom du champ de signature.
- Récupérez les noms des champs de signature en appelant la méthode
Voir également
Récupérer des noms des champs de signature
Inclusion des fichiers de bibliothèque Java d’AEM Forms
Réglage des propriétés de la connexion
Récupérer le champ de signature à l’aide de l’API Web Service retrieve-signature-field-using-the-web-service-api
Récupérez les noms des champs de signature à l’aide de l’API de signature (Web Service) :
-
Inclure les fichiers du projet
Créez un projet Microsoft .NET qui utilise MTOM. Veillez à utiliser la définition WSDL suivante :
http://localhost:8080/soap/services/SignatureService?WSDL&lc_version=9.0.1
.note note NOTE Remplacez localhost
par l’adresse IP du serveur hébergeant AEM Forms. -
Créer une Signature client
-
Créez un objet
SignatureServiceClient
en utilisant son constructeur par défaut. -
Créez un objet
SignatureServiceClient.Endpoint.Address
en utilisant le constructeurSystem.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’attributlc_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 champSignatureServiceClient.Endpoint.Binding
. Convertissez la valeur de retour enBasicHttpBinding
. -
Définissez le champ
MessageEncoding
de l’objetSystem.ServiceModel.BasicHttpBinding
surWSMessageEncoding.Mtom
. Cette valeur garantit l’utilisation de MTOM. -
Activez l’authentification HTTP de base en effectuant les tâches suivantes :
- Attribuez le nom d’utilisateur AEM forms au champ
SignatureServiceClient.ClientCredentials.UserName.UserName
. - Attribuez la valeur de mot de passe correspondante au champ
SignatureServiceClient.ClientCredentials.UserName.Password
. - Attribuez la valeur constante
HttpClientCredentialType.Basic
au champBasicHttpBindingSecurity.Transport.ClientCredentialType
. - Affectez la valeur constante
BasicHttpSecurityMode.TransportCredentialOnly
au champBasicHttpBindingSecurity.Security.Mode
.
- Attribuez le nom d’utilisateur AEM forms au champ
-
-
Accéder au document PDF contenant les champs de signature
- Créez un objet
BLOB
en utilisant son constructeur. L’objetBLOB
sert à stocker le document PDF qui contient les champs de signature. - 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 PDF 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éLength
de l’objetSystem.IO.FileStream
. - Renseignez le tableau d’octets avec le flux de données en appelant la méthode
Read
de l’objetSystem.IO.FileStream
et en transmettant le tableau d’octets, la position de départ et la longueur du flux à lire. - Renseignez l’objet
BLOB
en affectant le contenu du tableau d’octets à son champMTOM
.
- Créez un objet
-
Récupérer des noms de champs de signature
- Récupérez les noms des champs de signature en appelant la méthode
getSignatureFieldList
de l’objetSignatureServiceClient
et en transmettant l’objetBLOB
contenant le document PDF avec les champs de signature. Cette méthode renvoie un objet de collectionMyArrayOfPDFSignatureField
dans lequel chaque élément contient un objetPDFSignatureField
. - Effectuez une itération sur l’objet
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 objetPDFSignatureField
. Pour obtenir le nom du champ de signature, appelez la méthodegetName
de l’objetPDFSignatureField
. Cette méthode renvoie une valeur de chaîne indiquant le nom du champ de signature.
- Récupérez les noms des champs de signature en appelant la méthode
Voir également
Récupérer des noms des champs de signature
Appeler AEM Forms en utilisant MTOM
Appel d’AEM Forms à l’aide de SwaRef
Modifier des champs de signature modifying-signature-fields
Vous pouvez modifier les champs de signature d’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 la liste des champs qui sont 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’apposition de la signature. Par exemple, vous pouvez modifier les autorisations qui contrôlent les actions pouvant se produire sans invalider la signature.
Lors de la modification d’un champ de signature existant, vous pouvez modifier le document PDF en fonction des besoins de votre entreprise. Par exemple, un nouveau besoin d’activité pourrait nécessiter de verrouiller tous les champs du document une fois le document signé.
Cette section explique comment modifier un champ de signature en modifiant les valeurs du dictionnaire de verrouillage de champ et 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 de départ interdisent certains types de modifications apportées au document.
Résumé des étapes summary_of_steps-2
Pour modifier les champs de signature d’un document PDF, procédez comme suit :
- Incluez les fichiers de projet.
- Créez un client Signature.
- Accédez au document PDF contenant le champ de signature à modifier.
- Définissez les valeurs du dictionnaire.
- Modifiez le champ de signature.
- Enregistrez le document PDF au format PDF.
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 d’accès aux classes de votre projet :
- adobe-livecycle-client.jar
- adobe-usermanager-client.jar
- adobe-signatures-client.jar
- adobe-utility.jar (obligatoire si AEM Forms est déployé sur JBoss)
- jbossall-client.jar (obligatoire si AEM Forms est déployé sur JBoss)
Pour plus d’informations sur l’emplacement de ces fichiers JAR, voir Inclure des fichiers de bibliothèque Java LiveCycle.
Créer un client Signature
Avant d’effectuer par programmation une opération du service Signature, vous devez créer un client du service Signature.
Accéder au document PDF contenant le champ de signature à modifier
Récupérez un document PDF contenant le champ de signature à modifier.
Définir des valeurs de dictionnaire
Pour modifier un champ de signature, affectez des valeurs à son dictionnaire de verrouillage de champs ou à son dictionnaire de valeur de départ. En spécifiant les valeurs du dictionnaire de verrouillage des champs de signature, vous devez également indiquer les champs du document PDF verrouillés lorsque le champ de signature est signé. (Cette section explique comment verrouiller tous les champs.)
Les valeurs du dictionnaire de valeurs de départ suivantes peuvent être définies :
-
Vérification des révisions : cette option indique si la vérification de révocation est effectuée lorsqu’une signature est appliquée au champ de signature.
-
Options de certificat : cette option attribue des valeurs au dictionnaire de valeurs de départ du certificat. Avant de spécifier des options de certificat, il est recommandé de vous familiariser avec un dictionnaire de valeur de départ du certificat. (Voir Référence PDF.)
-
Options de prétraitement : Cette option attribue des algorithmes de prétraitement utilisés pour la signature. Les valeurs valides sont SHA1, SHA256, SHA384, SHA512 et RIPEMD160.
-
Filtre : cette option indique le filtre utilisé pour le champ de signature. Par exemple, vous pouvez utiliser le filtre Adobe.PPKLite. (Voir Référence PDF.)
-
Options d’indicateur : cette option indique les valeurs d’indicateur associées à ce champ de signature. Une valeur définie sur 1 signifie qu’un signataire doit utiliser uniquement les valeurs spécifiées pour l’entrée. Une valeur définie sur 0 signifie que d’autres valeurs sont permises. Voici les positions Bit :
- 1 (Filtre) : gestionnaire de signatures à utiliser pour signer le champ de signature
- 2 (Sous-filtre) : tableau de noms indiquant des encodages acceptables à utiliser lors de la signature
- 3 (V) : numéro de version minimum requise du gestionnaire de signatures utilisé pour signer le champ de signature.
- 4 (Motifs) : tableau de chaînes spécifiant les motifs possibles de la signature d’un document.
- 5 (PDFLegalWarnings) : tableau de chaînes spécifiant les attestations juridiques possibles.
-
Attestations juridiques : 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 déroutant. Par exemple, une annotation peut assombrir du texte essentiel 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 : cette option spécifie les autorisations pouvant être utilisées sur un document PDF sans invalider la signature.
-
Motifs : indique les motifs pour lesquels 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.
Modifier un champ de signature
Après avoir créé un client du 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é 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 d’AEM Forms
Réglage des propriétés de la connexion
Tutoriels de démarrage rapide API du service Signature
Signer des documents PDF numériquement
Modifier des champs de signature à l’aide de l’API Java modify-signature-fields-using-the-java-api
Modifiez un champ de signature à l’aide de l’API Signature (Java) :
-
Inclure les fichiers du projet
Incluez les fichiers JAR du client, tels qu’adobe-signatures-client.jar, dans le chemin d’accès aux classes de votre projet Java.
-
Créer une Signature client
- Créez un objet
ServiceClientFactory
qui contient des propriétés de connexion. - Créez un objet
SignatureServiceClient
en utilisant son constructeur et en transmettant l’objetServiceClientFactory
.
- Créez un objet
-
Accéder au document PDF contenant le champ de signature à modifier
- Créez un objet
java.io.FileInputStream
représentant le document PDF contenant le champ de signature à modifier à l’aide de son constructeur et en transmettant 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’objetjava.io.FileInputStream
.
- Créez un objet
-
Définir des valeurs du dictionnaire
- Créez un objet
PDFSignatureFieldProperties
en utilisant son constructeur. Un objetPDFSignatureFieldProperties
stocke les informations du dictionnaire de verrouillage des champs de signature et du dictionnaire de valeurs de départ. - Créez un objet
PDFSeedValueOptionSpec
en utilisant son constructeur. Cet objet vous permet de définir les valeurs du dictionnaire de valeurs de départ. - Interdisez les modifications apportées au document PDF en appelant la méthode
setMdpValue
de l’objetPDFSeedValueOptionSpec
et en transmettant la valeur d’énumérationMDPPermissions.NoChanges
. - Créez un objet
FieldMDPOptionSpec
en utilisant son constructeur. Cet objet vous permet de définir les valeurs du dictionnaire de verrouillage des champs de signature. - Verrouillez tous les champs du document PDF en appelant la méthode
setMdpValue
de l’objetFieldMDPOptionSpec
et en transmettant la valeur d’énumérationFieldMDPAction.ALL
. - Définissez les informations du dictionnaire de valeur de départ en appelant la méthode
setSeedValue
de l’objetPDFSignatureFieldProperties
et en transmettant l’objetPDFSeedValueOptionSpec
. - Définissez les informations du dictionnaire de verrouillage des champs de signature en appelant la méthode
setFieldMDP
de l’objetPDFSignatureFieldProperties
et en transmettant l’objetFieldMDPOptionSpec
.
note note NOTE Pour afficher toutes les valeurs du dictionnaire de valeurs de départ que vous pouvez définir, reportez-vous à la référence de classe PDFSeedValueOptionSpec
. (Voir Référence de l’API AEM Forms.) - Créez un objet
-
Modifier un champ de signature
Modifiez le champ de signature en appelant la méthode
modifySignatureField
de l’objetSignatureServiceClient
et en transmettant les valeurs suivantes :- Objet
com.adobe.idp.Document
stockant le document PDF contenant le champ de signature à modifier. - Valeur de chaîne spécifiant le nom du champ de signature.
- Objet
PDFSignatureFieldProperties
stockant les informations du dictionnaire de verrouillage de champs de signature et du dictionnaire de valeurs de départ.
La méthode
modifySignatureField
renvoie un objetcom.adobe.idp.Document
qui stocke un document PDF contenant le champ de signature modifié. - Objet
-
Enregistrer le document PDF en tant que fichier PDF
- Créez un objet
java.io.File
et assurez-vous que l’extension du nom du fichier est .pdf. - Appelez la méthode
copyToFile
de l’objetcom.adobe.idp.Document
pour copier le contenu de l’objetcom.adobe.idp.Document
dans le fichier. Veillez à utiliser l’objetcom.adobe.idp.Document
renvoyé par la méthodemodifySignatureField
.
- Créez un objet
Modifier des champs de signature à l’aide de l’API Web Service modify-signature-fields-using-the-web-service-api
Modifiez un champ de signature à l’aide de l’API Signature (Web Service) :
-
Inclure les fichiers du projet
Créez un projet Microsoft .NET qui utilise MTOM. Veillez à utiliser la définition WSDL suivante :
http://localhost:8080/soap/services/SignatureService?WSDL&lc_version=9.0.1
.note note NOTE Remplacez localhost
par l’adresse IP du serveur hébergeant AEM Forms. -
Créer une Signature client
-
Créez un objet
SignatureServiceClient
en utilisant son constructeur par défaut. -
Créez un objet
SignatureServiceClient.Endpoint.Address
en utilisant le constructeurSystem.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’attributlc_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 champSignatureServiceClient.Endpoint.Binding
. Convertissez la valeur de retour enBasicHttpBinding
. -
Définissez le champ
MessageEncoding
de l’objetSystem.ServiceModel.BasicHttpBinding
surWSMessageEncoding.Mtom
. Cette valeur garantit l’utilisation de MTOM. -
Activez l’authentification HTTP de base en effectuant les tâches suivantes :
- Attribuez le nom d’utilisateur AEM forms au champ
SignatureServiceClient.ClientCredentials.UserName.UserName
. - Attribuez la valeur de mot de passe correspondante au champ
SignatureServiceClient.ClientCredentials.UserName.Password
. - Attribuez la valeur constante
HttpClientCredentialType.Basic
au champBasicHttpBindingSecurity.Transport.ClientCredentialType
. - Attribuez la valeur constante
BasicHttpSecurityMode.TransportCredentialOnly
au champBasicHttpBindingSecurity.Security.Mode
.
- Attribuez le nom d’utilisateur AEM forms au champ
-
-
Accéder au document PDF contenant le champ de signature à modifier
- Créez un objet
BLOB
en utilisant son constructeur. L’objetBLOB
sert à stocker le document PDF contenant le champ de signature à modifier. - Créez un objet
System.IO.FileStream
en appelant son constructeur et en transmettant une valeur de chaîne représentant l’emplacement du document PDF 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éLength
de l’objetSystem.IO.FileStream
. - Renseignez le tableau d’octets avec les données de diffusion en appelant la méthode
Read
de l’objetSystem.IO.FileStream
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
le contenu du tableau d’octets.
- Créez un objet
-
Définir des valeurs du dictionnaire
- Créez un objet
PDFSignatureFieldProperties
en utilisant son constructeur. Cet objet stocke les informations du dictionnaire de verrouillage de champs de signature et du dictionnaire de valeurs de départ. - Créez un objet
PDFSeedValueOptionSpec
en utilisant son constructeur. Cet objet vous permet de définir les valeurs du dictionnaire de valeurs de départ. - Interdisez les modifications apportées au document PDF en attribuant la valeur de l’énumération
MDPPermissions.NoChanges
au membre de donnéesmdpValue
de l’objetPDFSeedValueOptionSpec
. - Créez un objet
FieldMDPOptionSpec
en utilisant son constructeur. Cet objet vous permet de définir les valeurs du dictionnaire de verrouillage des champs de signature. - Verrouillez tous les champs du document PDF en attribuant la valeur d’énumération
FieldMDPAction.ALL
au membre de donnéesmdpValue
de l’objetFieldMDPOptionSpec
. - Définissez les informations du dictionnaire de valeurs de départ en attribuant l’objet
PDFSeedValueOptionSpec
au membre de donnéesseedValue
l’objetPDFSignatureFieldProperties
. - Définissez les informations du dictionnaire de verrouillage des champs de signature en attribuant l’objet
FieldMDPOptionSpec
au membre de donnéesfieldMDP
de l’objetPDFSignatureFieldProperties
.
note note NOTE Pour afficher toutes les valeurs du dictionnaire de valeurs de départ que vous pouvez définir, reportez-vous à la référence de classe PDFSeedValueOptionSpec
. (Voir Référence de l’API AEM Forms). - Créez un objet
-
Modifier un champ de signature
Modifiez le champ de signature en appelant la méthode
modifySignatureField
de l’objetSignatureServiceClient
et en transmettant les valeurs suivantes :- Objet
BLOB
stockant le document PDF contenant le champ de signature à modifier. - Valeur de chaîne spécifiant le nom du champ de signature.
- Objet
PDFSignatureFieldProperties
stockant les informations du dictionnaire de verrouillage de champs de signature et du dictionnaire de valeurs de départ.
La méthode
modifySignatureField
renvoie un objetBLOB
qui stocke un document PDF contenant le champ de signature modifié. - Objet
-
Enregistrer le document PDF en tant que fichier PDF
- Créez un objet
System.IO.FileStream
en appelant son constructeur et en transmettant une valeur de chaîne représentant l’emplacement du document PDF qui contiendra le champ de signature et le mode d’ouverture du fichier. - Créez un tableau d’octets qui stocke le contenu de l’objet
BLOB
renvoyé par la méthodeaddSignatureField
. Renseignez le tableau d’octets en obtenant la valeur du membre de donnéesMTOM
de l’objetBLOB
. - Créez un objet
System.IO.BinaryWriter
en utilisant son constructeur et en transmettant l’objetSystem.IO.FileStream
. - Écrivez le contenu du tableau d’octets dans un fichier PDF en appelant la méthode
Write
de l’objetSystem.IO.BinaryWriter
et en transmettant le tableau d’octets.
- Créez un objet
Voir également
Appeler AEM Forms en utilisant MTOM
Appel d’AEM Forms à l’aide de SwaRef
Signer des documents PDF numériquement digitally-signing-pdf-documents
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 sont clairs sur ce qui a été signé et croient que le document n’a pas été modifié depuis qu’il a été signé.
Les documents PDF sont signés à l’aide d’une technologie de clé publique. Un signataire possède 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 qui doit être accessible aux destinataires pour valider la signature. Vous trouverez des informations sur les certificats révoqués dans les listes de révocation des certificats (CRL) et les réponses OCSP (Online Certificate Status Protocol) distribuées par les autorités de certification (CA). L’heure de signature peut être obtenue à partir d’une source approuvée appelée Autorité d’horodatage.
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 des 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é :
- Le service Signature récupère les informations d’identification de TrustStore en transmettant l’alias spécifié dans la demande.
- TrustStore recherche les informations d’identification spécifiées.
- Les informations d’identification sont renvoyées au service Signature et sont utilisées pour signer le document. Les informations d’identification sont également mises en cache par rapport à l’alias pour les futures demandes.
Pour plus d’informations sur la gestion des informations d’identification de sécurité, consultez le guide d’installation et de déploiement d’AEM Forms* correspondant à votre serveur d’applications.
PDFOperationException
par le service Signature. 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 à une opération de service Signature. (Voir Utiliser PDF Utilities.)Informations d’identification nCipher nShield HSM
Lors de l’utilisation d’informations d’identification nCipher nShield HSM 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 été redémarré. Cependant, vous pouvez définir une valeur de configuration, ce qui permet à l’opération de signature ou de certification de fonctionner sans redémarrer le serveur d’applications J2EE.
Vous pouvez ajouter la valeur de configuration suivante dans le fichier cknfastrc, qui se trouve sous /opt/nfast/cknfastrc (ou c:\nfast\cknfastrc) :
CKNFAST_ASSUME_SINGLE_PROCESS=0
Après avoir ajouté cette valeur de configuration au fichier cknfastrc, les nouvelles informations d’identification peuvent être utilisées sans redémarrer le serveur d’applications J2EE.
Signature non approuvée
Lors de la certification et de la signature d’un même document PDF, si la signature de certification n’est pas approuvée, un triangle jaune apparaît sur la première signature lors de l’ouverture du document PDF dans Acrobat ou Adobe Reader. Pour éviter cette situation, la signature de certification doit être approuvée.
Signer des documents qui sont des formulaires XFA
Si vous tentez de signer un formulaire XFA à l’aide de l’API du service Signature, les données peuvent ne pas figurer dans l’élément View
Signed
Version
situé dans Acrobat. Prenons comme exemple le workflow suivant :
- À l’aide d’un fichier XDP créé à l’aide de Designer, vous fusionnez une conception de formulaire contenant un champ de signature et des données XML contenant des données de formulaire. Vous utilisez le service Forms pour générer un document PDF interactif.
- Signez le document PDF à l’aide de l’API du service Signature.
Résumé des étapes summary_of_steps-3
Pour signer numériquement un document PDF, effectuez les tâches suivantes :
- Incluez les fichiers de projet.
- Créez un client de service Signature.
- Obtenez le document PDF à signer.
- Signez le document PDF.
- Enregistrez le document PDF signé en tant que fichier PDF.
Inclure des 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 d’accès aux classes de votre projet :
- adobe-livecycle-client.jar
- adobe-usermanager-client.jar
- adobe-signatures-client.jar
- adobe-utility.jar (obligatoire si AEM Forms est déployé sur JBoss)
- jbossall-client.jar (obligatoire si AEM Forms est déployé sur JBoss)
Créer un client Signatures
Avant d’effectuer par programmation une opération du service Signature, vous devez créer un client du 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é. Vous pouvez ajouter un champ de signature à l’aide de Designer ou par programmation.
Signer le 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 :
- Options d’aspect
- Vérification de la révocation
- Valeurs d’horodatage
Pour définir les options d’apparence, utilisez un objet PDFSignatureAppearanceOptionSpec
. Par exemple, vous pouvez afficher la date dans une signature en appelant la méthode setShowDate
de l’objet PDFSignatureAppearanceOptionSpec
et en transmettant true
.
Vous pouvez également indiquer s’il faut effectuer ou non une vérification de révocation qui détermine 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 :
- NoCheck : ne pas effectuer de vérification de révocation.
- BestEffort : toujours essayer de vérifier la révocation de tous les certificats de la chaîne. Si un problème se produit lors de la vérification, la révocation est supposée être valide. En cas d’échec, considérez que le certificat n’est pas révoqué.
- CheckIfAvailable : vérifier la révocation de tous les certificats de la chaîne si des informations de révocation sont disponibles. En cas de problème lors de la vérification, la révocation est considérée comme non valide. En cas d’échec, considérez que le certificat est révoqué et non valide. (Il s’agit de la valeur par défaut.)
- AlwaysCheck : vérifier la révocation de tous les certificats de la chaîne. Si les informations de révocation ne figurent dans aucun certificat, la révocation est considérée comme non valide.
Pour effectuer une vérification de révocation sur un certificat, vous pouvez spécifier une URL vers un serveur de liste de révocation des certificats (CRL) à 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 « Online Certificate Status Protocol » à l’adresse https://tools.ietf.org/html/rfc2560.)
Vous pouvez définir l’ordre des serveurs CRL et OCSP que le service Signature utilise à l’aide d’Adobe Applications and Services. Par exemple, si le serveur OCSP est défini en premier lieu dans Adobe Applications and Services, le serveur OCSP est vérifié, suivi du serveur CRL. (Voir « Gérer les certificats et les informations d’identification à l’aide de TrustStore » dans l’aide d’AAC.)
Si vous indiquez de ne pas effectuer de 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 des serveurs CRL et OCSP sont ignorées.
CRLOptionSpec
et d’un objet OCSPOptionSpec
. Par exemple, pour remplacer le serveur CRL, vous pouvez appeler la méthode setLocalURI
de l’objet CRLOptionSpec
.L’horodatage désigne le processus de suivi de l’heure de modification d’un document signé ou certifié. Une fois signé, un document ne doit pas être modifié, même par son propriétaire. L’horodatage aide à assurer la validité d’un document signé ou certifié. Vous pouvez définir des options d’horodatage à l’aide d’un objet TSPOptionSpec
. Par exemple, vous pouvez spécifier l’URL d’un serveur de fournisseur d’horodatage (TSP).
Pour signer un document PDF, vous pouvez spécifier le nom qualifié 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 l’extension .pfx) ou un module de sécurité matérielle (HSM). Pour plus d’informations sur les informations d’identification de sécurité, consultez le guide d’installation et de 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
Signer numériquement des documents PDF à l’aide de l’API Java
Signer numériquement des documents PDF à l’aide de l’API du service web
Inclusion des fichiers de bibliothèque Java d’AEM Forms
Réglage des propriétés de la connexion
Ajouter des champs de signature
Récupérer des noms des champs de signature
Signer numériquement des documents PDF à l’aide de l’API Java digitally-sign-pdf-documents-using-the-java-api
Signez numériquement un document PDF à l’aide de l’API Signature (Java) :
-
Inclure les fichiers du projet
Incluez les fichiers clients JAR, tels que adobe-signatures-client.jar, dans le paramètre Classpath de votre projet Java.
-
Créer un client Signatures
- Créez un objet
ServiceClientFactory
qui contient des propriétés de connexion. - Créez un objet
SignatureServiceClient
en utilisant son constructeur et en transmettant l’objetServiceClientFactory
.
- Créez un objet
-
Obtenir le document PDF à signer
- Créez un objet
java.io.FileInputStream
qui représente le document PDF à signer numériquement en utilisant son constructeur et en transmettant 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’objetjava.io.FileInputStream
.
- Créez un objet
-
Signer le document PDF
Signez le document PDF en appelant la méthode
sign
de l’objetSignatureServiceClient
et en transmettant les valeurs suivantes :- Un objet
com.adobe.idp.Document
représentant le document PDF à signer. - Une valeur de chaîne qui représente le nom du champ de signature qui contiendra la signature numérique.
- Un objet
Credential
représentant les informations d’identification utilisées pour signer numériquement le document PDF. Créez un objetCredential
en appelant la méthodegetInstance
statique de l’objetCredential
et en transmettant une valeur de chaîne qui spécifie la valeur d’alias correspondant aux informations d’identification de sécurité. - Un objet
HashAlgorithm
spécifiant un membre de données statique qui représente l’algorithme de hachage à utiliser pour synthétiser le document PDF. Par exemple, vous pouvez spécifierHashAlgorithm.SHA1
pour utiliser l’algorithme SHA1. - Une valeur de chaîne qui représente la raison pour laquelle le document PDF a été signé numériquement.
- Valeur string représentant les informations de contact du signataire.
- Un objet
PDFSignatureAppearanceOptions
contrôlant l’aspect de la signature numérique. Vous pouvez, par exemple, utiliser cet objet pour ajouter un logo personnalisé à une signature numérique. - Un objet
java.lang.Boolean
indiquant si la révocation doit être vérifiée sur le certificat du signataire. - Un objet
OCSPOptionSpec
stockant 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écifiernull
. - Objet
CRLPreferences
stockant les préférences de la 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écifiernull
. - Objet
TSPPreferences
stockant les préférences pour la prise en charge du fournisseur d’horodatage (TSP). Ce paramètre est facultatif et peut êtrenull
. Pour plus d’informations, voir Référence de l’API AEM Forms.
La méthode
sign
renvoie un objetcom.adobe.idp.Document
représentant le document PDF signé. - Un objet
-
Enregistrer le document PDF signé
- Créez un objet
java.io.File
et assurez-vous que l’extension du fichier est .pdf. - Appelez la méthode
com.adobe.idp.Document
de l’objetcopyToFile
et transmettezjava.io.File
pour copier le contenu de l’objetDocument
dans le fichier. Assurez-vous d’utiliser l’objetcom.adobe.idp.Document
qui a été retourné par la méthodesign
.
- Créez un objet
Voir également
Signer des documents PDF numériquement
Inclusion des fichiers de bibliothèque Java d’AEM Forms
Réglage des propriétés de la connexion
Signer numériquement des documents PDF à l’aide de l’API du service web digitally-signing-pdf-documents-using-the-web-service-api
Pour signer numériquement un document PDF à l’aide de l’API Signature (service web) :
-
Inclure les fichiers du projet
Créez un projet Microsoft .NET qui utilise MTOM. Veillez à utiliser la définition WSDL suivante :
http://localhost:8080/soap/services/SignatureService?WSDL&lc_version=9.0.1
.note note NOTE 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 constructeurSystem.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’attributlc_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 champSignatureServiceClient.Endpoint.Binding
. Convertissez la valeur de retour enBasicHttpBinding
. -
Définissez le champ
MessageEncoding
de l’objetSystem.ServiceModel.BasicHttpBinding
surWSMessageEncoding.Mtom
. Cette valeur garantit l’utilisation de MTOM. -
Activez l’authentification HTTP de base en effectuant les tâches suivantes :
- Attribuez le nom d’utilisateur AEM forms au champ
SignatureServiceClient.ClientCredentials.UserName.UserName
. - Attribuez la valeur de mot de passe correspondante au champ
SignatureServiceClient.ClientCredentials.UserName.Password
. - Attribuez la valeur constante
HttpClientCredentialType.Basic
au champBasicHttpBindingSecurity.Transport.ClientCredentialType
. - Affectez la valeur constante
BasicHttpSecurityMode.TransportCredentialOnly
au champBasicHttpBindingSecurity.Security.Mode
.
- Attribuez le nom d’utilisateur AEM forms au champ
-
-
Obtenir le document PDF à signer
- Créez un objet
BLOB
en utilisant son constructeur. L’objetBLOB
sert à 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 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éLength
de l’objetSystem.IO.FileStream
. - Renseignez le tableau d’octets avec les données de diffusion en appelant la méthode
Read
de l’objetSystem.IO.FileStream
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
le contenu du tableau d’octets.
- Créez un objet
-
Signer un document PDF
Signez le document PDF en appelant la méthode
sign
de l’objetSignatureServiceClient
et en transmettant les valeurs suivantes :- Un objet
BLOB
représentant le document PDF à signer. - Une valeur de chaîne qui représente le nom du champ de signature qui contiendra la signature numérique.
- Objet
Credential
représentant les informations d’identification utilisées pour la signature numérique du document PDF. Créez un objetCredential
en utilisant son constructeur et en spécifiant l’alias en attribuant une valeur à la propriétéalias
de l’objetCredential
. - Objet
HashAlgorithm
spécifiant un membre de données statique qui représente l’algorithme de hachage à utiliser pour condenser le document PDF. Par exemple, vous pouvez spécifierHashAlgorithm.SHA1
pour utiliser l’algorithme SHA1. - Une valeur booléenne qui indique si l’algorithme de hachage est utilisé.
- Une valeur de chaîne qui représente la raison pour laquelle le document PDF a été signé numériquement.
- Une valeur de chaîne représentant l’emplacement du signataire.
- Une valeur de chaîne représentant les informations de contact du signataire.
- Un objet
PDFSignatureAppearanceOptions
contrôlant l’aspect de la signature numérique. Vous pouvez, par exemple, utiliser cet objet pour ajouter un logo personnalisé à une signature numérique. - Un objet
System.Boolean
qui spécifie s’il faut effectuer une vérification de la révocation sur le certificat du signataire. Si cette vérification de la révocation est effectuée, elle est intégrée à la signature. La valeur par défaut est defalse
. - Un objet
OCSPOptionSpec
qui stocke les préférences pour la prise en charge du protocole OCSP (Online Certificate Status Protocol). Si la vérification de la révocation n’est pas effectuée, ce paramètre n’est pas utilisé et vous pouvez spécifiernull
. Pour plus d’informations sur cet objet, voir Référence de l’API AEM Forms. - Un objet
CRLPreferences
qui stocke les préférences de la 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écifiernull
. - Un objet
TSPPreferences
stockant les préférences pour la prise en charge du fournisseur d’horodatage (TSP). Ce paramètre est facultatif et peut êtrenull
.
La méthode
sign
renvoie un objetBLOB
représentant le document PDF signé. - Un objet
-
Enregistrer le document PDF signé
- Créez un objet
System.IO.FileStream
en utilisant son constructeur. Transmettez une valeur de chaîne représentant l’emplacement du fichier du document PDF signé et son mode d’ouverture. - Créez un tableau d’octets qui stocke le contenu de l’objet
BLOB
qui a été renvoyé par la méthodesign
. Renseignez le tableau d’octets en obtenant la valeur du membre de donnéesMTOM
de l’objetBLOB
. - Créez un objet
System.IO.BinaryWriter
en utilisant son constructeur et en transmettant l’objetSystem.IO.FileStream
. - Écrivez le contenu du tableau d’octets dans un fichier PDF en appelant la méthode
Write
de l’objetSystem.IO.BinaryWriter
et en transmettant le tableau d’octets.
- Créez un objet
Voir également
Signer des documents PDF numériquement
Appeler AEM Forms en utilisant MTOM
Appel d’AEM Forms à l’aide de SwaRef
Signer numériquement les formulaires interactifs digitally-signing-interactive-forms
Vous pouvez signer un formulaire interactif que le service Forms crée. Prenons comme exemple le workflow suivant :
- Fusionnez un formulaire PDF basé sur XFA créé à l’aide de Designer avec des données de formulaire situées dans un document XML à l’aide du service Forms. Le serveur Forms effectue le rendu d’un formulaire interactif.
- Vous pouvez signer le formulaire interactif à l’aide de l’API du service Signature.
Le résultat est 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. Puisque vous signez le formulaire renvoyé par le service Forms, assurez-vous que le formulaire contient un champ de signature.
Lors de l’utilisation de l’API du service Forms, 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 lorsqu’il est ouvert 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.
Résumé des étapes summary_of_steps-4
Pour signer numériquement un formulaire interactif que le service Forms renvoie, procédez comme suit :
- Incluez les fichiers de projet.
- Créez un client Forms et Signatures.
- Accédez au formulaire interactif à l’aide du service Forms.
- Signez le formulaire interactif.
- Enregistrez le document PDF signé en tant que fichier PDF.
Inclure des 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 d’accès aux classes de votre projet :
- adobe-livecycle-client.jar
- adobe-usermanager-client.jar
- adobe-signatures-client.jar
- adobe-forms-client.jar
- adobe-utility.jar (obligatoire si AEM Forms est déployé sur JBoss)
- jbossall-client.jar (obligatoire si AEM Forms est déployé sur JBoss)
Pour plus d’informations sur l’emplacement de ces fichiers JAR, voir Inclure des fichiers de bibliothèque Java AEM Forms.
Créer un client Forms et Signatures
Comme ce workflow appelle les services Forms et Signature, créez un client de service Forms et un client de service Signature.
Obtenir le formulaire interactif à l’aide du service Forms
Vous pouvez utiliser le service Forms pour obtenir le formulaire PDF interactif à signer. À partir d’AEM Forms, vous pouvez transmettre un objet com.adobe.idp.Document
au service Forms contenant le formulaire à générer. 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.
renderPDFForm2
.Signer le 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 :
- Options d’aspect
- Vérification de la révocation
- Valeurs d’horodatage
Pour définir les options d’apparence, utilisez un objet PDFSignatureAppearanceOptionSpec
. Par exemple, vous pouvez afficher la date dans une signature en appelant la méthode setShowDate
de l’objet PDFSignatureAppearanceOptionSpec
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 en tant que fichier PDF. Le fichier PDF peut être ouvert dans Acrobat ou Adobe Reader.
Voir également
Signer numériquement un formulaire interactif à l’aide de l’API Java
Signer numériquement un formulaire interactif à l’aide de l’API du service web
Inclusion des fichiers de bibliothèque Java d’AEM Forms
Réglage des propriétés de la connexion
Signer des documents PDF numériquement
Effectuer le rendu de formulaires PDF interactifs
Signer numériquement un formulaire interactif à l’aide de l’API Java digitally-sign-an-interactive-form-using-the-java-api
Signez numériquement un formulaire interactif à l’aide de l’API Forms et Signature (Java) :
-
Inclure les fichiers du projet
Incluez les fichiers JAR client, tels que adobe-signatures-client.jar et adobe-forms-client.jar, dans le paramètre Classpath de votre projet Java.
-
Créez un client Forms et Signatures
- Créez un objet
ServiceClientFactory
qui contient des propriétés de connexion. - Créez un objet
SignatureServiceClient
en utilisant son constructeur et en transmettant l’objetServiceClientFactory
. - Créez un objet
FormsServiceClient
en utilisant son constructeur et en transmettant l’objetServiceClientFactory
.
- Créez un objet
-
Obtenir le formulaire interactif à l’aide du service Forms
-
Créez un objet
java.io.FileInputStream
représentant le document PDF à transmettre au service Forms en utilisant 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’objetjava.io.FileInputStream
. -
Créez un objet
java.io.FileInputStream
représentant le document XML contenant les données de formulaire à transmettre au service Forms en utilisant 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’objetjava.io.FileInputStream
. -
Créez un objet
PDFFormRenderSpec
utilisé pour définir les options d’exécution. Appelez la méthodesetGenerateServerAppearance
de l’objetPDFFormRenderSpec
et transmetteztrue
. -
Appelez la méthode
renderPDFForm2
de l’objetFormsServiceClient
et transmettez les valeurs suivantes :- Un objet
com.adobe.idp.Document
contenant le formulaire PDF à afficher. - Un objet
com.adobe.idp.Document
contenant les données à fusionner avec le formulaire. - Un objet
PDFFormRenderSpec
stockant les options d’exécution. - Un objet
URLSpec
contenant les valeurs URI requises par le service Forms. Vous pouvez indiquer la valeurnull
pour ce paramètre. - Un objet
java.util.HashMap
stockant les pièces jointes. Ce paramètre est facultatif et vous pouvez spécifiernull
si vous ne souhaitez pas joindre de fichiers au formulaire.
La méthode
renderPDFForm2
renvoie un objetFormsResult
contenant un flux de données de formulaire. - Un objet
-
Récupérez le formulaire PDF en appelant la méthode
getOutputContent
de l’objetFormsResult
. Cette méthode renvoie un objetcom.adobe.idp.Document
représentant le formulaire interactif.
-
-
Signer le formulaire interactif
Signez le document PDF en appelant la méthode
sign
de l’objetSignatureServiceClient
et en transmettant les valeurs suivantes :- Un objet
com.adobe.idp.Document
représentant le document PDF à signer. Assurez-vous que cet objet correspond à l’objetcom.adobe.idp.Document
obtenu à partir du service Forms. - Une valeur de chaîne représentant le nom du champ de signature signé.
- Un objet
Credential
représentant les informations d’identification utilisées pour signer le document PDF. Créez un objetCredential
en appelant la méthodegetInstance
statique de l’objetCredential
. Transmettez une valeur de chaîne spécifiant la valeur d’alias correspondant aux informations d’identification de sécurité. - Un objet
HashAlgorithm
spécifiant un membre de données statique qui représente l’algorithme de hachage à utiliser pour synthétiser le document PDF. Par exemple, vous pouvez spécifierHashAlgorithm.SHA1
pour utiliser l’algorithme SHA1. - Une valeur de chaîne qui représente la raison pour laquelle le document PDF a été signé numériquement.
- Valeur string représentant les informations de contact du signataire.
- Un objet
PDFSignatureAppearanceOptions
contrôlant l’aspect de la signature numérique. Vous pouvez, par exemple, utiliser cet objet pour ajouter un logo personnalisé à une signature numérique. - Un objet
java.lang.Boolean
indiquant si la révocation doit être vérifiée sur le certificat du signataire. - Un objet
OCSPPreferences
stockant 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écifiernull
. - Objet
CRLPreferences
stockant les préférences de la 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écifiernull
. - Un objet
TSPPreferences
stockant les préférences pour la prise en charge du fournisseur d’horodatage (TSP). Ce paramètre est facultatif et peut êtrenull
.
La méthode
sign
renvoie un objetcom.adobe.idp.Document
représentant le document PDF signé. - Un objet
-
Enregistrer le document PDF signé
- Créez un objet
java.io.File
et assurez-vous que l’extension du fichier est .pdf. - Appelez la méthode
copyToFile
de l’objetcom.adobe.idp.Document
et transmettezjava.io.File
afin de copier le contenu de l’objetDocument
dans le fichier. Veillez à utiliser l’objetcom.adobe.idp.Document
que la méthodesign
a renvoyé.
- Créez un objet
Voir également
Signer numériquement les formulaires interactifs
Inclusion des fichiers de bibliothèque Java d’AEM Forms
Réglage des propriétés de la connexion
Signer numériquement un formulaire interactif à l’aide de l’API du service web digitally-sign-an-interactive-form-using-the-web-service-api
Signez numériquement un formulaire interactif à l’aide de l’API Forms et Signature (service web) :
-
Inclure les fichiers du projet
Créez un projet Microsoft .NET qui utilise MTOM. Étant donné que 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
.Puisque le type de données
BLOB
est commun aux deux références de service, qualifiez pleinement le type de donnéesBLOB
lors de son utilisation. Dans le démarrage rapide du service web correspondant, toutes les instancesBLOB
sont entièrement qualifiées.note note NOTE Remplacez localhost
par l’adresse IP du serveur hébergeant AEM Forms. -
Créez un client Forms et Signatures
-
Créez un objet
SignatureServiceClient
en utilisant son constructeur par défaut. -
Créez un objet
SignatureServiceClient.Endpoint.Address
en utilisant le constructeurSystem.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’attributlc_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 champSignatureServiceClient.Endpoint.Binding
. Convertissez la valeur de retour enBasicHttpBinding
. -
Définissez le champ
MessageEncoding
de l’objetSystem.ServiceModel.BasicHttpBinding
surWSMessageEncoding.Mtom
. Cette valeur garantit l’utilisation de MTOM. -
Activez l’authentification HTTP de base en effectuant les tâches suivantes :
- Attribuez le nom d’utilisateur AEM forms au champ
SignatureServiceClient.ClientCredentials.UserName.UserName
. - Attribuez la valeur de mot de passe correspondante au champ
SignatureServiceClient.ClientCredentials.UserName.Password
. - Attribuez la valeur constante
HttpClientCredentialType.Basic
au champBasicHttpBindingSecurity.Transport.ClientCredentialType
.
- Attribuez le nom d’utilisateur AEM forms au champ
-
Attribuez la valeur constante
BasicHttpSecurityMode.TransportCredentialOnly
au champBasicHttpBindingSecurity.Security.Mode
.
note note NOTE Répétez ces étapes pour le client de service Forms. -
-
Obtenir le formulaire interactif à l’aide du service Forms
-
Créez un objet
BLOB
en utilisant son constructeur. L’objetBLOB
sert à 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 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éLength
de l’objetSystem.IO.FileStream
. -
Renseignez le tableau d’octets avec les données de diffusion en appelant la méthode
Read
de l’objetSystem.IO.FileStream
et en transmettant le tableau d’octets, la position de départ et la longueur du flux à lire. -
Remplissez l’objet
BLOB
en attribuant à sa propriétéMTOM
le contenu du tableau d’octets. -
Créez un objet
BLOB
en utilisant son constructeur. L’objetBLOB
est utilisé pour stocker des 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 de formulaire, 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éLength
de l’objetSystem.IO.FileStream
. -
Renseignez le tableau d’octets avec les données de diffusion en appelant la méthode
Read
de l’objetSystem.IO.FileStream
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
le contenu du tableau d’octets. -
Créez un objet
PDFFormRenderSpec
utilisé pour définir les options d’exécution. Attribuez la valeurtrue
au champPDFFormRenderSpec
de l’objetgenerateServerAppearance
. -
Appelez la méthode
renderPDFForm2
de l’objetFormsServiceClient
et transmettez les valeurs suivantes :- Un objet
BLOB
contenant le formulaire PDF à afficher. - Un objet
BLOB
contenant les données à fusionner avec le formulaire. - Un objet
PDFFormRenderSpec
stockant les options d’exécution. - Un objet
URLSpec
contenant les valeurs URI requises par le service Forms. Vous pouvez indiquer la valeurnull
pour ce paramètre. - Un objet
java.util.HashMap
stockant les pièces jointes. Ce paramètre est facultatif et vous pouvez spécifiernull
si vous ne souhaitez pas joindre de fichiers au formulaire. - Paramètre de sortie long utilisé pour stocker le nombre de pages dans le formulaire.
- Paramètre de sortie de chaîne utilisé pour la valeur des paramètres régionaux.
- Valeur
FormResult
étant un paramètre de sortie utilisé pour stocker le formulaire interactif.
- Un objet
-
Récupérez le formulaire PDF en appelant le champ
outputContent
de l’objetFormsResult
. Ce champ stocke un objetBLOB
représentant le formulaire interactif.
-
-
Signer le formulaire interactif
Signez le document PDF en appelant la méthode
sign
de l’objetSignatureServiceClient
et en transmettant les valeurs suivantes :- Objet
BLOB
représentant le document PDF à signer. Utilisez l’instanceBLOB
renvoyée par le service Forms. - Une valeur de chaîne représentant le nom du champ de signature signé.
- Objet
Credential
représentant les informations d’identification utilisées pour signer le document PDF. Créez un objetCredential
en utilisant son constructeur et en spécifiant l’alias en attribuant une valeur à la propriétéalias
de l’objetCredential
. - Objet
HashAlgorithm
spécifiant un membre de données statique qui représente l’algorithme de hachage à utiliser pour condenser le document PDF. Par exemple, vous pouvez spécifierHashAlgorithm.SHA1
pour utiliser l’algorithme SHA1. - Une valeur booléenne qui indique si l’algorithme de hachage est utilisé.
- Une valeur de chaîne qui représente la raison pour laquelle le document PDF a été signé numériquement.
- Une valeur de chaîne représentant l’emplacement du signataire.
- Une valeur de chaîne représentant les informations de contact du signataire.
- Un objet
PDFSignatureAppearanceOptions
contrôlant l’aspect de la signature numérique. Vous pouvez, par exemple, utiliser cet objet pour ajouter un logo personnalisé à une signature numérique. - Un objet
System.Boolean
qui spécifie s’il faut effectuer une vérification de la révocation sur le certificat du signataire. Si cette vérification de la révocation est effectuée, elle est intégrée à la signature. La valeur par défaut est defalse
. - Un objet
OCSPPreferences
qui stocke les préférences pour la prise en charge du protocole OCSP (Online Certificate Status Protocol). Si la vérification de la révocation n’est pas effectuée, ce paramètre n’est pas utilisé et vous pouvez spécifiernull
. Pour plus d’informations sur cet objet, voir Référence de l’API AEM Forms. - Un objet
CRLPreferences
qui stocke les préférences de la 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écifiernull
. - Un objet
TSPPreferences
stockant les préférences pour la prise en charge du fournisseur d’horodatage (TSP). Ce paramètre est facultatif et peut êtrenull
.
La méthode
sign
renvoie un objetBLOB
représentant le document PDF signé. - Objet
-
Enregistrer le document PDF signé
- Créez un objet
System.IO.FileStream
en utilisant son constructeur. Transmettez une valeur de chaîne représentant l’emplacement du fichier du document PDF signé et son mode d’ouverture. - Créez un tableau d’octets qui stocke le contenu de l’objet
BLOB
qui a été renvoyé par la méthodesign
. Renseignez le tableau d’octets en obtenant la valeur du membre de donnéesMTOM
de l’objetBLOB
. - Créez un objet
System.IO.BinaryWriter
en utilisant son constructeur et en transmettant l’objetSystem.IO.FileStream
. - Écrivez le contenu du tableau d’octets dans un fichier PDF en appelant la méthode
Write
de l’objetSystem.IO.BinaryWriter
et en transmettant le tableau d’octets.
- Créez un objet
Voir également
Signer numériquement les formulaires interactifs
Appeler AEM Forms en utilisant MTOM
Certification de documents PDF certifying-pdf-documents
Vous pouvez sécuriser un document de PDF en le certifiant avec un type particulier de signature appelé signature certifiée. Une signature certifiée se distingue d’une signature numérique de plusieurs manières :
- Elle doit être la première signature appliquée au document PDF ; cela veut dire que lorsque la signature certifiée est appliquée, tous les autres champs de signature du document doivent être non signés. Une seule signature certifiée est autorisée dans un document PDF. Si vous souhaitez signer ou certifier un document PDF, vous devez le certifier avant de le signer. Après avoir certifié un document PDF, vous pouvez signer numériquement des champs de signature supplémentaires.
- L’auteur ou l’auteur du document peut spécifier que le document peut être modifié de certaines manières sans invalider la signature certifiée. Par exemple, le document peut autoriser le remplissage de formulaires ou de commentaires. Si l’auteur ou l’autrice spécifie qu’une modification en particulier n’est pas autorisée, Acrobat empêche les utilisateurs et utilisatrices d’effectuer cette modification sur le document. Si de telles modifications sont effectuées, par exemple à l’aide d’une autre application, la signature certifiée est invalide et Acrobat génère un avertissement lorsqu’un utilisateur ouvre le document. (Avec des signatures non certifiées, les modifications ne sont pas empêchées et les opérations de modification normales n’invalident pas la signature d’origine.)
- Au moment de la signature, le document est analysé à la recherche de types de contenu spécifiques susceptibles de rendre le contenu d’un document ambigu ou trompeur. Par exemple, une annotation peut assombrir du texte sur une page qui est essentiel pour comprendre ce qui est certifié. Une explication (attestation légale) peut être fournie pour ce type de contenu.
Vous pouvez certifier des documents PDF par programmation en utilisant l’API Java du service Signature ou l’API du service web de Signature. Lorsque vous certifiez un document PDF, vous devez faire référence à 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é, consultez le guide Installation et déploiement d’AEM Forms pour votre serveur d’applications.
Vous pouvez ajouter la valeur de configuration suivante dans le fichier cknfastrc, qui se trouve sous /opt/nfast/cknfastrc (ou c:\nfast\cknfastrc) :
CKNFAST_ASSUME_SINGLE_PROCESS=0
Après avoir ajouté cette valeur de configuration au fichier cknfastrc, les nouvelles informations d’identification peuvent être utilisées sans redémarrer le serveur d’applications J2EE.
Résumé des étapes summary_of_steps-5
Pour certifier un document PDF, effectuez les tâches suivantes :
- Incluez les fichiers de projet.
- Créez un client Signature.
- Obtenez le document PDF à certifier.
- Certifiez le document PDF.
- Enregistrez le document PDF certifié en tant que fichier PDF.
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 d’accès aux classes de votre projet :
- adobe-livecycle-client.jar
- adobe-usermanager-client.jar
- adobe-signatures-client.jar
- adobe-utility.jar (obligatoire si AEM Forms est déployé sur JBoss)
- jbossall-client.jar (obligatoire si AEM Forms est déployé sur JBoss)
Pour plus d’informations sur l’emplacement de ces fichiers JAR, voir Inclure des fichiers de bibliothèque Java AEM Forms.
Créer un client Signature
Avant d’effectuer par programmation une opération Signature, vous devez créer un client Signature.
Obtenir le 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é. Vous pouvez ajouter un champ de signature à l’aide de Designer ou par programmation. Pour plus d’informations sur l’ajout par programmation d’un champ de signature, voir Ajouter des champs de signature.
Certifier un document PDF
Pour certifier correctement un document PDF, vous avez besoin des valeurs d’entrée suivantes utilisées par le service Signature pour certifier un document PDF :
- Document PDF : un document PDF qui contient un champ de signature, qui est un champ de formulaire contenant une représentation graphique de la signature certifiée. Un document PDF doit contenir un champ de signature pour pouvoir être certifié. Vous pouvez ajouter un champ de signature à l’aide de Designer ou par programmation. (Voir Ajouter des champs de signature.)
- Nom du champ de signature : nom complet du champ de signature certifié. La valeur suivante en est un exemple :
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 null est transmise comme nom du champ, un champ de signature invisible est créé et certifié dynamiquement. - Informations d’identification de sécurité : informations d’identification utilisées pour certifier le document PDF. Ces informations d’identification de sécurité contiennent un mot de passe et un alias, qui doivent correspondre à un alias qui apparaît dans les informations d’identification se trouvant dans le service d’informations d’identification. L’alias correspond à 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).
- Algorithme de hachage : algorithme de hachage à utiliser pour condenser le document PDF.
- Motif de la signature : une valeur qui s’affiche dans Acrobat ou Adobe Reader afin que d’autres utilisateurs connaissent le motif pour lequel le document PDF a été certifié.
- Emplacement du signataire : emplacement du signataire spécifié par les informations d’identification.
- Coordonnées : les informations de contact, telles que l’adresse et le numéro de téléphone du signataire.
- Informations d’autorisation : autorisations qui contrôlent les actions qu’un utilisateur final peut effectuer sur un document sans que la signature certifiée ne devienne invalide. Par exemple, vous pouvez définir l’autorisation de sorte que toute modification apportée au document PDF entraîne la non-validité de la signature certifiée.
- Explication légale : lorsqu’un document est certifié, il est automatiquement analysé pour rechercher des types de contenu spécifiques susceptibles de rendre le contenu d’un document ambigu ou déroutant. Par exemple, une annotation peut assombrir du texte sur une page qui est essentiel pour comprendre ce qui est certifié. Le processus d’analyse génère des avertissements concernant ces types de contenu. Cette valeur fournit une explication supplémentaire du contenu qui pourrait générer des avertissements.
- Options d’aspect : options qui contrôlent l’aspect de la signature certifiée. Par exemple, la signature certifiée peut afficher des informations sur la date.
- Vérification de révocation : cette valeur indique si la vérification de révocation est effectuée pour le certificat du signataire. Le paramètre par défaut de
false
signifie que la vérification de révocation n’est pas effectuée. - Paramètres OCSP : paramètres de 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. Vous pouvez, par exemple, spécifier l’URL du serveur qui fournit des informations sur les informations d’identification que vous utilisez pour vous connecter au document PDF.
- Paramètres CRL : paramètres des préférences de liste de révocation des certificats (CRL) si la vérification de révocation est effectuée. Par exemple, vous pouvez spécifier de toujours vérifier si des informations d’identification ont été révoquées.
- Horodatage : paramètres qui définissent les informations d’horodatage appliquées à la signature certifiée. Un horodatage indique que des données spécifiques ont été établies avant une certaine période. Ces connaissances contribuent à établir une relation de confiance entre le signataire et le vérificateur.
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
Certifier des documents PDF à l’aide de l’API Java
Certifier les documents PDF à l’aide de l’API du service web
Inclusion des fichiers de bibliothèque Java d’AEM Forms
Réglage des propriétés de la connexion
Ajouter des champs de signature
Certifier des documents PDF à l’aide de l’API Java certify-pdf-documents-using-the-java-api
Certifiez un document PDF à l’aide de l’API Signature (Java) :
-
Inclure les fichiers du projet
Incluez les fichiers JAR du client, tels que le fichier adobe-signatures-client.jar, dans le chemin d’accès aux classes de votre projet Java.
-
Créer une Signature client
- Créez un objet
ServiceClientFactory
qui contient des propriétés de connexion. - Créez un objet
SignatureServiceClient
en utilisant son constructeur et en transmettant l’objetServiceClientFactory
.
- Créez un objet
-
Obtenir le document PDF à certifier
- Créez un objet
java.io.FileInputStream
représentant le document PDF à certifier en utilisant son constructeur et en transmettant une valeur de chaîne spécifiant l’emplacement du document PDF. - Créez un objet
com.adobe.idp.Document
en utilisant son constructeur et en transmettant l’objetjava.io.FileInputStream
.
- Créez un objet
-
Certifier le document PDF
Certifiez le document PDF en appelant la méthode
certify
de l’objetSignatureServiceClient
et en transmettant les valeurs suivantes :- L’objet
com.adobe.idp.Document
représentant le document PDF à certifier. - Une valeur de chaîne représentant le nom du champ de signature qui contient la signature.
- Un objet
Credential
représentant les informations d’identification utilisées pour certifier le document PDF. Créez un objetCredential
en appelant la méthodegetInstance
statique de l’objetCredential
et en transmettant une valeur de chaîne spécifiant la valeur de l’alias correspondant aux informations d’identification de sécurité. - Un objet
HashAlgorithm
spécifiant un membre de données statique qui représente l’algorithme de hachage utilisé pour condenser le document PDF. Par exemple, vous pouvez spécifierHashAlgorithm.SHA1
pour utiliser l’algorithme SHA1. - Valeur string représentant la raison pour laquelle le document PDF a été certifié.
- Valeur string représentant les informations de contact du signataire.
- Un objet
MDPPermissions
spécifiant les actions pouvant être effectuées sur le document PDF et qui invalide la signature. - Un objet
PDFSignatureAppearanceOptions
qui contrôle l’aspect de la signature certifiée. Si vous le souhaitez, modifiez l’aspect de la signature en appelant une méthode, telle quesetShowDate
. - Une valeur de chaîne qui fournit une explication des actions qui invalident la signature.
- Un objet
java.lang.Boolean
spécifiant si la révocation doit être vérifiée sur le certificat du signataire. Si cette vérification de la révocation est effectuée, elle est intégrée à la signature. La valeur par défaut est defalse
. - Objet
java.lang.Boolean
spécifiant si le champ de signature en cours de certification est verrouillé. Si le champ est verrouillé, le champ de signature est marqué comme étant en lecture seule, ses propriétés ne peuvent pas être modifiées et il ne peut pas être effacé par un utilisateur ne disposant pas d’autorisations requises. La valeur par défaut est defalse
. - Un objet
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écifiernull
. Pour plus d’informations sur cet objet, voir Référence de l’API AEM Forms. - Un objet
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écifiernull
. - Un objet
TSPPreferences
qui stocke les préférences pour la prise en charge du fournisseur d’horodatage (TSP). Par exemple, après avoir créé un objetTSPPreferences
, vous pouvez définir l’URL du serveur TSP en appelant la méthodesetTspServerURL
de l’objetTSPPreferences
. Ce paramètre est facultatif et peut êtrenull
. Pour plus d’informations, voir Référence des services pour AEM Forms.
La méthode
certify
renvoie un objetcom.adobe.idp.Document
représentant le document PDF certifié. - L’objet
-
Enregistrer le document PDF certifié en tant que fichier PDF
- Créez un objet
java.io.File
et assurez-vous que l’extension du fichier est .pdf. - Appelez la méthode
copyToFile
de l’objetcom.adobe.idp.Document
afin de copier le contenu de l’objetcom.adobe.idp.Document
dans le fichier.
- Créez un objet
Voir également
Certification de documents PDF
Didacticiel de mise en route (mode SOAP) : certification d’un document PDF à l’aide de l’API Java
Inclusion des fichiers de bibliothèque Java d’AEM Forms
Réglage des propriétés de la connexion
Certifier les documents PDF à l’aide de l’API du service web certify-pdf-documents-using-the-web-service-api
Certifiez un document PDF à l’aide de l’API Signature (service web) :
-
Inclure les fichiers du projet
Créez un projet Microsoft .NET qui utilise MTOM. Veillez à utiliser la définition WSDL suivante :
http://localhost:8080/soap/services/SignatureService?WSDL&lc_version=9.0.1
.note note NOTE Remplacez localhost
par l’adresse IP du serveur hébergeant AEM Forms. -
Créer une Signature client
-
Créez un objet
SignatureServiceClient
en utilisant son constructeur par défaut. -
Créez un objet
SignatureServiceClient.Endpoint.Address
en utilisant le constructeurSystem.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’attributlc_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 champSignatureServiceClient.Endpoint.Binding
. Convertissez la valeur de retour enBasicHttpBinding
. -
Définissez le champ
MessageEncoding
de l’objetSystem.ServiceModel.BasicHttpBinding
surWSMessageEncoding.Mtom
. Cette valeur garantit l’utilisation de MTOM. -
Activez l’authentification HTTP de base en effectuant les tâches suivantes :
- Attribuez le nom d’utilisateur AEM forms au champ
SignatureServiceClient.ClientCredentials.UserName.UserName
. - Attribuez la valeur de mot de passe correspondante au champ
SignatureServiceClient.ClientCredentials.UserName.Password
. - Attribuez la valeur constante
HttpClientCredentialType.Basic
au champBasicHttpBindingSecurity.Transport.ClientCredentialType
. - Attribuez la valeur constante
BasicHttpSecurityMode.TransportCredentialOnly
au champBasicHttpBindingSecurity.Security.Mode
.
- Attribuez le nom d’utilisateur AEM forms au champ
-
-
Obtenir le document PDF à certifier
- Créez un objet
BLOB
en utilisant son constructeur. L’objetBLOB
sert à stocker un document PDF certifié. - Créez un objet
System.IO.FileStream
en appelant son constructeur et en transmettant une valeur de chaîne qui représente l’emplacement fichier du document PDF à certifier 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éLength
de l’objetSystem.IO.FileStream
. - Renseignez le tableau d’octets avec les données de diffusion en appelant la méthode
Read
de l’objetSystem.IO.FileStream
et en transmettant le tableau d’octets, la position de départ et la longueur du flux à lire. - Renseignez l’objet
BLOB
en attribuant à som membre de donnéesMTOM
le contenu du tableau d’octets.
- Créez un objet
-
Certifier le document PDF
Certifiez le document PDF en appelant la méthode
certify
de l’objetSignatureServiceClient
et en transmettant les valeurs suivantes :- L’objet
BLOB
représentant le document PDF à certifier. - Une valeur de chaîne représentant le nom du champ de signature qui contient la signature.
- Objet
Credential
représentant les informations d’authentification utilisées pour certifier le document PDF. Créez un objetCredential
en utilisant son constructeur, puis spécifiez l’alias en affectant une valeur à la propriétéCredential
de l’objetalias
. - Objet
HashAlgorithm
spécifiant un membre de données statique qui représente l’algorithme de hachage utilisé pour résumer le document PDF. Par exemple, vous pouvez spécifierHashAlgorithm.SHA1
pour utiliser l’algorithme SHA1. - Valeur booléenne spécifiant si l’algorithme de hachage est utilisé.
- Valeur string représentant la raison pour laquelle le document PDF a été certifié.
- Valeur string représentant l’emplacement du signataire.
- Valeur string représentant les informations de contact du signataire.
- Membre de données statique de l’objet
MDPPermissions
spécifiant les actions pouvant être effectuées sur le document PDF qui invalide la signature. - Valeur booléenne spécifiant s’il faut utiliser l’objet
MDPPermissions
qui a été transmis comme valeur du paramètre précédent. - Valeur string expliquant les actions qui invalident la signature.
- Objet
PDFSignatureAppearanceOptions
contrôlant l’aspect de la signature certifiée. Créez un objetPDFSignatureAppearanceOptions
en utilisant son constructeur. Vous pouvez modifier l’aspect de la signature en définissant l’un de ses membres de données. - Objet
System.Boolean
spécifiant si la révocation doit être vérifiée sur le certificat du signataire. Si cette vérification de la révocation est effectuée, elle est intégrée à la signature. La valeur par défaut est defalse
. - Objet
System.Boolean
spécifiant si le champ de signature en cours de certification est verrouillé. Si le champ est verrouillé, le champ de signature est marqué comme étant en lecture seule, ses propriétés ne peuvent pas être modifiées et il ne peut pas être effacé par un utilisateur ne disposant pas d’autorisations requises. La valeur par défaut est defalse
. - Objet
System.Boolean
spécifiant si le champ de signature est verrouillé. Autrement dit, si vous transmetteztrue
au paramètre précédent, transmetteztrue
à ce paramètre. - Objet
OCSPPreferences
stockant des préférences pour la prise en charge du protocole OCSP (Online Certificate Status Protocol), qui fournit des informations sur le statut 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écifiernull
. - Objet
CRLPreferences
stockant les préférences de la 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écifiernull
. - Objet
TSPPreferences
stockant les préférences pour la prise en charge du fournisseur d’horodatage (TSP). Par exemple, après avoir créé un objetTSPPreferences
, vous pouvez définir l’URL du TSP en définissant le membre de donnéestspServerURL
de l’objetTSPPreferences
. Ce paramètre est facultatif et peut êtrenull
.
La méthode
certify
renvoie un objetBLOB
représentant le document PDF certifié. - L’objet
-
Enregistrer le document PDF certifié en tant que fichier PDF
- Créez un objet
System.IO.FileStream
en appelant son constructeur et en transmettant une valeur de chaîne représentant l’emplacement du document PDF qui contiendra le document PDF certifié et le mode d’ouverture du fichier. - Créez un tableau d’octets qui stocke le contenu de l’objet
BLOB
qui a été renvoyé par la méthodecertify
. Renseignez le tableau d’octets en obtenant la valeur du membre de donnéesbinaryData
de l’objetBLOB
. - Créez un objet
System.IO.BinaryWriter
en utilisant son constructeur et en transmettant l’objetSystem.IO.FileStream
. - Écrivez le contenu du tableau d’octets dans un fichier PDF en appelant la méthode
Write
de l’objetSystem.IO.BinaryWriter
et en transmettant le tableau d’octets.
- Créez un objet
Voir également
Certification de documents PDF
Appeler AEM Forms en utilisant MTOM
Appel d’AEM Forms à l’aide de SwaRef
Vérifier des signatures numériques verifying-digital-signatures
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 le statut et les propriétés de la signature, comme 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 le statut de l’identité du signataire. Par exemple, si vous vérifiez la signature numérique dans le document illustré ci-dessus, il en ressort que l’identité du signataire est inconnue.
Résumé des étapes summary_of_steps-6
Pour vérifier une signature numérique, procédez comme suit :
- Incluez les fichiers de projet.
- Créez un client Signature.
- Accédez au document PDF contenant la signature à vérifier.
- Définissez les options d’exécution PKI.
- Vérifiez la signature numérique.
- Déterminez le statut de la signature.
- Déterminez l’identité du signataire.
Inclure des 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 d’accès aux classes de votre projet :
- adobe-livecycle-client.jar
- adobe-usermanager-client.jar
- adobe-signatures-client.jar
- adobe-utility.jar (obligatoire si AEM Forms est déployé sur JBoss)
- jbossall-client.jar (obligatoire si AEM Forms est déployé sur JBoss)
Pour plus d’informations sur l’emplacement de ces fichiers JAR, voir Inclure des fichiers de bibliothèque Java AEM Forms.
Créer un client Signature
Avant d’effectuer une opération du service Signature par programmation, créez un client de service Signature.
Accéder au document PDF contenant la signature à vérifier
Pour vérifier une signature utilisée pour signer ou certifier numériquement un document PDF, accédez à un document PDF contenant une signature.
Définir 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 :
- Heure de vérification
- Vérification de la révocation
- Valeurs d’horodatage
Dans le cadre de la définition de ces options, vous pouvez indiquer l’heure de vérification. Par exemple, vous pouvez sélectionner l’heure actuelle (l’heure sur l’ordinateur du programme de validation), qui indique d’utiliser l’heure actuelle. Pour plus d’informations sur les différentes valeurs temporelles, reportez-vous à la valeur d’é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, reportez-vous à la valeur d’é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 de la liste de révocation des certificats (CRL) à l’aide d’un objet CRLOptionSpec
. Cependant, si vous ne spécifiez pas d’URL au 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 plus rapide. (Voir Protocole OCSP (Online Certificate Status Protocol).)
Vous pouvez définir la liste de révocation des certificats et l’ordre du serveur OCSP que le service Signature utilise à l’aide des applications et services Adobe. Par exemple, si le serveur OCSP est d’abord défini dans Applications et services Adobe, alors le serveur OCSP est vérifié, 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 des serveurs CRL et OCSP sont ignorées.
CRLOptionSpec
et d’un objet OCSPOptionSpec
. Par exemple, pour remplacer le serveur CRL, vous pouvez appeler la méthode setLocalURI
de l’objet CRLOptionSpec
.L’horodatage est le processus de suivi de l’heure de modification d’un document signé ou certifié. Une fois le document signé, personne ne peut le modifier. L’horodatage aide à assurer la validité d’un document signé ou certifié. Vous pouvez définir des options d’horodatage à l’aide d’un objet TSPOptionSpec
. Par exemple, vous pouvez spécifier l’URL d’un serveur de fournisseur d’horodatage (TSP).
VerificationTime.CURRENT_TIME
et la vérification de révocation est définie sur RevocationCheckStyle.BestEffort
. Étant donné qu’aucune information du serveur CRL ou OCSP n’est spécifiée, les informations du serveur sont obtenues à partir du certificat.Vérifier 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 validation. Si un utilisateur tente de vérifier une signature à l’heure actuelle et que l’heure de signature est postérieure à l’heure actuelle et se situe dans les 65 minutes, le service Signature ne crée pas d’erreur de vérification.
Déterminer l’état de la signature
Dans le cadre de la vérification d’une signature numérique, vous pouvez vérifier l’état de la signature.
Déterminer l’identité du signataire
Vous pouvez déterminer l’identité du signataire, qui peut être l’une des valeurs suivantes :
- Inconnu : ce signataire est inconnu, car la vérification du signataire ne peut pas être effectuée.
- Fiable : ce signataire est fiable.
- Non fiable : ce signataire n’est pas fiable.
Voir également
Vérifier des signatures numériques à l’aide de l’API Java
Vérifier des signatures numériques à l’aide de l’API de service web
Inclusion des fichiers de bibliothèque Java d’AEM Forms
Réglage des propriétés de la connexion
Vérifier des signatures numériques à l’aide de l’API Java verify-digital-signatures-using-the-java-api
Vérifiez une signature numérique à l’aide de l’API du service Signature (Java) :
-
Inclure les fichiers du projet
Incluez les fichiers clients JAR, tels que adobe-signatures-client.jar, dans le paramètre Classpath de votre projet Java.
-
- Créez un objet
ServiceClientFactory
qui contient des propriétés de connexion. - Créez un objet
SignatureServiceClient
en utilisant son constructeur et en transmettant l’objetServiceClientFactory
.
- Créez un objet
-
Obtenir le document PDF qui contient la signature à vérifier
- Créez un objet
java.io.FileInputStream
qui représente 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. - Créez un objet
com.adobe.idp.Document
en utilisant son constructeur et en transmettant l’objetjava.io.FileInputStream
.
- Créez un objet
-
Définir les options d’exécution PKI
- Créez un objet
PKIOptions
en utilisant son constructeur. - Définissez l’heure de vérification en appelant la méthode
setVerificationTime
de l’objetPKIOptions
et en transmettant une valeur d’énumérationVerificationTime
qui spécifie l’heure de vérification. - Définissez l’option de vérification de la révocation en appelant la méthode
setRevocationCheckStyle
de l’objetPKIOptions
et en transmettant une valeur d’énumérationRevocationCheckStyle
qui spécifie s’il faut effectuer une vérification de révocation.
- Créez un objet
-
Vérifier la signature numérique
Vérifiez la signature en appelant la méthode
verify2
de l’objetSignatureServiceClient
et en transmettant les valeurs suivantes :- Un objet
com.adobe.idp.Document
qui contient un document PDF signé numériquement ou certifié. - Valeur de chaîne représentant le nom du champ de signature qui contient la signature à vérifier.
- Un objet
PKIOptions
qui contient des options d’exécution PKI. - Une instance
VerifySPIOptions
qui contient des informations SPI. Vous pouvez spécifiernull
pour ce paramètre.
La méthode
verify2
renvoie un objetPDFSignatureVerificationInfo
qui contient des informations pouvant être utilisées pour vérifier la signature numérique. - Un objet
-
Déterminer le statut de la signature
- Déterminez le statut de la signature en appelant la méthode
getStatus
de l’objetPDFSignatureVerificationInfo
. Cette méthode renvoie un objetSignatureStatus
qui spécifie le statut de la signature. Par exemple, si un document PDF signé n’est pas modifié, cette méthode renvoieSignatureStatus.DocumentSigNoChanges
.
- Déterminez le statut de la signature en appelant la méthode
-
Déterminer l’identité du signataire
- Déterminez l’identité du signataire en appelant la méthode
getSigner
de l’objetPDFSignatureVerificationInfo
. Cette méthode renvoie un objetIdentityInformation
. - Appelez la méthode
getStatus
de l’objetIdentityInformation
pour déterminer l’identité du signataire. Cette méthode renvoie une valeur d’énumérationIdentityStatus
qui spécifie l’identité. Par exemple, si le signataire est approuvé, cette méthode renvoieIdentityStatus.TRUSTED
.
- Déterminez l’identité du signataire en appelant la méthode
Voir également
Vérifier des signatures numériques
Inclusion des fichiers de bibliothèque Java d’AEM Forms
Réglage des propriétés de la connexion
Vérifier des signatures numériques à l’aide de l’API de service web verify-digital-signatures-using-the-web-service-api
Vérifiez une signature numérique en utilisant l’API du service Signature (Web Service) :
-
Inclure les fichiers du projet
Créez un projet Microsoft .NET qui utilise MTOM. Veillez à utiliser la définition WSDL suivante :
http://localhost:8080/soap/services/SignatureService?WSDL&lc_version=9.0.1
.note note NOTE Remplacez localhost
par l’adresse IP du serveur hébergeant AEM Forms. -
Créer une Signature client
-
Créez un objet
SignatureServiceClient
en utilisant son constructeur par défaut. -
Créez un objet
SignatureServiceClient.Endpoint.Address
en utilisant le constructeurSystem.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’attributlc_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 champSignatureServiceClient.Endpoint.Binding
. Convertissez la valeur de retour enBasicHttpBinding
. -
Définissez le champ
MessageEncoding
de l’objetSystem.ServiceModel.BasicHttpBinding
surWSMessageEncoding.Mtom
. Cette valeur garantit l’utilisation de MTOM. -
Activez l’authentification HTTP de base en effectuant les tâches suivantes :
- Attribuez le nom d’utilisateur AEM forms au champ
SignatureServiceClient.ClientCredentials.UserName.UserName
. - Attribuez la valeur de mot de passe correspondante au champ
SignatureServiceClient.ClientCredentials.UserName.Password
. - Attribuez la valeur constante
HttpClientCredentialType.Basic
au champBasicHttpBindingSecurity.Transport.ClientCredentialType
. - Affectez la valeur constante
BasicHttpSecurityMode.TransportCredentialOnly
au champBasicHttpBindingSecurity.Security.Mode
.
- Attribuez le nom d’utilisateur AEM forms au champ
-
-
Obtenir le document PDF qui contient la signature à vérifier
- Créez un objet
BLOB
en utilisant son constructeur. L’objetBLOB
sert à stocker un document PDF qui contient une signature numérique ou certifiée à vérifier. - Créez un objet
System.IO.FileStream
en appelant son constructeur. Transmettez une valeur de chaîne représentant l’emplacement du fichier du document PDF signé et son mode d’ouverture. - 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éLength
de l’objetSystem.IO.FileStream
. - Renseignez le tableau d’octets avec le flux de données en appelant la méthode
Read
de l’objetSystem.IO.FileStream
. Transmettez 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
le contenu du tableau d’octets.
- Créez un objet
-
Définir les options d’exécution PKI
- Créez un objet
PKIOptions
en utilisant son constructeur. - Définissez l’heure de vérification en affectant au membre de données
verificationTime
de l’objetPKIOptions
une valeur d’énumérationVerificationTime
spécifiant l’heure de vérification. - Définissez l’option de vérification de révocation en affectant au membre de données
revocationCheckStyle
de l’objetPKIOptions
une valeur d’énumérationRevocationCheckStyle
qui spécifie s’il faut effectuer une vérification de révocation.
- Créez un objet
-
Vérifier la signature numérique
Vérifiez la signature en appelant la méthode
verify2
de l’objetSignatureServiceClient
et en transmettant les valeurs suivantes :- Objet
BLOB
contenant un document PDF signé numériquement ou certifié. - Valeur de chaîne représentant le nom du champ de signature qui contient la signature à vérifier.
- Un objet
PKIOptions
qui contient des options d’exécution PKI. - Une instance
VerifySPIOptions
qui contient des informations SPI. Vous pouvez spécifiernull
pour ce paramètre.
La méthode
verify2
renvoie un objetPDFSignatureVerificationInfo
qui contient des informations pouvant être utilisées pour vérifier la signature numérique. - Objet
-
Déterminer le statut de la signature
Déterminez le statut de la signature en obtenant la valeur du membre de données
status
de l’objetPDFSignatureVerificationInfo
. Ce membre de données stocke un objetSignatureStatus
indiquant le statut de la signature. Par exemple, si un document PDF signé est modifié, le membre de donnéesstatus
stocke la valeurSignatureStatus.DocumentSigNoChanges
. -
Déterminer l’identité du signataire
- Déterminez l’identité du signataire en récupérant la valeur du membre de données
signer
de l’objetPDFSignatureVerificationInfo
. Ce membre renvoie un objetIdentityInformation
. - Récupérez le membre de données
status
de l’objetIdentityInformation
pour déterminer l’identité du signataire. Ce membre de données renvoie une valeur d’énumérationIdentityStatus
indiquant l’identité. Par exemple, si le signataire est fiable, ce membre renvoieIdentityStatus.TRUSTED
.
- Déterminez l’identité du signataire en récupérant la valeur du membre de données
Voir également
Vérifier des signatures numériques
Appeler AEM Forms en utilisant MTOM
Appel d’AEM Forms à l’aide de SwaRef
Vérification de plusieurs signatures numériques verifying-multiple-digital-signatures
AEM Forms permet de vérifier toutes les signatures numériques qui se trouvent dans un document PDF. Supposons qu’un document PDF contienne 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 dirigeant. Vous pouvez utiliser l’API du service Signature pour vérifier toutes les signatures contenues dans un 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 vous familiariser avec la vérification d’une signature numérique unique.
Résumé des étapes summary_of_steps-7
Pour vérifier plusieurs signatures numériques, procédez comme suit :
- Incluez les fichiers de projet.
- Créez un client Signature.
- Accédez au document PDF qui contient les signatures à vérifier.
- Définissez les options d’exécution PKI.
- Récupérez toutes les signatures numériques.
- Effectuez une itération sur toutes les signatures.
Inclure des 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 d’accès aux classes de votre projet :
- adobe-livecycle-client.jar
- adobe-usermanager-client.jar
- adobe-signatures-client.jar
- adobe-utility.jar (obligatoire si AEM Forms est déployé sur JBoss)
- jbossall-client.jar (obligatoire si AEM Forms est déployé sur JBoss)
Pour plus d’informations sur l’emplacement de ces fichiers JAR, voir Inclure des fichiers de bibliothèque Java AEM Forms.
Créer un client Signature
Avant d’effectuer une opération du service Signature par programmation, créez un client de service Signature.
Accéder au document PDF contenant les signatures à vérifier
Pour vérifier une signature utilisée pour signer ou certifier numériquement un document PDF, accédez à un document PDF contenant une signature.
Définir 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 :
- Heure de vérification
- Vérification de la révocation
- Valeurs d’horodatage
Dans le cadre de la définition de ces options, vous pouvez indiquer l’heure de vérification. Par exemple, vous pouvez sélectionner l’heure actuelle (l’heure sur l’ordinateur du programme de validation), qui indique d’utiliser l’heure actuelle. Pour plus d’informations sur les différentes valeurs temporelles, reportez-vous à la valeur d’é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, reportez-vous à la valeur d’é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 à un serveur de liste de révocation des certificats (CRL) à l’aide d’un objet CRLOptionSpec
. Cependant, si vous ne spécifiez pas d’URL à 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 plus rapide. (Voir Protocole OCSP (Online Certificate Status Protocol).)
Vous pouvez définir la liste de révocation des certificats et l’ordre du serveur OCSP que le service Signature utilise à l’aide des applications et services Adobe. Par exemple, si le serveur OCSP est défini en premier dans Applications et services Adobe, le serveur OCSP est d’abord vérifié, 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 des serveurs CRL et OCSP sont ignorées.
CRLOptionSpec
et d’un objet OCSPOptionSpec
. Par exemple, pour remplacer le serveur CRL, vous pouvez appeler la méthode setLocalURI
de l’objet CRLOptionSpec
.L’horodatage est le processus de suivi de l’heure de modification d’un document signé ou certifié. Une fois le document signé, personne ne peut le modifier. L’horodatage aide à assurer la validité d’un document signé ou certifié. Vous pouvez définir des options d’horodatage à l’aide d’un objet TSPOptionSpec
. Par exemple, vous pouvez spécifier l’URL d’un serveur de fournisseur d’horodatage (TSP).
VerificationTime.CURRENT_TIME
et la vérification de révocation est définie sur RevocationCheckStyle.BestEffort
. Étant donné qu’aucune information du serveur CRL ou OCSP n’est spécifiée, les informations du serveur sont obtenues à partir du certificat.Récupérer toutes les signatures numériques
Pour vérifier toutes les signatures numériques figurant 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.
Effectuer une itération sur toutes les signatures
Effectuez une itération sur chaque signature. Autrement dit, pour chaque signature, vérifiez la signature numérique, l’identité du signataire ainsi que l’état de chaque signature. (Voir Vérifier des signatures numériques.)
Voir également
Vérifier plusieurs signatures numériques à l’aide de l’API Java
Vérifier plusieurs signatures numériques à l’aide de l’API Web Service
Inclusion des fichiers de bibliothèque Java d’AEM Forms
Réglage des propriétés de la connexion
Vérifier plusieurs signatures numériques à l’aide de l’API Java verify-multiple-digital-signatures-using-the-java-api
Vérifiez plusieurs signatures numériques à l’aide de l’API du service Signature (Java) :
-
Inclure les fichiers du projet
Incluez les fichiers clients JAR, tels que adobe-signatures-client.jar, dans le paramètre Classpath de votre projet Java.
-
Créer une Signature client
- Créez un objet
ServiceClientFactory
qui contient des propriétés de connexion. - Créez un objet
SignatureServiceClient
en utilisant son constructeur et en transmettant l’objetServiceClientFactory
.
- Créez un objet
-
Accéder au document PDF contenant les signatures à vérifier
- Créez un objet
java.io.FileInputStream
représentant 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. - Créez un objet
com.adobe.idp.Document
en utilisant son constructeur et en transmettant l’objetjava.io.FileInputStream
.
- Créez un objet
-
Définir des options d’exécution PKI
- Créez un objet
PKIOptions
en utilisant son constructeur. - Définissez l’heure de vérification en appelant la méthode
setVerificationTime
de l’objetPKIOptions
et en transmettant une valeur d’énumérationVerificationTime
qui spécifie l’heure de vérification. - Définissez l’option de vérification de révocation en appelant la méthode
setRevocationCheckStyle
de l’objetPKIOptions
et en transmettant une valeur d’énumérationRevocationCheckStyle
qui spécifie s’il faut effectuer une vérification de révocation.
- Créez un objet
-
Récupérer toutes les signatures numériques
Appelez la méthode
verifyPDFDocument
de l’objetSignatureServiceClient
et transmettez les valeurs suivantes :- Objet
com.adobe.idp.Document
contenant un document PDF contenant plusieurs signatures numériques. - Objet
PKIOptions
contenant des options d’exécution PKI. - Une instance
VerifySPIOptions
qui contient des informations SPI. Vous pouvez indiquernull
pour ce paramètre.
La méthode
verifyPDFDocument
renvoie un objetPDFDocumentVerificationInfo
qui contient des informations sur toutes les signatures numériques figurant dans le document PDF. - Objet
-
Faire une itération sur toutes les signatures
- Parcourez toutes les signatures en appelant la méthode
getVerificationInfos
de l’objetPDFDocumentVerificationInfo
. Cette méthode renvoie un objetjava.util.List
dont chaque élément est un objetPDFSignatureVerificationInfo
. Utilisez un objetjava.util.Iterator
pour effectuer une itération sur la liste des signatures. - En utilisant l’objet
PDFSignatureVerificationInfo
, vous pouvez effectuer des tâches telles que déterminer le statut de la signature en appelant la méthodegetStatus
de l’objetPDFSignatureVerificationInfo
. Cette méthode renvoie un objetSignatureStatus
dont le membre de données statique vous informe sur le statut de la signature. Par exemple, si la signature est inconnue, cette méthode renvoie la valeurSignatureStatus.DocumentSignatureUnknown
.
- Parcourez toutes les signatures en appelant la méthode
Voir également
Vérification de plusieurs signatures numériques
Inclusion des fichiers de bibliothèque Java d’AEM Forms
Vérifier des signatures numériques
Réglage des propriétés de la connexion
Vérifier plusieurs signatures numériques à l’aide de l’API du service web verifying-multiple-digital-signatures-using-the-web-service-api
Vérifiez plusieurs signatures numériques à l’aide de l’API du service de signature (service Web) :
-
Inclure les fichiers du projet
Créez un projet Microsoft .NET qui utilise MTOM. Veillez à utiliser la définition WSDL suivante :
http://localhost:8080/soap/services/SignatureService?WSDL&lc_version=9.0.1
.note note NOTE Remplacez localhost
par l’adresse IP du serveur hébergeant AEM Forms. -
Créer une Signature client
-
Créez un objet
SignatureServiceClient
en utilisant son constructeur par défaut. -
Créez un objet
SignatureServiceClient.Endpoint.Address
en utilisant le constructeurSystem.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’attributlc_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 champSignatureServiceClient.Endpoint.Binding
. Convertissez la valeur de retour enBasicHttpBinding
. -
Définissez le champ
MessageEncoding
de l’objetSystem.ServiceModel.BasicHttpBinding
surWSMessageEncoding.Mtom
. Cette valeur garantit l’utilisation de MTOM. -
Activez l’authentification HTTP de base en effectuant les tâches suivantes :
- Attribuez le nom d’utilisateur AEM forms au champ
SignatureServiceClient.ClientCredentials.UserName.UserName
. - Attribuez la valeur de mot de passe correspondante au champ
SignatureServiceClient.ClientCredentials.UserName.Password
. - Attribuez la valeur constante
HttpClientCredentialType.Basic
au champBasicHttpBindingSecurity.Transport.ClientCredentialType
. - Affectez la valeur constante
BasicHttpSecurityMode.TransportCredentialOnly
au champBasicHttpBindingSecurity.Security.Mode
.
- Attribuez le nom d’utilisateur AEM forms au champ
-
-
Accéder au document PDF contenant les signatures à vérifier
- Créez un objet
BLOB
en utilisant son constructeur. L’objetBLOB
stocke un document PDF qui contient plusieurs signatures numériques à vérifier. - Créez un objet
System.IO.FileStream
en utilisant son constructeur. Transmettez une valeur de chaîne qui représente l’emplacement du fichier du document PDF et son mode d’ouverture. - 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éLength
de l’objetSystem.IO.FileStream
. - Renseignez le tableau d’octets avec le flux de données en appelant la méthode
Read
de l’objetSystem.IO.FileStream
. Transmettez 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
le contenu du tableau d’octets.
- Créez un objet
-
Définir des options d’exécution PKI
- Créez un objet
PKIOptions
en utilisant son constructeur. - Définissez l’heure de vérification en attribuant au membre de données
verificationTime
de l’objetPKIOptions
une valeur d’énumérationVerificationTime
qui spécifie l’heure de vérification. - Définissez l’option de vérification de révocation en attribuant au membre de données
revocationCheckStyle
de l’objetPKIOptions
une valeur d’énumérationRevocationCheckStyle
qui indique s’il faut effectuer une vérification de révocation.
- Créez un objet
-
Récupérer toutes les signatures numériques
Appelez la méthode
verifyPDFDocument
de l’objetSignatureServiceClient
et transmettez les valeurs suivantes :- Objet
BLOB
contenant un document PDF contenant plusieurs signatures numériques. - Objet
PKIOptions
contenant des options d’exécution PKI. - Un objet
VerifySPIOptions
contenant des informations SPI. Vous pouvez spécifier la valeur null pour ce paramètre.
La méthode
verifyPDFDocument
renvoie un objetPDFDocumentVerificationInfo
contenant des informations sur toutes les signatures numériques figurant dans le document PDF. - Objet
-
Faire une itération sur toutes les signatures
- Faites une itération sur toutes les signatures en obtenant le membre de données
verificationInfos
de l’objetPDFDocumentVerificationInfo
. Ce membre de données renvoie un tableauObject
où chaque élément représente un objetPDFSignatureVerificationInfo
. - En utilisant l’objet
PDFSignatureVerificationInfo
, vous pouvez effectuer des tâches comme déterminer l’état de la signature en obtenant le membre de donnéesstatus
de l’objetPDFSignatureVerificationInfo
. Ce membre de données renvoie un objetSignatureStatus
dont le membre de données statique vous informe de l’état de la signature. Par exemple, si la signature est inconnue, cette méthode renvoieSignatureStatus.DocumentSignatureUnknown
.
- Faites une itération sur toutes les signatures en obtenant le membre de données
Voir également
Vérification de plusieurs signatures numériques
Appeler AEM Forms en utilisant MTOM
Appel d’AEM Forms à l’aide de SwaRef
Supprimer des signatures numériques removing-digital-signatures
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’apposer une signature numérique à un champ de signature contenant déjà une signature, une exception sera générée.
Résumé des étapes summary_of_steps-8
Pour supprimer une signature numérique d’un champ de signature, procédez comme suit :
- Incluez les fichiers de projet.
- Créez un client Signature.
- Accédez au document PDF contenant une signature à supprimer.
- Supprimez la signature numérique du champ de signature.
- Enregistrez le document PDF au format PDF.
Inclure des 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 d’accès aux classes de votre projet :
- adobe-livecycle-client.jar
- adobe-usermanager-client.jar
- adobe-signatures-client.jar
- adobe-utility.jar (obligatoire si AEM Forms est déployé sur JBoss)
- jbossall-client.jar (obligatoire si AEM Forms est déployé sur JBoss)
Pour plus d’informations sur l’emplacement de ces fichiers JAR, voir Inclure des fichiers de bibliothèque Java AEM Forms.
Créer un client Signature
Avant d’effectuer par programmation une opération du service Signature, vous devez créer un client du service Signature.
Accéder au document PDF contenant une signature à supprimer
Pour supprimer une signature dans un document PDF, vous devez accéder à 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 disposer des autorisations nécessaires pour 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
Supprimer des signatures numériques à l’aide de l’API Java
Supprimer des signatures numériques à l’aide de l’API de service web
Inclusion des fichiers de bibliothèque Java d’AEM Forms
Réglage des propriétés de la connexion
Ajouter des champs de signature
Supprimer des signatures numériques à l’aide de l’API Java remove-digital-signatures-using-the-java-api
Supprimez une signature numérique à l’aide de l’API de signature (Java) :
-
Inclure les fichiers du projet
Incluez les fichiers JAR du client, tels que le fichier adobe-signatures-client.jar, dans le chemin d’accès aux classes de votre projet Java.
-
Créez un client Signature.
- Créez un objet
ServiceClientFactory
qui contient des propriétés de connexion. - Créez un objet
SignatureServiceClient
en utilisant son constructeur et en transmettant l’objetServiceClientFactory
.
- Créez un objet
-
Accéder au document PDF contenant une signature à supprimer
- Créez un objet
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 qui spécifie l’emplacement du document PDF. - Créez un objet
com.adobe.idp.Document
en utilisant son constructeur et en transmettant l’objetjava.io.FileInputStream
.
- Créez un objet
-
Supprimer la signature numérique du champ de signature
Supprimez la signature numérique d’un champ de signature en appelant la méthode
clearSignatureField
de l’objetSignatureServiceClient
et en transmettant les valeurs suivantes :- Un objet
com.adobe.idp.Document
qui représente le document PDF contenant la signature à supprimer. - Une valeur de chaîne qui spécifie le nom du champ de signature qui contient la signature numérique.
La méthode
clearSignatureField
renvoie un objetcom.adobe.idp.Document
qui représente le document PDF dont la signature numérique a été supprimée. - Un objet
-
Enregistrer le document PDF en tant que fichier PDF
- Créez un objet
java.io.File
et assurez-vous que l’extension du fichier est .pdf. - Appelez la méthode
copyToFile
de l’objetcom.adobe.idp.Document
. Transmettez l’objetjava.io.File
pour copier le contenu de l’objetcom.adobe.idp.Document
dans le fichier. Assurez-vous d’utiliser l’objetDocument
qui a été retourné par la méthodeclearSignatureField
.
- Créez un objet
Voir également
Supprimer des signatures numériques
Inclusion des fichiers de bibliothèque Java d’AEM Forms
Réglage des propriétés de la connexion
Supprimer des signatures numériques à l’aide de l’API de service web remove-digital-signatures-using-the-web-service-api
Supprimez une signature numérique en utilisant l’API de signature (service Web) :
-
Inclure les fichiers du projet
Créez un projet Microsoft .NET qui utilise MTOM. Veillez à utiliser la définition WSDL suivante :
http://localhost:8080/soap/services/SignatureService?WSDL&lc_version=9.0.1
.note note NOTE Remplacez localhost
par l’adresse IP du serveur hébergeant AEM Forms. -
Créer une Signature client
-
Créez un objet
SignatureServiceClient
en utilisant son constructeur par défaut. -
Créez un objet
SignatureServiceClient.Endpoint.Address
en utilisant le constructeurSystem.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’attributlc_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 champSignatureServiceClient.Endpoint.Binding
. Convertissez la valeur de retour enBasicHttpBinding
. -
Définissez le champ
MessageEncoding
de l’objetSystem.ServiceModel.BasicHttpBinding
surWSMessageEncoding.Mtom
. Cette valeur garantit l’utilisation de MTOM. -
Activez l’authentification HTTP de base en effectuant les tâches suivantes :
- Attribuez le nom d’utilisateur AEM forms au champ
SignatureServiceClient.ClientCredentials.UserName.UserName
. - Attribuez la valeur de mot de passe correspondante au champ
SignatureServiceClient.ClientCredentials.UserName.Password
. - Attribuez la valeur constante
HttpClientCredentialType.Basic
au champBasicHttpBindingSecurity.Transport.ClientCredentialType
. - Affectez la valeur constante
BasicHttpSecurityMode.TransportCredentialOnly
au champBasicHttpBindingSecurity.Security.Mode
.
- Attribuez le nom d’utilisateur AEM forms au champ
-
-
Accéder au document PDF contenant une signature à supprimer
- Créez un objet
BLOB
en utilisant son constructeur. L’objetBLOB
sert à stocker un document PDF qui contient une signature numérique à supprimer. - 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 PDF signé 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éLength
de l’objetSystem.IO.FileStream
. - Renseignez le tableau d’octets avec le flux de données en appelant la méthode
Read
de l’objetSystem.IO.FileStream
. Transmettez le tableau d’octets, la position de départ et la longueur du flux à lire. - Renseignez l’objet
BLOB
en attribuant le contenu du tableau d’octets à sa propriétéMTOM
.
- Créez un objet
-
Supprimer la signature numérique du champ de signature
Supprimez la signature numérique en appelant la méthode
clearSignatureField
de l’objetSignatureServiceClient
et en transmettant les valeurs suivantes :- Un objet
BLOB
qui contient le document PDF signé. - Une valeur de chaîne représentant le nom du champ de signature qui contient la signature numérique à supprimer.
La méthode
clearSignatureField
renvoie un objetBLOB
qui représente le document PDF dont la signature numérique a été supprimée. - Un objet
-
Enregistrer le document PDF en tant que fichier PDF
- 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 PDF contenant un champ de signature vide et le mode d’ouverture du fichier. - Créez un tableau d’octets qui stocke le contenu de l’objet
BLOB
qui a été renvoyé par la méthode design
. Renseignez le tableau d’octets en obtenant la valeur du membre de donnéesMTOM
de l’objetBLOB
. - Créez un objet
System.IO.BinaryWriter
en appelant son constructeur et en transmettant l’objetSystem.IO.FileStream
. - Ecrivez le contenu du tableau d’octets dans le fichier PDF en appelant la méthode
Write
de l’objetSystem.IO.BinaryWriter
et en transmettant le tableau d’octets.
- Créez un objet
Voir également
Supprimer des signatures numériques
Appeler AEM Forms en utilisant MTOM
Appel d’AEM Forms à l’aide de SwaRef