|
|
|
|
|
- Propriétés spécifiques à la description des variables de type JWTParamètres:
- Exemple de récupération des paramètres d'un fichier JSON Google
JWTParamètres (Type de variable) En anglais : JWTParameters
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.
JWTParams est un JWTParamètres
JWTParams.URLToken = "https://oauth2.googleapis.com/token"
JWTParams.Scope = "https://www.googleapis.com/auth/firebase.messaging"
JWTParams.Emetteur = "firebase-adminsdk-m4j35@notifpushandroid28.iam.gserviceaccount.com"
JWTParams.Cryptage = jwtRS256
JWTParams.IDCléPrivée = "8ae8fe7c76c9f6dbebaf5cba066e14ac26165277"
JWTParams.ParamètresSupplémentaires = [
sub=Test
nom=TOTO
email=toto@gmail.com
]
JWTParams.CléPrivée = [
-----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 est un AuthToken = AuthIdentifie(JWTParams)
SI MonToken.Valide ALORS
Info("ok")
SINON
Info(ErreurInfo(errComplet))
FIN
Propriétés Propriétés spécifiques à la description des variables de type JWTParamètres: Les propriétés suivantes peuvent être utilisées pour manipuler une authentification JWT : | | | Nom de la propriété | Type manipulé | Effet |
---|
Certificat | Certificat | Certificat à utiliser pour la signature du JWT. Ce certificat est utilisé uniquement pour le cryptage de type jwtRS256. | CléPrivée | Chaîne de caractères | Texte 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. | Consommateur | Chaîne de caractères | Consommateurs (destinaires) du token. | Cryptage | Constante de type Entier | Algorithme 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).
| Emetteur | Chaîne de caractères | Emetteur pour l’authentification. | IDCléPrivée | Chaîne de caractères | Code d'accès secret de l'application. Ce code est donné par le service lors de l'enregistrement de l'application. | ParamètresSupplémentaires | Chaîne de caractères | Paramètres supplémentaires sur le token (utilisés dans le payload). | Scope | Chaîne de caractères | Permissions demandées. Les valeurs possibles sont spécifiques au service Web utilisé. | Sujet | Chaîne de caractères | Principal sujet du jeton. | URLToken | Chaîne de caractères | URL de récupération du token d'accès à utiliser (seconde URL du standard OAuth 2.0). |
Remarques Exemple de récupération des paramètres d'un fichier JSON Google
MonToken est un AuthToken
JWTParams est un JWTParamètres
JWTParams = JsonVersJWTParamètres("C:\.<fichier json de Google.>.\wd-mail-324009-72613ff8bc14.json")
JWTParams.Scope = "https://mail.google.com"
MonToken = AuthIdentifie(JWTParams)
SI PAS MonToken.Valide ALORS
Erreur(ErreurInfo(), HTMLVersTexte(MonToken.RéponseServeur))
RETOUR
FIN
ToastAffiche("Connexion réussie", toastCourt, cvBas, chCentre)
PROCÉDURE INTERNE JsonVersJWTParamètres(sNomFichierJS, nCleCryptage est un entier = jwtRS256) : JWTParamètres
jwtDepuisJsOAuth est un JWTParamètres
jsOAuth est un JSON = fChargeBuffer(sNomFichierJS)
jwtDepuisJsOAuth.URLToken = jsOAuth.token_uri..Valeur
jwtDepuisJsOAuth.Emetteur = jsOAuth.client_email..Valeur
jwtDepuisJsOAuth.IDCléPrivée = jsOAuth.private_key_id..Valeur
jwtDepuisJsOAuth.CléPrivée = jsOAuth.private_key..Valeur
jwtDepuisJsOAuth.Scope = jsOAuth.universe_domain..Valeur
jwtDepuisJsOAuth.Cryptage = nCleCryptage
RENVOYER jwtDepuisJsOAuth
FIN
Documentation également disponible pour…
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|