| |
| Posté le 20 décembre 2017 - 11:48 |
Bonjour,
Nous développons des services REST en java. Ceux-ci sont sécurisés à l'aide de OAuth2. Nous souhaitons utiliser Windev côté client afin de développer nos IHM(s). Conformément à OAuth2, nous pouvons utiliser la méthode "Autorisation avec les identifiants du propriétaire de la ressource : Resource Owner Password Credentials Grant" car le serveur d’autorisation et le client (windev) sont développés par notre société donc la même entité.
Nous avons fait des tests avec Windev afin de récupérer le token mais rien ne marche !
Oauth2Params est un OAuth2Paramètres Oauth2Params..ClientID = "windev-client" Oauth2Params..ClientSecret="password" Oauth2Params..URLToken = "https://localhost:9191/uaa/oauth/token" Oauth2Params..Scope ="read"
monToken est un AuthToken = AuthIdentifie(Oauth2Params) Trace("Token : " + monToken) et d'autres tests infructueux !
La fonction AuthIdentifie essaie d'ouvrir une fenêtre d’identification de l’utilisateur conformément au protocole OAuth 2.0 (cf doc) : attente permanente ! . Ce n'est pas le comportement que nous souhaitons. Comment lui préciser d'utiliser le grant_type=password mais de lui fournir également le username/password de l'utilisateur (Resource Owner) qui seront récupérés par notre propre fenêtre de login windev?
Ce type d'autorisation est prévue dans la spécification OAuth2. Cela fonctionne parfaitement avec un client java ou un client web mais qu'en est-il en Windev ?
Merci pour vos réponses car nos futurs développement sont conditionnés par le fait que cette fonctionnalité soit prise en charge par windev. |
| |
| |
| | | |
|
| | |
| |
| Posté le 15 octobre 2018 - 12:07 |
| Je ne sais pas si vous avez eu la réponse à votre question mais j'ai le même besoin... |
| |
| |
| | | |
|
| | |
| |
| Posté le 21 décembre 2018 - 09:48 |
Bonjour,
Avez-vous obtenu une réponse à votre besoin ?
Merci, Cyril |
| |
| |
| | | |
|
| | |
| |
| Posté le 22 janvier 2019 - 13:08 |
| Même soucis donc je suis preneur également si quelqu'un a une solution |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 405 messages |
|
| Posté le 29 avril 2019 - 10:41 |
Bonjour, J'ai essayé cette solution mais cela ne fonctionne pas, fenetre qui s'ouvre "En attente de l'authetification" ...
OAuth2Paramsest OAuth2Paramètres OAuth2Params..ClientID=ClientID OAuth2Params..ClientSecret=ClientSecret OAuth2Params..URLToken="https://xxxxxx/token" OAuth2Params..Scope="all" OAuth2Params..ParamètresSupplémentaires="grand_type=password&username="+userLogin+"&password="+userPassword
MonTokenest un AuthToken=AuthIdentifie(OAuth2Params)

