AYUDA EN LÍNEA
 WINDEVWEBDEV Y WINDEV MOBILE

Ayuda / WLanguage / Funciones WLanguage / Comunicación / Gestión del protocolo OAuth 2.0
  • Propriétés spécifiques à la description des variables de type JWTParameters:
  • Exemple de récupération des paramètres d'un fichier JSON Google
WINDEV
WindowsLinuxJavaReportes y ConsultasCódigo de Usuario (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Código Navegador
WINDEV Mobile
AndroidWidget Android iPhone/iPadIOS WidgetApple WatchMac Catalyst
Otros
Procedimientos almacenados
JWTParameters (Tipo de variable)
 
Le type JWTParamètres permet de définir toutes les informations nécessaires pour effectuer une authentification JWT. Les caractéristiques de ce type peuvent être définies et modifiées à l'aide de différentes propriétés WLangage.
Un token JWT se compose de 3 chaînes de caractères séparées par un "." :
  • La première partie, l'en-tête, est un JSON encodé en base64url qui décrit le type de token et l'algorithme utilisé pour la signature.
  • La seconde partie, le payload, est un JSON encodé en base64url qui contient les informations à transmettre. Ce JSON peut contenir des clefs prédéfinies qui permettent de donner des informations supplémentaires sur le token (comme la date d'expiration, la cible, le sujet, etc.).
  • La dernière partie, la signature, permet de s'assurer de l'authenticité du token. Cette signature est générée à partir des 2 premières clefs avec un algorithme particulier (HS256 par exemple avec une clef secrète).
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.
Ejemplo
JWTParams is JWTParameters
JWTParams.TokenURL = "https://oauth2.googleapis.com/token"
JWTParams.Scope = "https://www.googleapis.com/auth/firebase.messaging"
JWTParams.Issuer = "firebase-adminsdk-m4j35@notifpushandroid28.iam.gserviceaccount.com"
JWTParams.Encryption = jwtRS256
JWTParams.PrivateKeyID = "8ae8fe7c76c9f6dbebaf5cba066e14ac26165277"

JWTParams.AdditionalParameters = [
sub=Test
nom=TOTO
email=toto@gmail.com
]

JWTParams.PrivateKey = [
-----BEGIN PRIVATE KEY-----
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDLqXc2nE0iTK++
puV2N+H2DoXLjwi36y84LRdLFbfT7BIybOBehIhfGRNY3NsdCShw2VhGGHn1sWl5
2+w6Y2VCZqbMG0XfowdVq1TExyuIeEcRhieiG4EMjP6+yIvwf7rIkmjmflisHBks
iXNeBx1CwvfpafU3ssMAaQ+F1z8LhN1w5REAx8+nALMFOoGHK83edutxesqggpyk
bmcKM8R18ty9au6/sTcOXmnCy</span>KnSk8kOGvvjSvQG3UVWIKUrXdRxGami+Z7EhW
YBJRMlK1YFOzTLJo1kRebUBvZxMXCWxwYjj3uLIk9a/EtTUEVvSvSxxy7KTGK5Xi
9h8hf9UdAgMBAAECggEAD/6oMS7HVAlHyCZdYRJ0eZmcYmdCXQdodvX7nVcAT/F7
YGByopmwCB/1CAaYYshkV7CKIT8s3OHpEbv26oMB5dwj/2Wo8C5ilhTVnHqz7Yzc
sACkPjQAx5aPLzaa3vF5HuV4vZlwp1uxknDdEaZnYuXjCH7c1loAvJiDspQ8DFBn
8KauP5ww3hHIldLgdRu0TCNYIZnsNyTZRKd5PTZOvRtuHJGtYhrc4napcG2GS3ej
Nj7Uv23CxdbIFCu4J2C7BZdxNbT05koqZoAdmemVg6dnVXctVZSlIjZ4sE/6Dl7h
mlrmaV3TJdHuZTIvsDDvA2b7ujAxWnT6CKo31qSXQQKBgQD9T0UC+inzPTSlK6pr
RaxpTHW0eB9S6Q5/sT5I1VNYoRYe3t2MRcypDu</span>VIBZwywPy0WTcrXU8VXawR9a
0Cn3XXlMUe1bjIvuX5/3M8NgPihn7U3b4JeVpExggFioJPfktOELoaL5Dcaw6LRB
abdpirn9ZUtpmHZG+nNCfT+EjQKBgQDN0zUsZrAkBcq6dZEqzFt2SOh7UP4RwEED
D7NU1Y1P27e51zOcSD4IiQ5vuvxnRjB00QmAwk3ycDLMOd4GrNwtjCpXp5D+qkut
Ct5XZUuP+SMuVDhLhwCfw1l7LQvQJQDFGNZW9Bb9mNiKasWSDLDK1xNgv4uq9OQv
vZMzV2KW0QKBgQCB/wlaosmek92NmmAmFyaJD30kdbUVlpcjPvHI7PmN9XVluFgY
YcXLSOSBd886wae+H0KAjhD0zDmUPyH5N/Uhhm32leDq57D0T0zHz1/H535S/3zC
h3sjh6LOr29QM1CopY8MqhH6IHDEX1gKbdd7qX8TpMVT1rN0b5lxGNfdDQKBgFdb
1a3Kx+gCLVGGpN6tbgR+XW45qhyOpQlPmKXhHeFPOGPAWz9xyiKFSYNSsd6Dg/2Q
25+y2LKVvHnB9eKPa8RJQY+Cp5/vV79SZZxieffZnn0DcgFcg39LwqbtL55gljsR
l6fAYiGwxfe56bFbgY4WSzs9EWK2HkPFCr030biBAoGBAIOMvTq4Piqd2P/ShAoG
33xcBTwrmVKutEZH96BU77/IdD6B7s4jP0v7n9omdhttcVtBl5KThmNpvMAhbtb7
7coQ/ynoCpRZROS58hHhYQjIIuQO2RAsxBnaXP1gUFjQr9huDtgT9CDr8PoIIwYV
yYMBbJxhKhlBY9gYByl5G1qO
-----END PRIVATE KEY-----
]

MonToken is AuthToken = AuthIdentify(JWTParams)
IF MonToken.Valid THEN
	Info("ok")
ELSE
	Info(ErrorInfo(errFullDetails))
END
Propiedades

Propriétés spécifiques à la description des variables de type JWTParameters:

Les propriétés suivantes peuvent être utilisées pour manipuler une authentification JWT :
Nom de la propriétéType manipuléEffet
CertificatCertificatCertificat à utiliser pour la signature du JWT. Ce certificat est utilisé uniquement pour le cryptage de type jwtRS256.
CléPrivéeChaîne de caractèresTexte représentant la clé privée. Ce texte commence par "-----BEGIN PRIVATE KEY-----" ou "-----BEGIN RSA PRIVATE KEY-----".
Cette propriété n'est pas nécessaire si la propriété Certificat est spécifiée.
ConsommateurChaîne de caractèresConsommateurs (destinaires) du token.
CryptageConstante de type EntierAlgorithme de cryptage utilisé :
  • jwtHS256 : Algorithme HS256 (correspond à un cryptage de type HMAC combiné à un cryptage de type SHA 256).
  • jwtRS256 : Algorithme RS256 (correspond à un cryptage de type RSA combiné à un cryptage de type SHA 256).
EmetteurChaîne de caractèresEmetteur pour l’authentification.
IDCléPrivéeChaîne de caractèresCode d'accès secret de l'application. Ce code est donné par le service lors de l'enregistrement de l'application.
ParamètresSupplémentairesChaîne de caractèresParamètres supplémentaires sur le token (utilisés dans le payload).
ScopeChaîne de caractèresPermissions demandées. Les valeurs possibles sont spécifiques au service Web utilisé.
SujetChaîne de caractèresPrincipal sujet du jeton.
URLTokenChaîne de caractèresURL de récupération du token d'accès à utiliser (seconde URL du standard OAuth 2.0).
Observaciones

Exemple de récupération des paramètres d'un fichier JSON Google

MonToken is AuthToken
JWTParams is JWTParameters

// Récupération des données d'un fichier JSON Google
JWTParams = JsonVersJWTParamètres("C:\.<fichier json de Google.>.\wd-mail-324009-72613ff8bc14.json")
JWTParams.Scope = "https://mail.google.com"

MonToken = AuthIdentify(JWTParams)
IF NOT MonToken.Valid THEN
    Error(ErrorInfo(), HTMLToText(MonToken.ServerResponse))
    RETURN
END
ToastDisplay("Connexion réussie", toastShort, vaBottom, haCenter)   
// Suite du traitement, utilisation de MonToken...

// JsonVersJWTParamètres est ici une procédure interne, 
// cela pourrait être une procédure locale, globale, une méthode de classe...

      INTERNAL PROCEDURE JsonVersJWTParamètres(sNomFichierJS, nCleCryptage is int = jwtRS256) : JWTParameters       
         jwtDepuisJsOAuth is JWTParameters
         jsOAuth is JSON = fLoadBuffer(sNomFichierJS)
         jwtDepuisJsOAuth.TokenURL = jsOAuth.token_uri..Value
         jwtDepuisJsOAuth.Issuer = jsOAuth.client_email..Value
         jwtDepuisJsOAuth.PrivateKeyID = jsOAuth.private_key_id..Value
         jwtDepuisJsOAuth.PrivateKey = jsOAuth.private_key..Value
         jwtDepuisJsOAuth.Scope = jsOAuth.universe_domain..Value
         jwtDepuisJsOAuth.Encryption = nCleCryptage
         RETURN jwtDepuisJsOAuth
      END
Versión mínima requerida
  • Versión 2024
Esta página también está disponible para…
Comentarios
Haga clic en [Agregar] para publicar un comentario

Última modificación: 25/09/2024

Señalar un error o enviar una sugerencia | Ayuda local