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!