4D Netkit : Authentification OAuth2.0 à l’aide d’un certificat

Traduit automatiquement de Deepl

Plusieurs serveurs OAuth 2.0, tels que Microsoft Identity Platform, proposent une option d’authentification utilisant des certificats au lieu des secrets du client. Cette approche renforce les mécanismes de sécurité et d’authentification au sein du protocole. À partir de la version 4D 20 R5, Netkit intègre la gestion des connexions basée sur les certificats OAuth 2.0.

L’utilisation du cadre d’assertion pour les subventions d’authentification et d’autorisation du client OAuth 2.0 offre une sécurité accrue par rapport aux secrets du client. Il permet des assertions chiffrées et signées numériquement, renforçant les mécanismes d’authentification avec des informations d’identification supplémentaires telles que des certificats numériques ou des JWT. Cela réduit les risques associés à la gestion des secrets et offre une méthode d’authentification et d’autorisation plus sûre.

Pour utiliser des certificats, vous devez disposer de l’autorisation « Service » et utiliser les propriétés .privateKey et .thumbprint de votre objet OAuth2Provider.

Si vous souhaitez utiliser des certificats avec Microsoft Identity Platform :

  • Allez dans l’interface d’enregistrement Azure App et téléchargez votre certificat pour obtenir votre code Thumbprint :

  • Vous disposez maintenant d’un code Thumbprint valide pour obtenir votre jeton :
var $params;$token : Object
var $oAuth : cs.NetKit.OAuth2Provider
var $privatekey:=File("/RESOURCES/key.pem").getText("ascii"; Document unchanged)

If (Length($t_privatekey)>0)
	$params:=New object()
	$params.name:="Microsoft"
	// Only usable with permission:="Service"
	$params.permission:="Service"
	$params.clientId:="8008ebf5-xxx"
	
	$params.scope:="https://graph.microsoft.com/.default"
	$params.tenant:="16dc191b-xxx"
	$params.clientEmail:=$myClientEmail
	
	// Certificate private key
        $params.privateKey:=$t_privatekey
        // Thumbprint of certificate / public key can be copied in Azure portal at certificated & secrets
	$params.thumbprint:="A4CC91B864xxx"  
	
	$oAuth:=cs.NetKit.OAuth2Provider.new($params)
	$token:=$cs_oAuth.getToken()
End if 

En conclusion, l’utilisation d’une authentification basée sur un certificat OAuth 2.0, telle que décrite dans la RFC 7521, renforce les mesures de sécurité par rapport aux secrets des clients. En suivant les directives de la documentation, les développeurs peuvent intégrer en toute sécurité des certificats avec des serveurs OAuth 2.0 tels que Microsoft Identity Platform, garantissant ainsi des mécanismes d’authentification d’application robustes.

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.