Keycloak + FreeRadius

You can use the pam-oauth2 module, assuming you are using freeradius and can modify the server. There is a good explanation on how to perform the whole setup here https://github.com/thomasdarimont/keycloak-freeradius-demo