IntegracionApp1

Versión 2 (Emilio Penna, Jueves, 12 de Julio de 2018 15:05:19 -0300)

1 1
h1. ShibbolethAppIntegration
2 1
3 1
Referencia: https://wiki.shibboleth.net/confluence/display/SHIB2/NativeSPEnableApplication
4 1
5 1
*Introducción:*
6 1
7 1
There are many different ways to integrate the Shibboleth SP with an application. Some are very elegant, and some are really not elegant. Some are simple and fast, and others are complicated and will take a long time. The rule of thumb is to deliver the information Shibboleth supplies to the application in the manner the application expects it already, or to modify the application.
8 1
9 1
h2. Consideraciones:
10 1
11 1
* Ejemplo de consideracion: se puede hacer proteccion a nivel de infraestructura (apache) de toda la webapp o solo de una pagina de inicio de sesion.
12 1
13 1
* ¿Que hago si en mi aplicacion tengo un acceso de un usuario autenticado por el IdP, pero que no esta registrado en la base de usuarios de la aplicación? Algunos comentarios: autorizacion previa, ejemplo de moodle, asignacion automatica a grupos basada en atributos informados por el IdP.
14 1
15 1
h2. Ejemplos:
16 1
17 1
Ejemplos de script, que toman variables shibboleth: http://shib.kuleuven.be/download/sp/test_scripts/
18 1
19 1
20 1
h2. Integración aplicaciones java
21 1
22 1
[[ShibbolethSPAppJava| Integración aplicaciones java]]
23 1
24 2 Emilio Penna
h2. Integración aplicaciones python
25 2 Emilio Penna
26 2 Emilio Penna
[[ShibbolethSPAppPython| Integración aplicaciones python]]
27 2 Emilio Penna
28 2 Emilio Penna
29 1
h2. Integración aplicaciones PHP
30 1
31 1
Se puede acceder a las variables de entorno cargadas por el SP, consultando el array $_SERVER.
32 1
33 1
*Ejemplo:*
34 1
35 1
Configurar apache para que proteja el directorio /var/www/secure, como se indica en [[ShibbolethSPInstall]]
36 1
37 1
En /var/www/secure crear test.php, con el siguiente contenido
38 1
39 1
<pre>
40 1
<code class="php">
41 1
42 1
<html>
43 1
<body>
44 1
<?php
45 1
echo "PRUEBA SHIB SP - VARIABLES DEL SERVIDOR: ";
46 1
foreach($_SERVER as $key_name => $key_value) {
47 1
    print $key_name . " = " . $key_value . "<br/>";
48 1
}
49 1
?>
50 1
</body>
51 1
</html>
52 1
53 1
</code> </pre>
54 1
55 1
56 1
*Escenario con reverse proxy:*
57 1
58 1
En el caso de utilizar un reverse proxy apache (SP instalado en el reverse proxy), las variables se propagan como headers http. En este caso no se obtienen como variables del servidor. 
59 1
60 1
Ejemplo de acceso al al array de headers:
61 1
62 1
<pre>
63 1
<code class="php">
64 1
$headers = apache_request_headers();
65 1
echo "PRUEBA SHIB SP - HEADERS HTTP RECIBIDOS: ";
66 1
foreach($headers as $key_name => $key_value) {
67 1
        print $key_name . " = " . $key_value . "<br/>";
68 1
}
69 1
</code>
70 1
</pre>
71 1
72 1
73 1
74 1
h2. Integración aplicaciones Genexus
75 1
76 1
TODO
77 1
78 1
h2. Gestores de contenido
79 1
80 1
h3. Moodle
81 1
82 1
h3. DSpace
83 1
84 1
TODO
85 1
86 1
h2. Logout
87 1
88 1
Hay varias cosas que considerar, y que pueden aplicar o no dependiendo del escenario:
89 1
90 1
* cerrar sesión de la aplicación
91 1
* cerrar sesión en el SP (sesion mantenida por el modulo shib SP en apache)
92 1
* cerrar sesión en el IdP
93 1
* cerrar sesión en otras aplicaciones en las que se haya iniciado sesión con el IdP
94 1
95 1
Lo que haremos en princpio, es que cuando el usuario cierre sesión en una aplicación, se cierre sesion en la aplicacion, en el SP y en el IDP. También se dará un mensaje (en logout de idp) diciendo que si quiere completar el cierre de sesión, cierre el browser.
96 1
97 1
Para implementar esa funcionalidad, la aplicacion, luego de destruir su sesión, debe redirigir al logout del SP, y el logout del SP estará configurado para redirigir luego al logout del IdP
98 1
99 1
Ejemplo de url para logout en el SP:
100 1
https://sp1.seciu.edu.uy/Shibboleth.sso/Logout
101 1
102 1
Refs:
103 1
https://wiki.cac.washington.edu/display/infra/Configure+Service+Provider+Logout
104 1
https://wiki.shibboleth.net/confluence/display/SHIB2/NativeSPServiceLogout
105 1
https://wiki.shibboleth.net/confluence/display/SHIB2/NativeSPLogoutInitiator
106 1
107 1
108 1
h2. Shibboleth Enabled Applications and Services
109 1
110 1
https://wiki.shibboleth.net/confluence/display/SHIB2/ShibEnabled