DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / WLangage / Fonctions WLangage / Communication / Gestion du protocole OAuth 2.0
  • Propriétés spécifiques à la description des variables de type OpenIDParamètres
  • Propriété URLConfiguration
  • Authentification via "Client Secret Basic"
WINDEV
WindowsLinuxJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget IOSApple WatchMac Catalyst
Autres
Procédures stockées
Le type OpenIDParamètres permet de définir toutes les caractéristiques avancées d'une authentification pour OpenID. Les caractéristiques de cette authentification pour OpenID peuvent être définies et modifiées à l'aide de différentes propriétés WLangage.
Remarque : Pour plus de détails sur la déclaration de ce type de variable et l'utilisation des propriétés WLangage, consultez Déclaration d'une variable.
Nouveauté 2025
Widget Android Ce type de variable est désormais disponible en mode Widget Android.
Android Ce type de variable est désormais disponible pour les applications Android.
Exemple
OpenIDParams est un OpenIDParamètres
OpenIDParams.URLConfiguration = "https://accounts.google.com/.well-known/OpenID-configuration"
OpenIDParams.ClientID = "1060349503186-pc7ahme???????7gk59q.apps.googleusercontent.com" 
OpenIDParams.ClientSecret = "oBTQL52?????y9-76MpiM"
OpenIDParams.URLRedirection = "http://localhost:9846"

MonToken est un AuthToken = AuthIdentifie(OpenIDParams)
SI ErreurDétectée ALORS
	Erreur(ErreurInfo())
	RETOUR
FIN
MonIdentité est une OpenIDIdentité = OpenIDLitIdentité(MonToken)
SI MonIdentité.Valide ALORS
	Trace(MonIdentité.Email)
	Trace(MonIdentité.Nom)
	Trace(MonIdentité.Prénom)
FIN
Propriétés

Propriétés spécifiques à la description des variables de type OpenIDParamètres

Les propriétés suivantes peuvent être utilisées pour manipuler les paramètres d'une authentification pour OpenID :
Nom de la propriétéType manipuléEffet
Nouveauté SaaS
CertificatClient
Chaîne de caractères ou BufferCorrespond :
  • à une chaîne de caractères contenant un chemin d'accès au fichier ".p12" contenant le certificat à joindre à la requête. Le chargement du certificat se fera automatiquement en prenant :
    • le certificat présent dans la bibliothèque de l'exécutable (s'il a été intégré à l'application),
    • le certificat présent à l'emplacement spécifié sur disque (si le certificat n'a pas été intégré dans la bibliothèque de l'exécutable).
  • à un buffer contenant le certificat (utilisation de la fonction fChargeBuffer).
