OpenID Connect Server
Con este plugin puedes utilizar tu propia instalación de WordPress para autenticarte con un servicio web que proporciona OpenID Connect para implementar el inicio de sesión único (SSO) para tus usuarios.
Actualmente, el plugin sólo se configura mediante constantes y ganchos como se indica a continuación:
Define las claves RSA
Si aún no tienes claves que quieras utilizar, genéralas utilizando estos comandos:
openssl genrsa -out oidc.key 4096
openssl rsa -in oidc.key -pubout -out public.key
Y ponlos a disposición del plugin de la siguiente manera (esto debe añadirse antes de que se cargue WordPress):
define( 'OIDC_PUBLIC_KEY', <<<OIDC_PUBLIC_KEY
-----BEGIN PUBLIC KEY-----
...
-----END PUBLIC KEY-----
OIDC_PUBLIC_KEY
);
define( 'OIDC_PRIVATE_KEY', <<<OIDC_PRIVATE_KEY
-----BEGIN PRIVATE KEY-----
...
-----END PRIVATE KEY-----
OIDC_PRIVATE_KEY
);
Alternativamente, también puedes ponerlos fuera del webroot y cargarlos desde los archivos así:
define( 'OIDC_PUBLIC_KEY', file_get_contents( '/web-inaccessible/oidc.key' ) );
define( 'OIDC_PRIVATE_KEY', file_get_contents( '/web-inaccessible/private.key' ) );
Define los clientes
Define tus clientes añadiendo un filtro a oidc_registered_clients en un archivo separado del plugin o functions.php de tu tema o en un MU-plugin como:
add_filter( 'oidc_registered_clients', 'my_oidc_clients' );
function my_oidc_clients() {
return array(
'client_id_random_string' => array(
'name' => 'The name of the Client',
'secret' => 'a secret string',
'redirect_uri' => 'https://example.com/redirect.uri',
'grant_types' => array( 'authorization_code' ),
'scope' => 'openid profile',
),
);
}
Exclude URL from caching
example.com/wp-json/openid-connect/userinfo: We implement caching exclusion measures for this endpoint by settingCache-Control: 'no-cache'headers and defining theDONOTCACHEPAGEconstant. If you have a unique caching configuration, please ensure that you manually exclude this URL from caching.
Repositorio de GitHub
Puedes informar de cualquier problema que encuentres directamente en el repositorio de Github: Automattic/wp-openid-connect-server