4D NetKit : Utilisez les ports de votre serveur web pour récupérer votre réponse d’authentification OAuth 2.0.

Traduit automatiquement de Deepl

Lorsque vous utilisez l’authentification OAuth 2.0 avec 4D NetKit, vous devez définir un URI de redirection pour indiquer où le serveur OAuth 2.0 doit renvoyer le résultat de l’authentification. Avec 4D 20 R9, vous pouvez désormais utiliser l’adresse et les ports de votre serveur web hôte pour récupérer vos réponses d’authentification. Cette amélioration permet de rationaliser le processus d’authentification, d’éviter les conflits de ports et d’améliorer la sécurité.

$credential:={}
$credential.name:="Microsoft"   // or "Google
$credential.permission:="signedIn"
$credential.clientId:="bbbxxx"
$credential.redirectURI:="http://127.0.0.1:80/authorize/"
var $provider:=cs.NetKit.OAuth2Provider.new($credential)

Lors de l’utilisation de cs.NetKit.OAuth2Provider.new($credential), 4D NetKit détermine s’il faut utiliser le serveur web hôte ou le serveur web du composant 4D NetKit en fonction de l’URI de redirection spécifié.

  • Si le port de l’URI de redirection correspond au port du serveur web hôte, 4D NetKit utilisera automatiquement le serveur web hôte pour récupérer les réponses d’authentification.

  • Si le port est omis, les ports standard sont utilisés :

    • Le serveur web de l’hôte est utilisé si la base de données de l’hôte est configurée avec le port par défaut (port 80 pour HTTP et port 443 pour HTTPS).

    • Sinon, le serveur web de 4D NetKit est utilisé.

  • Dans tous les autres cas, 4D NetKit utilise par défaut son propre serveur web interne.

Exemple de RedirectURI basé sur la configuration du serveur web hôte avec le port HTTP = 80

  • Utilisation du port hôte 4D → le serveur hôte 4D est utilisé

    $param.redirectURI:="http://127.0.0.1:80/authorize/"
  • Omission du port, le port HTTP par défaut est 80 → le serveur hôte 4D est utilisé

    $param.redirectURI:= "http://127.0.0.1/authorize/"
  • Utilisation d’un port personnalisé → le serveur4D NetKit est utilisé

    $param.redirectURI:="http://127.0.0.1:50993/authorize/"

Gestion des réponses d’authentification avec un gestionnaire HTTP

Si le serveur web de l’hôte est utilisé pour l’authentification, les développeurs doivent ajouter un gestionnaire HTTP dans la base de données de l’hôte. Cela permet de s’assurer que les réponses d’authentification sont correctement reçues et traitées.

Lorsque permission= »signedIn » et que 4D NetKit utilise le serveur web hôte, le gestionnaire suivant doit être ajouté au fichier Project/Sources/HTTPHandlers.json :

[
{
"class" : "NetKit.OAuth2Authorization",
"method" : "getResponse",
"regexPattern" : "/authorize",
"verbs" : "get"
}
]

Conclusion

En utilisant les nouvelles améliorations de l’authentification OAuth 2.0 dans 4D NetKit, les développeurs peuvent simplifier leur processus d’authentification en assurant la compatibilité avec la configuration de leur serveur web hôte existant.

Fabrice Mainguené
- Product Owner -Fabrice Mainguené a rejoint l'équipe du programme 4D en novembre 2016. En tant que Product Owner, il est en charge de rédiger les user stories puis de les traduire en spécifications fonctionnelles. Son rôle est également de s'assurer que l'implémentation de la fonctionnalité livrée répond au besoin du client.Après avoir obtenu une licence en informatique au CNAM, Fabrice a rejoint une petite société d'édition de logiciels en tant que développeur Windev. Il a ensuite travaillé pour différentes entreprises dans les domaines de l'industrie et du commerce en tant que développeur Windev et web ainsi que conseiller technique sur les nouvelles fonctionnalités.