PC SOFT

PROFESSIONAL NEWSGROUPS
WINDEVWEBDEV and WINDEV Mobile

Home → WEBDEV 2024 → Ajouter login/password sur un webservice Webdev
Ajouter login/password sur un webservice Webdev
Started by Laurent, Jan., 04 2018 11:56 AM - 7 replies
Posted on January, 04 2018 - 11:56 AM
Bonjour,

Est il possible d'ajouter une authentification sur un webservice Webdev ? J'ai testé en activant le Groupware utilisateur automatique, mais cela n'a rien changé, mon webservice est toujours accessible sans identification.

Merci d'avance pour votre aide.
Registered member
2,566 messages
Popularité : +222 (260 votes)
Posted on January, 04 2018 - 3:25 PM
Bonjour,

Si je ne m'abuse, cela se configure au niveau du serveur IIS ou Apache.

--
Cordialement,

Philippe SAINT-BERTIN
Géode Informatique
Posted on January, 04 2018 - 4:23 PM
Dans son message précédent, Philippe SB a écrit :
Bonjour,

Si je ne m'abuse, cela se configure au niveau du serveur IIS ou Apache.


sur un webservice, il faut gérer soit même sa procédure
d'authentification

Sur IIS ou Apache, ce sont des protections par Ip qui peuvent se faire
MAis ça c'est souvent quand les dev ne savent pas faire autrement.

Bon je vais essayer de faire une doc là dessus car j'ai tellement
galèré ...

---
Cet email a fait l'objet d'une analyse antivirus par AVG.
http://www.avg.com
Registered member
1,623 messages
Popularité : +100 (114 votes)
Posted on January, 04 2018 - 5:04 PM
Il y a différentes solutions possibles.

Par exemple, inclure dans chaque requête login et mot de passe. Cela peut se faire en passant ces informations directement dans le XML en tant qu'attributs a part entière.

Le web service récupère en plus de la requête, le mot de passe et le login et le vérifie dans une base.

L'avantage c'est qu'on peut tracer toute l'activité d'un compte dans une table Logs et gérer l'activation / désactivation / expiration du compte comme on le souhaite.

Inconvéniant, on passe les infos d'identification a chaque fois.. mais bon on passe en HTTPS pour se protéger.

Sinon (C'est la solution que j'ai choisi) il est aussi possible créer un WS qui génère un Token qui expire toutes les 24H par exemple (voir moins)
L'utilisateur peut ensuite adresser ses requetes en ne passant QUE le token et non plus ses identifiants.

La gestion des token peut se faire dans la base de données avec une date d'expiration .
Registered member
1,603 messages
Popularité : +64 (70 votes)
Posted on January, 05 2018 - 8:02 AM
Bonjour

J'applique une autre technique : celle de passer en paramètre(s) des chaines de caractères fonctions des caractères des autres paramètres (une sorte de cryptage maison avec des clés issues d'un générateur de mot de passe). Les comportements "anormaux" des requêtes sont mémorisés avec l'IP du demandeur pour un blocage pendant X jours après un certain nombre d'essais.

--
Cordialement
François

http://intra.fr http://intrasoftware.fr
Registered member
32 messages
Posted on January, 13 2020 - 9:59 AM
François C. a écrit :


Sinon (C'est la solution que j'ai choisi) il est aussi possible créer un WS qui génère un Token qui expire toutes les 24H par exemple (voir moins)
L'utilisateur peut ensuite adresser ses requetes en ne passant QUE le token et non plus ses identifiants.

La gestion des token peut se faire dans la base de données avec une date d'expiration .


Bonjour,
avez vous utilisé la fonction AuthToken par exemple?
Merci beaucoup
Registered member
324 messages
Popularité : +21 (51 votes)
Posted on January, 13 2020 - 2:59 PM
>Est il possible d'ajouter une authentification sur un webservice Webdev ?

Tout est possible, il suffit de le coder, et de définir comment transite l'information entre le client et le serveur.

Soit dans l'url en clair ou crypté (attention clair forcément c'est pas beau, même en HTTPS on évitera).
Soit dans l'en tête http (via les ...utilisateur et ..motdepasse).
Soit dans le corps de la requête http (la ca dépend, texte, json, ect), attention put obligatoire, avec du "httpget" le corps n'est jamais envoyé.
Soit via un système de jeton obtenu après avoir authentifier l'utilisateur.

Attention bien entendu, suivant le langage et les plateformes tout n'est pas forcément compatible.

La seule méthode que j'ai trouvé, j'ai pas bcp chercher non plus, c'est d'encoder dans un json l'user mot de passe que je passe via httprequête en mode put que je balance à mon webservices.

Et comme c'est juste du texte balancé avec une requête HTTP, ca marche partout, java, mobile, autre site web, windev, ect. Les fonctions typique genre restEnvoie, restRécupère ou les ..utilisateurs ..motdepasse, ne fonctionne pas sur toutes les plateformes

De là je me fabrique un jeton à utilisation unique pour chaque requête, bien entendu chaque réponse transmet en retour un token valide pour la requête suivante et ainsi de suite.

Bon dev !
Registered member
1,623 messages
Popularité : +100 (114 votes)
Posted on January, 14 2020 - 10:30 AM
Jean-Michel a écrit :
François C. a écrit :


Sinon (C'est la solution que j'ai choisi) il est aussi possible créer un WS qui génère un Token qui expire toutes les 24H par exemple (voir moins)
L'utilisateur peut ensuite adresser ses requetes en ne passant QUE le token et non plus ses identifiants.

La gestion des token peut se faire dans la base de données avec une date d'expiration .


Bonjour,
avez vous utilisé la fonction AuthToken par exemple?
Merci beaucoup



Non, je gère moi même cette fonction. L'utilisateur doit dans un premier temps faire une requête d'obtention de jeton (UUID) via une requête dédiée dans laquelle il spécifie son login et son Password.

Les UUID sont sotckés dans une table et ont une dateHeure d'expiration.
Par la suite chaque requête prend en paramètre l'UUID (plus besoin des identifiants du coup)