Autenticación con saml_onelogin

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

    [basicos]
    atributo_usuario = _id
    permite_login_toba= 0

    [sp]
    auth_source = default-sp
    session.phpsession.cookiename = TOBA_SESSID
    idp = https://idp-externo/cas/idp/metadata

    proyecto_login = guarani

    [idp:https://idp-externo/cas/idp/metadata]
    name = idp-externo
    SingleSignOnService = https://idp-externo/cas/idp/profile/SAML2/Redirect/SSO
    SingleLogoutService =  https://idp-externo/cas/idp/profile/SAML2/POST/SLO
    ;certFile = /opt/certificates/server.crt

Al ingresar a la URL de gestión, redirige al servidor de autenticación, y al loguearse con credenciales válidas, retorna:

SAML Response not found, Only supported HTTP_POST Binding 

Qué nos está faltando configurar?

Gracias!
Flavia

Hola Flavia,

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.

Saludos!

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():wink:

Gracias!

Hola Flavia,

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?

saludos.


Selection_001.png

Selection_001.png

Selection_002.png

Selection_002.png

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.

Saludos!

Hola Flavia,

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?

saludos.

Hola Flavia,

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.

saludos.

Hola! Para generarlo modifiqué la función así:

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;
		}

Gracias!

Hola Flavia,

Excelente, vamos a ver de que salga arreglado en la próxima versión!!!

Gracias por el aporte!

saludos.