Questions and discussion about using ProcessMaker: user interface, running cases & functionality
By leydyzapata03
#795970
Buenas tardes, quisiera saber si ProcessMaker permite iniciar sesion mediante otro aplicativo; es decir:

Tenemos una aplicación y en esta, quisieramos diseñar un botón que nos permita redireccionar al servidor de ProcessMaker, ¿Cómo podemos hacer para que cuando demos click en este boton y nos lleve a la ventana del servidor PM nos inicie con las credenciales que ingresamos en la aplicación?

El modo de autenticación que estamos utilizando es Active Directory; tanto para PM como para el aplicativo desarrollado.

Quedo atenta a sus comentarios.

Gracias.
User avatar
By amosbatto
#795973
Si tienes el Enterprise Edition, puedes usar Single Sign on.

Si estas usando el Community Edition, puedes implementar login automatico con web services. Ver: http://wiki.processmaker.com/3.0/Proces ... atic_Login

Si estas usando Active Directory, no puedes usar el hash de la contraseña en SHA256. Ver: http://wiki.processmaker.com/3.0/Proces ... b_services

Tienes que mandarlo como texto plano, entonces debes configurar Apache para usar https para más seguridad.

Puedes crear un formulario en tu página para hacer login, y usar código de PHP para hacer login con web services y dirigir el navigador a PM con la ID de session.

Por ejemplo, puedes puedes crear esta página ubicada en la dirección http://example.com/loginForm.php que muestra el formulario para hacer login:
Code: Select all
<html>
<body>
<?php 
if (isset($_GET['error']) and trim($_GET['error']) != '') {
   print "<p><font color=red>".$_GET['error']."</font></p>";
}
?>
<form action="http://example.com/wslogin.php">
  Nombre de usuario:<br>
  <input type="text" name="username" value=""><br>
  Contraseña:<br>
  <input type="password" name="password" value=""><br><br>
  <input type="submit" value="Submit">
</form> 
</body>
</html>
Y puedes usar este script ubicado en la dirección http://example.com/wslogin.php para hacer login con web services y redirigir a la interfaz de PM después del login:
Code: Select all
<?php
ini_set("soap.wsdl_cache_enabled", "0");
//ini_set('error_reporting', E_ALL); //uncomment to debug
//ini_set('display_errors', True);  //uncomment to debug

if (empty($_POST['username']) or empty($_POST['password'])) {
   //redirect back to the login page and display a message to the user to enter a valid p
   $msg = urlencode('Por favor entrega tu nombre de usuario y clave');
   header('Location: http://example.com/loginForm.php&error='.$msg); 
}   

$client = new SoapClient('http://pm.example.com/sysworkflow/en/neoclassic/services/wsdl2');
$user = $_POST['username'];
$pass = $_POST['password'];
$params = array(array('userid'=>$user, 'password'=>$pass));
$result = $client->__SoapCall('login', $params);
 
if ($result->status_code == 0) {
    $sessionId = $result->message;
    header("Location: http://pm.example.com/sysworkflow/en/neoclassic/cases/main?sid=$sessionId");
}
else {
   $msg = urlencode($result->message);
   header('Location: http://example.com/loginForm.php&error='.$msg); 
}
?>
Want to create your own meme coin?

In the world of cryptocurrencies, a unique and exc[…]

The market for cryptocurrencies is demonstrating a[…]

What's SAP FICO?

Embarking on a dissertation can be one of the most[…]

Hello. For rental housing, there are software solu[…]