PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2025 → AOuth 2
AOuth 2
Débuté par Corinne BONHOMME, 05 nov. 2025 22:20 - 3 réponses
Membre enregistré
4 messages
Posté le 05 novembre 2025 - 22:20
Bonjour,

Dans mon organisation, on passe de AD vers Azur (azur registrary, si j'ai bien compris)
Et je ne suis pas un expert Azur, quelqu'un chez nous s'occupe de cette section, mais j'essai de passer à une authentification SSO avec Azur.

J'ai lu pas mal de message, ça marche presque :D
Merci en passant, à tout ceux qui donne des informations. Ça aide à avancer dans le noir.

LOCAL
l_OAuth2Params est un OAuth2Paramètres

l_OAuth2Params.ClientID = l_sAppID //ID d'application consultable dans "Vue d'ensemble"
l_OAuth2Params.ClientSecret = l_sSecretID //Le secret client ne doit pas être renseigné pour application de bureau
l_OAuth2Params.URLAuth = "https://login.microsoftonline.com/"+l_sDirectoryID+"/oauth2/v2.0/authorize"
l_OAuth2Params.URLToken = "https://login.microsoftonline.com/"+l_sDirectoryID+"/oauth2/v2.0/token"

l_OAuth2Params.ParamètresSupplémentaires = "force_reapprove=false"

//Ajouter user.read dans "API autorises" pour lire les informations de l'utilisateur connecté
l_OAuth2Params..Scope = "offline_access User.Read"

l_OAuth2Params.URLRedirection = "http://localhost:5000/" //"http://127.0.0.1:5000/"

// Demande d'authentification : ouvre la fenêtre de login
LOCAL
l_AuthMonToken est un AuthToken

// Demande d'authentification : ouvre la fenêtre de login
l_AuthMonToken = AuthIdentifie(l_OAuth2Params)

SI PAS l_AuthMonToken.Valide ALORS
Trace("/" + l_AuthMonToken.Valeur + "/")
Trace("La connexion a échouée"+RC+l_AuthMonToken.RéponseServeur)

Erreur("Erreur de connexion")
RENVOYER Faux
SINON
ToastAffiche("Connexion ok", toastCourt, cvMilieu, chCentre, VertClair)
RENVOYER Vrai
FIN


D'après ce que je comprend de nos recherches à plusieurs spécialistes, la demande arrive à azur, j'ai la fenêtre de connexion.
Le token à l'air d'être renvoyé par Azur, on le voit dans le navigateur (d'après l'expert à ce niveau), mais moi, ma variable l_AuthMonToken reste VIDE et la méthode .valide renvoie FAUX :-(

Donc le programme affiche l'erreur "Erreur de connexion" et la variable n'a aucune valeur

Questions :
On se demande s'il n'y a pas quelques choses au niveau du type d'adresse IP V4 versus V6, car avec la commande
netstat -ano | findstr LISTENING
on voit le port s'ouvrir mais pas sur une adresse 127.0.0.1 mais [::]:5000

Le port 5000 n'est pas utilisé par un autre mécanisme, il s'ouvre seulement quand on lance la connexion. On a vérifié.

Autre point, est-ce qu'il y aurait soit quelques choses à configurer dans Windev pour que je reçoive l'information en plus de ce code, un flag quelque part à activer ?
Ou est-ce qu'un droit particulier doit être donner par l'équipe Infrastructure ? On comprend qu'avec le monde d'aujourd'hui, que tout est fermé par défaut et tu n'as pas le droit de rien, sauf si on te donne les droits spécifiquement.
Si OUI, je dois demander QUOI en langage TI ? :p

Si quelqu'un a une piste, car je bloque.

Autre détails, je suis en Windev 2024

Merci d'avance

Corinne

--
Corinne Bonhomme
Québec, Canada
Membre enregistré
983 messages
Posté le 06 novembre 2025 - 14:12
Bonjour,
je ne pratique pas mais si vous parlez bien d'Azure pour OneDrive, on voit dans les sommaires qu'il y a un article Azure sur la LST 138 (bon il faut posséder la LST).
Une question quand même : avez vous déclaré l'application sur le site Azure ?
Cdlt
Message modifié, 06 novembre 2025 - 14:13
Posté le 07 novembre 2025 - 15:25
Cédric_34 a écrit :
Bonjour,
je ne pratique pas mais si vous parlez bien d'Azure pour OneDrive, on voit dans les sommaires qu'il y a un article Azure sur la LST 138 (bon il faut posséder la LST).
Une question quand même : avez vous déclaré l'application sur le site Azure ?
Cdlt


Oui, l'application a été déclaré dans Azur et je reçois le token dans la fenêtre url qui s'ouvre, mais elle n'est pas capté par la fonction de PCSOFT.
La fenêtre d'authentification ouvre, tout se déroule sans erreur, mais ma variable n'est pas alimenté par le token qu'azur renvoie.
La personne réseau soupçonne un problème entre la définition Localhost qui ouvre un port en IP v6 et que Azur pourrait répondre sur IP v4. Là, je suis en dehors de ma zone de compétence quand je parle des IP v6 et v4.

Je cherche à savoir si j'ai oublié quelque chose dans mon code ou s'il y a des actions à faire du côté infrastructure.

Et je n'ai pas la LST

Merci pour la réponse
Membre enregistré
29 messages
Posté le 07 novembre 2025 - 21:22
Corinne BONHOMME a écrit :
Bonjour,

Dans mon organisation, on passe de AD vers Azur (azur registrary, si j'ai bien compris)
Et je ne suis pas un expert Azur, quelqu'un chez nous s'occupe de cette section, mais j'essai de passer à une authentification SSO avec Azur.

J'ai lu pas mal de message, ça marche presque
Merci en passant, à tout ceux qui donne des informations. Ça aide à avancer dans le noir.

LOCAL
l_OAuth2Params est un OAuth2Paramètres

l_OAuth2Params.ClientID = l_sAppID //ID d'application consultable dans "Vue d'ensemble"
l_OAuth2Params.ClientSecret = l_sSecretID //Le secret client ne doit pas être renseigné pour application de bureau
l_OAuth2Params.URLAuth = "https://login.microsoftonline.com/"+l_sDirectoryID+"/oauth2/v2.0/authorize"
l_OAuth2Params.URLToken = "https://login.microsoftonline.com/"+l_sDirectoryID+"/oauth2/v2.0/token"

l_OAuth2Params.ParamètresSupplémentaires = "force_reapprove=false"

//Ajouter user.read dans "API autorises" pour lire les informations de l'utilisateur connecté
l_OAuth2Params..Scope = "offline_access User.Read"

l_OAuth2Params.URLRedirection = "http://localhost:5000/" //"http://127.0.0.1:5000/"

// Demande d'authentification : ouvre la fenêtre de login
LOCAL
l_AuthMonToken est un AuthToken

// Demande d'authentification : ouvre la fenêtre de login
l_AuthMonToken = AuthIdentifie(l_OAuth2Params)

SI PAS l_AuthMonToken.Valide ALORS
Trace("/" + l_AuthMonToken.Valeur + "/")
Trace("La connexion a échouée"+RC+l_AuthMonToken.RéponseServeur)

Erreur("Erreur de connexion")
RENVOYER Faux
SINON
ToastAffiche("Connexion ok", toastCourt, cvMilieu, chCentre, VertClair)
RENVOYER Vrai
FIN


D'après ce que je comprend de nos recherches à plusieurs spécialistes, la demande arrive à azur, j'ai la fenêtre de connexion.
Le token à l'air d'être renvoyé par Azur, on le voit dans le navigateur (d'après l'expert à ce niveau), mais moi, ma variable l_AuthMonToken reste VIDE et la méthode .valide renvoie FAUX

Donc le programme affiche l'erreur "Erreur de connexion" et la variable n'a aucune valeur

Questions :
On se demande s'il n'y a pas quelques choses au niveau du type d'adresse IP V4 versus V6, car avec la commande
netstat -ano | findstr LISTENING
on voit le port s'ouvrir mais pas sur une adresse 127.0.0.1 mais [::]:5000

Le port 5000 n'est pas utilisé par un autre mécanisme, il s'ouvre seulement quand on lance la connexion. On a vérifié.

Autre point, est-ce qu'il y aurait soit quelques choses à configurer dans Windev pour que je reçoive l'information en plus de ce code, un flag quelque part à activer ?
Ou est-ce qu'un droit particulier doit être donner par l'équipe Infrastructure ? On comprend qu'avec le monde d'aujourd'hui, que tout est fermé par défaut et tu n'as pas le droit de rien, sauf si on te donne les droits spécifiquement.
Si OUI, je dois demander QUOI en langage TI ?

Si quelqu'un a une piste, car je bloque.

Autre détails, je suis en Windev 2024

Merci d'avance

Corinne

--
Corinne Bonhomme
Québec, Canada


Bonjour Corinne,

Mon code est relativement semblable au vôtre pour obtenir le token et avoir accès aux fonctions SMTP.Send dans mon cas.

Seule différence entre nos codes, j'ai la ligne suivante de plus :

l_OAuth2Params.TypeRéponse= oauth2TypeRéponseCode


J'ignore si c'est la cause du problème mais il me semble que je n'arrivais pas à recevoir de token en retour sans la présence de cette ligne additionnelle dans mon code.

Bonne journée!

- Maxime