4D Netkit: Autenticazione OAuth2.0 con un certificato

Tradotto automaticamente da Deepl

Diversi server OAuth 2.0, come Microsoft Identity Platform, offrono un’opzione di autenticazione che utilizza i certificati invece dei segreti del cliente. Questo approccio migliora i meccanismi di sicurezza e di autenticazione del protocollo. A partire dalla versione 4D 20 R5, Netkit incorpora la gestione delle connessioni basata sui certificati OAuth 2.0.

L’utilizzo di Assertion Framework for OAuth 2.0 Client Authentication and Authorization Grants offre una maggiore sicurezza rispetto ai segreti del client. Consente asserzioni crittografate e firmate digitalmente, rafforzando i meccanismi di autenticazione con informazioni di identificazione aggiuntive come certificati digitali o JWT. Questo riduce i rischi associati alla gestione dei segreti, fornendo un metodo più sicuro per l’autenticazione e l’autorizzazione.

Per utilizzare i certificati, è necessario disporre del permesso “Service” e utilizzare le proprietà .privateKey e .thumbprint dell’oggetto OAuth2Provider.

Se si desidera utilizzare i certificati con Microsoft Identity Platform:

  • Accedere all’interfaccia di registrazione di Azure App e caricare il certificato per ottenere il codice Thumbprint:

  • Ora si dispone di un Thumbprint valido per ottenere il token:
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 

In conclusione, l’utilizzo di un’autenticazione basata su certificati OAuth 2.0, come indicato nella RFC 7521, migliora le misure di sicurezza rispetto ai segreti dei client. Seguendo le linee guida della documentazione, gli sviluppatori possono integrare in modo sicuro i certificati con i server OAuth 2.0 come la Microsoft Identity Platform, garantendo meccanismi di autenticazione delle applicazioni solidi.

Fabrice Mainguené
- Product Owner -Fabrice Mainguené si è unito al team di 4D Program nel novembre 2016. In qualità di Product Owner, è incaricato di scrivere le storie degli utenti e di tradurle in specifiche funzionali. Il suo ruolo è anche quello di assicurarsi che l'implementazione della funzionalità fornita soddisfi le esigenze del cliente.Dopo aver conseguito una laurea in Informatica presso il CNAM, Fabrice è entrato a far parte di una piccola società di pubblicazione di software come sviluppatore Windev. In seguito ha lavorato per diverse aziende del settore industriale e commerciale come sviluppatore Windev e web e come consulente tecnico su nuove funzionalità.