Il y a aussi cette possibilité trouvé dans l'aide. (https://doc.pcsoft.fr/fr-FR/?1000022220&1000022220)
httpReq est une httpRequête httpReq..Méthode = httpPost httpReq..URL = "https://xxxxxxxxxxxx/oauth/token" httpReq..Utilisateur = sUserID httpReq..MotDePasse = sUserPassword httpReq..Contenu = "grant_type=client_credentials" httpReq..ContentType = "application/x-www-form-urlencoded"
httpRep est une httpRéponse = HTTPEnvoie(httpReq)
SI httpRep..CodeEtat = 200 ALORS oAuth2Param est un OAuth2Paramètres oAuth2Param..ClientID = sClientID oAuth2Param..ClientSecret = sClientSecret oAuth2Param..URLAuth = "https://xxxxxxxxxxxx/oauth/token" oAuth2Param..URLToken = "https://xxxxxxxxxxxx/oauth/token" MonToken est un AuthToken(oAuth2Param, httpRep..Contenu) FIN Dès la première requête j'ai une erreur . Dans le httpRep j’obtiens :
HTTP/1.1 401 Unauthorized Cache-Control: No-store Pragma: No-cache Content-Type: application/json;charset=utf-8 Server: Microsoft-IIS/8.5 WWW-Authenticate: Bearer Error="invalid_client", error_description="Bad client credentials" Access-Control-Allow-Origin: * Access-Control-Allow-Methods: Post, Get, OPTIONS, Delete Access-Control-Max-Age: 3600 Access-Control-Allow-Headers: x-requested-with, authorization, Content-Type X-Content-Type-Options: nosniff X-XSS-Protection: 1; mode=block X-Frame-Options: DENY X-Powered-by: ARR/2.5 X-Powered-by: ASP.NET Date: Mon, 29 Apr 2019 08:29:38 GMT Connection: Close Content-Length: 71
Plusieurs post sur le même soucis, et personne n'a d'idée ??
Merci à vous BON DEV |
| |
| |
| | | |
|
| | |
| |
| Posté le 29 mai 2019 - 18:10 |
Comme ça c'est bon chez moi :
sClientID est une chaîne = "xxxx" sClientSecret est une chaîne = "yyyy"
httpReq est une httpRequête httpReq..Méthode=httpPost httpReq..URL="https://.../oauth/token" httpReq..Contenu="grant_type=client_credentials&client_id="+sClientID+"&client_secret="+sClientSecret httpReq..ContentType="application/x-www-form-urlencoded"
httpRep est une httpRéponse=HTTPEnvoie(httpReq) ToastAffiche(httpRep..CodeEtat)
SI httpRep..CodeEtat=200 ALORS oAuth2Param est un OAuth2Paramètres oAuth2Param..ClientID=sClientID oAuth2Param..ClientSecret=sClientSecret oAuth2Param..URLAuth="https://.../oauth/token" oAuth2Param..URLToken="https://.../oauth/token" MonToken est un AuthToken(oAuth2Param,httpRep..Contenu) FIN |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 405 messages |
|
| Posté le 30 mai 2019 - 10:10 |
Bonjour, Merci pour cette réponse, je pense que l'on approche mais on y est pas encore .. car chez moi cela ne fonctionne toujours pas. En fait dans le code que tu a noté il manque 2 infos pour moi.!
En effet en plus du sClientID et sClientSecret il doit y avoir une authentification sur le post avec sUserID et sUserPassword.
J'ai bien tenté d'ajouter cela à ton code :
httpReq est une httpRequête httpReq..Méthode =httpPost httpReq..Utilisateur = sUserID <- ICI httpReq..MotDePasse = sUserPassword <- ET la ! httpReq..URL ="https://.../oauth/token" httpReq..Contenu ="grant_type=client_credentials&client_id="+sClientID+"&client_secret="+sClientSecret httpReq..ContentType ="application/x-www-form-urlencoded" Mais j'ai toujours un code HTTP/1.1 401 Unauthorized
Pour info en curl la ligne suivante fonctionne.
curl -d "grant_type=password&username=xxxUserxxx&password=xxxPasswordxxx" -u "xxxClientIDxxx:xxxClientSecretxxxx" https://.../oauth/token
BON DEV. |
| |
| |
| | | |
|
| | |
| |
| Posté le 03 juin 2019 - 16:43 |
J'ai testé avec ces lignes en plus ou en moins et je récupère bien le jeton dans les deux cas, comme si elles ne servaient à rien.
httpReq..Utilisateur = sUserID <- ICI httpReq..MotDePasse = sUserPassword <- ET la ! Cela est peut être dû au service API que je contacte qui n'en a pas besoin. |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 405 messages |
|
| Posté le 03 juin 2019 - 17:09 |
Oui, je pense aussi. Sur le site qui me me concerne ces identifiants sont obligatoires. C'est un site sécurisé et ne je peux pas donner les infos ici.
Mais le site fournis les info nécessaire en curl comme je l'ai noté dans le précédent message, il y a 4 identifiant, 2 pour accéder au site et 2 pour le token. |
| |
| |
| | | |
|
| | |
| |
| Posté le 08 novembre 2022 - 17:17 |
Bonjour,
Avez vous eu des infos sur le sujet? Je suis dans la même situation. Récupération de mail par IMAP en mode service avec authentification moderne.. Merci |
| |
| |
| | | |
|
| | |