4D NetKit: PKCE für OAuth 2.0

OAuth 2.0 ist ein Eckpfeiler der modernen Authentifizierung. Hier kommt PKCE ins Spiel, eine entscheidende Verbesserung, die OAuth 2.0 gegen Abhör- und Replay-Angriffe schützt. Mit der Einführung von 4D 20 R5 bieten wir nun eine nahtlose Integration von PKCE in OAuth 2.0 Authentifizierungsprozesse.

Wenn Sie den neuen Initialisierungsparameter PKCEEnabled auf True der Klasse cs.NetKitsetzen, aktivieren Sie in der Klasse OAuth2Provider den Proof Key for Code Exchange(PKCE) innerhalb von OAuth 2.0-Authentifizierungsprozessen. PKCE führt eine zusätzliche Sicherheitsebene ein, indem es Abfang- und Wiederholungsangriffe für Desktop-Anwendungen abschwächt. Durch die Aktivierung von PKCE wird sichergestellt, dass jeder Austausch von Autorisierungscodes kryptografisch gesichert ist, wodurch die Gesamtintegrität der OAuth 2.0-Authentifizierungsabläufe gestärkt wird. Diese einfache Parameteranpassung verbessert die Sicherheitslage Ihrer Anwendung, ohne die Benutzerfreundlichkeit zu beeinträchtigen.

Um z. B. Ihr Google-Konto mit PKCE zu authentifizieren, müssen Sie lediglich Folgendes eingeben:

var $credential:={}
// google
$credential.name:="Google" 
$credential.permission:="signedIn"
$credential.clientId:="499730xxx"
$credential.clientSecret:="fc1kwxxx"
$credential.redirectURI:="http://127.0.0.1:50993/authorize/"
$credential.scope:="https://mail.google.com/"
// PKCE activation
$credential.PKCEEnabled:=True

var $oauth2:=cs.NetKit.OAuth2Provider.new($credential)
var $token:=Try($oauth2.getToken())
if ($token=null)
  ALERT("Error: "+Last errors[0].message)
end if 

Beachten Sie, dass PKCE nur für permission=“SignIn“ verfügbar ist.

 

Weitere Informationen zur Integration von PKCE in Ihre OAuth 2.0 Authentifizierungsprozesse finden Sie in der 4D NetKit Dokumentation.

Fabrice Mainguené
- Product Owner -Fabrice Mainguené gehört seit November 2016 zum 4D Program Team. Als Product Owner ist er verantwortlich für das Schreiben der User Stories und deren Umsetzung in funktionale Spezifikationen. Seine Aufgabe ist es auch, sicherzustellen, dass die gelieferte Funktionsimplementierung den Kundenanforderungen entspricht.Nach seinem Bachelor-Abschluss in Informatik am CNAM arbeitete Fabrice als Windev-Entwickler bei einem kleinen Software-Verlag. Danach arbeitete er für verschiedene Unternehmen in Industrie und Handel als Windev- und Webentwickler sowie als technischer Berater für neue Funktionen.