Necesitamos autenticar guarani gestión (versión 3.17.0) con un servidor saml externo.
Configuramos:
En <path proyecto Gestión>/instalacion/instalacion.ini agregar la entrada:
autenticacion = saml_onelogin
En <path proyecto Gestión>/instalacion/saml_onelogin.ini
En principio, del lado del IDP de uds, necesitan configurar para que pueda operar con un SingleSignOnServiceBinding del tipo urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST.
Guaraní Gestión, por medio de Toba, utiliza por defecto la lib onelogin/php-saml y esta soporta sólo HTTP-POST binding desde el IDP.
Hola!
En autogestión de Guarani estámos probando a realizar el logout por Redirect y colocamos el certificado en sp (x509cert y privatekey) pero no aparece en el xml.
(que “generamos” descomentando showMetadata()
Ustedes modificaron el archivo src/siu/modelo/autenticacion/auth_saml.php descomentando la linea que dice $this->show_metadata();, y ven un XML en pantalla como el adjunto.
¿ustedes lo que quieren es que ese XML se muestre solo (ver segundo adjunto), y no embebido en la pantalla de acceso?
Hola Leo!
Descomentamos la línea y lo que se ve en pantalla lo copiamos en un archivo que les pase a los chicos que habilitan el autenticador.
El tema es que no salen ahi el x590cer que configure en /instalacion/saml/settings.php
Y parece que el problema puede venir porque no está firmado.
El problema es con el Logout, en autogestión.
Por lo que veo el problema es en la función show_metadata de la clase src/siu/modelo/autenticacion/auth_saml.php:
protected function show_metadata(){
//DEBUG PARA VER LA CONFIGURACION LOCAL
header('Content-Type: text/xml');
$settings = $this->saml_auth->getSettings()->getSPData();
$samlMetadata = OneLogin_Saml2_Metadata::builder($settings);
echo '<pre><xmp>' .$samlMetadata .'</xmp></pre>';
die;
}
$settings tiene todos los datos que hay en el archivo instalacion/saml/settings.php, pero cuando hace $samlMetadata = OneLogin_Saml2_Metadata::builder($settings);, allí arma el XML con ciertos datos, lo podes ver en vendor/onelogin/php-saml/lib/Saml2/Metadata.php función builder.
¿ustedes lo que necesitan es que el XML incluya “x509cert”, no?
Observo que la versión de la librería onelogin/php-saml varia entre la que usa Gestión (usa una versión mas nueva) a la que usa 3W. Por eso en parte la diferencia del XML que genera un sistema y el otro.
protected function show_metadata(){
//DEBUG PARA VER LA CONFIGURACION LOCAL
header('Content-Type: text/xml');
$settings = $this->saml_auth->getSettings()->getSPMetadata();
echo '<pre><xmp>' .$settings .'</xmp></pre>';
die;
}