Autenticación OAuth2 con otros proveedores

Autenticación OAuth2 con otros proveedores

de No name -
Número de respuestas: 0

Estoy intentando integrar Moodle, a nivel de autenticación, con un proveedor de OAuth2 de Ruby.

Hemos probado a instalar en primer lugar el plugin de autenticación oficial de OpenAuth, pero éste sólo se puede utilizar si el proveedor de OAuth es uno de los clásicos:  google, facebook, microsoft live, github o linkedin, que no es nuestro caso.

Revisando el código veo que hay muchos fragmentos de código específico por proveedores, como por ejemplo en auth.php (a partir de línea 104):

switch ($authprovider) {
case 'google':
$params['client_id'] = get_config('auth/googleoauth2', 'googleclientid');
$params['client_secret'] = get_config('auth/googleoauth2', 'googleclientsecret');
$requestaccesstokenurl = 'https://accounts.google.com/o/oauth2/token';
$params['grant_type'] = 'authorization_code';
$params['redirect_uri'] = $CFG->wwwroot . '/auth/googleoauth2/google_redirect.php';
$params['code'] = $authorizationcode;
break;
case 'facebook':
$params['client_id'] = get_config('auth/googleoauth2', 'facebookclientid');
$params['client_secret'] = get_config('auth/googleoauth2', 'facebookclientsecret');
$requestaccesstokenurl = 'https://graph.facebook.com/oauth/access_token';
$params['redirect_uri'] = $CFG->wwwroot . '/auth/googleoauth2/facebook_redirect.php';
$params['code'] = $authorizationcode;
break;
[...]
default:
throw new moodle_exception('unknown_oauth2_provider');
break;
}

¿Alguien tiene experiencia en adaptar este plugin de autenticación a otros proveedores que pueda decirme si esa sería la forma de adaptarlo?

¿Conocéis algún desarrollo donde esto esté hecho?

Gracias!

Promedio de valoraciones: -