Si cette propriété correspond à une chaîne vide (""), le certificat par défaut est réinitialisée à "<Aucun>".
AndroidWidget Android Cette propriété n'est pas disponible.
Attention : Cette propriété est disponible uniquement à partir de la version 2025 Update 1.
ClientIDChaîne de caractèresIdentifiant de l'application.
ClientSecretChaîne de caractères ou Chaîne secrèteIdentifiant secret de l'application.
Nouveauté 2025
Utilisation de chaînes secrètes : Si vous utilisez le coffre-fort de chaînes secrètes, le type de la chaîne secrète utilisable pour ce paramètre doit être "Chaîne Ansi ou Unicode".
Pour plus de détails sur les chaînes secrètes et l'utilisation du coffre-fort, consultez Coffre-fort de chaînes secrètes.
Nouveauté 2025
MotDePasse
Chaîne de caractères ou Chaîne secrèteMot de passe associé à l'utilisateur.
Cette propriété est utilisée uniquement si la propriété TypeAutorisation correspond à la constante taMotDePasse.
Nouveauté 2025
Utilisation de chaînes secrètes : Si vous utilisez le coffre-fort de chaînes secrètes, le type de la chaîne secrète utilisable pour ce paramètre doit être "Chaîne Ansi ou Unicode".
Pour plus de détails sur les chaînes secrètes et l'utilisation du coffre-fort, consultez Coffre-fort de chaînes secrètes.
Nouveauté SaaS
MotDePasseCertificatClient
Chaîne de caractères ou Chaîne secrèteMot de passe associé au certificat client (chaîne vide par défaut).
Nouveauté 2025
Utilisation de chaînes secrètes : Si vous utilisez le coffre-fort de chaînes secrètes, le type de la chaîne secrète utilisable pour ce paramètre doit être "Chaîne Ansi ou Unicode".
Pour plus de détails sur les chaînes secrètes et l'utilisation du coffre-fort, consultez Coffre-fort de chaînes secrètes.
AndroidWidget Android Cette propriété n'est pas disponible.
Attention : Cette propriété est disponible uniquement à partir de la version 2025 Update 1.
Nouveauté 2025
NomUtilisateur
Chaîne de caractèresNom de l'utilisateur.
Cette propriété est utilisée uniquement si la propriété TypeAutorisation correspond à la constante taMotDePasse.
Nouveauté SaaS
Option
Constante de type EntierOptions d'authentification :
  • authDéfaut : Authentification par défaut.
  • authPKCE : Authentification via le protocole PKCE (Proof Key for Code Exchange, clé de preuve pour l'échange de code).
  • authClientSecretBasic : Authentification utilisant le "ClientID" et le "ClientSecret" encodés en Base64 dans l'entête HTTP de la requête. Nécessite une connexion sécurisée.
Remarque : Le protocole PKCE permet d'utiliser une sécurité supplémentaire par rapport à l'authentification OAuth. Dans certains cas, bien que le protocole PKCE soit utilisé, il peut être nécessaire de préciser la clé secrète (propriété ClientSecret). Nous vous conseillons de consulter les spécifications attendues par la plateforme utilisée.
Attention : Cette propriété est disponible uniquement à partir de WINDEV Suite SaaS 2025 Update 1. Pour plus de détails, consultez Utiliser les nouveautés de WINDEV 2025 SaaS.
ScopeChaîne de caractèresPermissions demandées. Les valeurs possibles sont spécifiques au service Web utilisé.
TypeAutorisationConstanteType d'autorisation disponible. Les valeurs possibles sont :
  • taApplicationCliente : Authentification sans fenêtre de login. L'autorisation de connexion est donnée à l'application (et non à l'utilisateur). Le token fourni est un token lié à l'application, permettant d'accéder aux ressources de l'application.
  • taCodeAutorisation (Valeur par défaut) : L'autorisation de connexion est donnée à l'utilisateur. Une fenêtre de login est affichée, permettant à l'utilisateur de saisir son login et mot de passe. Le token fourni est un token lié à l'utilisateur.
  • Nouveauté 2025
    taMotDePasse : Authentification silencieuse de l'utilisateur. L'autorisation de connexion est donnée à l'utilisateur spécifié dans la propriété NomUtilisateur (le mot de passe associé étant spécifié via la propriété MotDePasse). Le token obtenu est lié à l'utilisateur.
URLConfigurationChaîne de caractèresURL de description du service OpenID (voir Remarques). En général, les providers proposant OpenID mettent cette URL à disposition. Elle est de la forme :
https://<Domaine>/.well-known/OpenID-configuration
Quelques exemples d'URL :
https://login.windows.net/contoso.onmicrosoft.com/
.well-known/OpenID-configuration
https://accounts.google.com/.well-known/openid-configuration
https://login.salesforce.com/.well-known/openid-configuration
https://login.yahoo.com/.well-known/openid-configuration
https://login.microsoftonline.com/contoso.onmicrosoft.com/
.well-known/openid-configuration
URLRedirectionChaîne de caractèresURL utilisée pour la redirection du résultat.
Remarques

Propriété URLConfiguration

La propriété URLConfiguration correspond à une URL contenant la description du service OpenID. Cette description est de la forme (par exemple pour Google) :
{
"issuer": "https://accounts.google.com",
"authorization_endpoint": "https://accounts.google.com/o/oauth2/v2/auth",
"token_endpoint": "https://oauth2.googleapis.com/token",
"userinfo_endpoint": "https://www.googleapis.com/oauth2/v3/userinfo",
"revocation_endpoint": "https://oauth2.googleapis.com/revoke",
"jwks_uri": "https://www.googleapis.com/oauth2/v3/certs",
"response_types_supported": [
 "code",
 "token",
 "id_token",
 "code token",
 "code id_token",
 "token id_token",
 "code token id_token",
 "none"
],
"subject_types_supported": [
 "public"
],
"id_token_signing_alg_values_supported": [
 "RS256"
],
"scopes_supported": [
 "openid",
 "email",
 "profile"
],
"token_endpoint_auth_methods_supported": [
 "client_secret_post",
 "client_secret_basic"
],
"claims_supported": [
 "aud",
 "email",
 "email_verified",
 "exp",
 "family_name",
 "given_name",
 "iat",
 "iss",
 "locale",
 "name",
 "picture",
 "sub"
],
"code_challenge_methods_supported": [
 "plain",
 "S256"
]
}
Les parties nécessaires sont les suivantes :
  • authorization_endpoint : URL d'autorisation.
  • token_endpoint : URL de récupération du token.
  • scopes_supported : Liste des informations pouvant être récupérées.
Nouveauté SaaS

Authentification via "Client Secret Basic"

OpenIDParams est un OpenIDParamètres
OpenIDParams.ClientID = "1060349503186-pc7ahmeb6h6mc3jd19nlva26kt7gk59q.apps.googleusercontent.com"
OpenIDParams.ClientSecret = "oBTQL52JiT82Wmuy9-76MpiM"
OpenIDParams.URLConfiguration = "https://accounts.google.com/.well-known/openid-configuration"
OpenIDParams.Option = authClientSecretBasic

token est un AuthToken = AuthIdentifie(OpenIDParams)
SI token..Valide ALORS
	Info(token.RéponseServeur)
FIN
Version minimum requise
  • Version 24
Documentation également disponible pour…
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire

Dernière modification : 04/02/2025

Signaler une erreur ou faire une suggestion | Aide en ligne locale