PC SOFT

PROFESSIONAL NEWSGROUPS
WINDEVWEBDEV and WINDEV Mobile

Home → WINDEV 2025 → AOuth 2
AOuth 2
Started by Corinne BONHOMME, Nov., 05 2025 10:20 PM - 4 replies
Registered member
5 messages
Posted on November, 05 2025 - 10:20 PM
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
Registered member
1,007 messages
Posted on November, 06 2025 - 2:12 PM
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 modified, November, 06 2025 - 2:13 PM
Posted on November, 07 2025 - 3:25 PM
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
Registered member
30 messages
Posted on November, 07 2025 - 9:22 PM
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
Registered member
5 messages
Posted on November, 12 2025 - 2:22 AM
Merci
On a fini par réussir en recréant l'application sur Azure.
Je vais quand même regarder cette ligne.
Maintenant, il faut que je récupère le code de la personne qui s'est connecté pour appliquer des droits en fonction de la personne qui se connecte.
-> à suivre

L'application ouvre une page web. Est-ce qu'il est possible de la refermer sans que l'utilisateur soit obligé de le faire.
Est-ce que cela fait la même chose pour vous ? ou j'ai pas bien compris un détail ?

Merci beaucoup de votre réponse.

Corinne

--
Corinne Bonhomme
Québec, Canada