PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WEBDEV 2024 → Lister les certificats d'un poste client avec Webdev
Lister les certificats d'un poste client avec Webdev
Débuté par Astralgeist, 04 mai 2021 09:51 - 3 réponses
Membre enregistré
34 messages
Popularité : +0 (2 votes)
Posté le 04 mai 2021 - 09:51
Bonjour,

Nous développons avec Webdev 26, un site web permettant de signer électroniquement des documents.

Les utilisateurs du site utilisent des clés USB physiques, délivrées par Chambersign, qui sont branchées sur un port USB de leur poste.

Lorsque le site est déployé sur un serveur (Windows Server + IIS) et que nous listons les certificats avec la fonction CertificatListe(), cela ne nous renvoie pas les certificats présents sur le poste client mais uniquement ceux du serveur (sur lequel aucune clé physique ne sera branchée).

Cela est précisé dans l’aide de la fonction CertificatListe()

Existe-t-il un autre moyen pour signer électroniquement des documents via une clé physique branchée sur un poste client, avec Webdev ?


Pour info, nous utilisons ce code fourni dans la documentation :

// Récupération de la liste des certificats disponibles sur le poste
// (magasin personnel des certificats Windows)
tabCertificat est un tableau de Certificats
tabCertificat = CertificatListe()

// Parcours des certificats
UnCertificat est un Certificat
i est un entier
i = 1
POUR TOUT UnCertificat DE tabCertificat
// Teste si le certificat est valide pour signer
SI UnCertificat.ValidePourSignature = Vrai ALORS
// Ajoute le certificat dans un champ Combo
ListeAjoute(COMBO_CHOIXCERTIFICAT, UnCertificat..Nom + ...
"(" + UnCertificat.Emetteur + ")" + gLien(i))
i++
FIN
FIN


D’avance merci pour votre aide !
Membre enregistré
309 messages
Popularité : +31 (37 votes)
Posté le 04 mai 2021 - 10:15
Bonjour,
Je ne connais pas Chambersign, mais il faudrait tester avec la fonction CertificatClientInfo()

Sinon, (par exemple) vous pourrez aussi vous pencher sur l'écriture d'un serveur de websockets (petite appli windev qui tournerait localement chez vos clients, qui accéderait au magasin de certificats et qui communiquerait les infos au navigateur...)

Bon dev.
Membre enregistré
34 messages
Popularité : +0 (2 votes)
Posté le 04 mai 2021 - 11:28
Samir BOUCHETIBAT a écrit :
Bonjour,
Je ne connais pas Chambersign, mais il faudrait tester avec la fonction CertificatClientInfo()

Sinon, (par exemple) vous pourrez aussi vous pencher sur l'écriture d'un serveur de websockets (petite appli windev qui tournerait localement chez vos clients, qui accéderait au magasin de certificats et qui communiquerait les infos au navigateur...)

Bon dev.


Bonjour,

Merci pour votre réponse.

Chambersign est un organisme délivrant des certificats pour la signature électronique.

Nos collaborateurs reçoivent chacun une clé USB qui contient le certificat permettant de signer un document en leur nom.

En utilisant la fonction CertificatListe() dans une appli WINDEV, nous listons les certificats trouvés sur le poste client et là, aucun problème, nous pouvons remplir une liste dans laquelle se trouve natemment le certif de la clé USB, puis le sélectionner et signer le document.

Avec WEBDEV par contre, la fonction CertificatListe() nous renvoie les certifs du serveur Webdev. Mais comme il s'agit de clés USB, nous nous heurtons à un problème (les clés USB seront connectées aux postes clients de nos collaborateurs, et lors de la signature un code PIN leur est demandé).

Notre projet est un site web pour créer et gérer des demandes de collectes de signatures (de nos collaborateurs pour nos clients ou pour d'autres collaborateurs).

J'ai regardé la documentation de la fonction CertificatClientInfo(), qui dit : "Renvoie des informations sur le certificat utilisé par le poste client lors d'une connexion Web avec authentification par certificat."

Sauf erreur, cela concerne des authentifications sur des sites qui requièrent un certificat, mais n'est pas adapté à la solution que nous souhaitons mettre en place.
Posté le 05 mai 2021 - 09:15
Samir BOUCHETIBAT a écrit :
Bonjour,
Je ne connais pas Chambersign, mais il faudrait tester avec la fonction
CertificatClientInfo()

Sinon, (par exemple) vous pourrez aussi vous pencher sur l'écriture d'un
serveur de websockets (petite appli windev qui tournerait localement chez
vos clients, qui accéderait au magasin de certificats et qui communiquerait
les infos au navigateur...)

Bon dev.

Bonjour,

Merci pour votre réponse.

Chambersign est un organisme délivrant des certificats pour la signature
électronique.

Nos collaborateurs reçoivent chacun une clé USB qui contient le certificat
permettant de signer un document en leur nom.

En utilisant la fonction CertificatListe() dans une appli WINDEV, nous
listons les certificats trouvés sur le poste client et là, aucun problème,
nous pouvons remplir une liste dans laquelle se trouve natemment le certif de
la clé USB, puis le sélectionner et signer le document.

Avec WEBDEV par contre, la fonction CertificatListe() nous renvoie les
certifs du serveur Webdev. Mais comme il s'agit de clés USB, nous nous
heurtons à un problème (les clés USB seront connectées aux postes clients de
nos collaborateurs, et lors de la signature un code PIN leur est demandé).

Notre projet est un site web pour créer et gérer des demandes de collectes de
signatures (de nos collaborateurs pour nos clients ou pour d'autres
collaborateurs).

J'ai regardé la documentation de la fonction CertificatClientInfo(), qui dit :
"Renvoie des informations sur le certificat utilisé par le poste client lors
d'une connexion Web avec authentification par certificat."

Sauf erreur, cela concerne des authentifications sur des sites qui requièrent
un certificat, mais n'est pas adapté à la solution que nous souhaitons mettre
en place.


Bonjour
c'est le principe du web et des clients légers; cela ne va pas
exploiter les ressources de la machine cliente sans son autorisation.

Donc à part un upload de fichiers, difficile au code serveur de
"toucher" la partie cliente

--
L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast.
https://www.avast.com/antivirus