= Archivo de configuración: instalacion/alias.conf =
{{{
Este template permite tener instalado en diferentes alias las diferentes unidades
# académicas y también define de manera centralizada todo el manejo de nombres en los dominios
# LOS ALIAS NO TIENEN QUE TENER PUNTOS
Alias /g3w3_031000 "/usr/local/proyectos/guarani/g3w3_031000/src/siu/www"
Options FollowSymLinks
DirectoryIndex index.php
Order allow,deny
Allow from all
AddDefaultCharset ISO-8859-1
include /usr/local/proyectos/guarani/g3w3_031000/instalacion/rewrite.conf
# representa el id interno de la unidad académica. Se correponde con la entrada
# en el archivo config.yml ua_. Ej: ua_VET
SetEnv ACC_ID des01
# se setea de esta manera para que esta variable sea accesible desde mod_rewrite
# ATENCIçӧN: el alias debe empezar con '/'
SetEnvIf always_match ^ ACC_ALIAS=/g3w3_031000
}}}
= Archivo de configuración: instalacion/config.php =
El archivo de configuración tiene un bloque principal llamado ''global''. En este bloque se configuran valores globales a todas las unidades de acceso de proyecto.
A continuación vemos un archivo de configuración de ejemplo:
# instalacion/config.php
{{{
array(
'produccion' => false,
'usar_personalizaciones' => true,
'sesion_timeout' => 10000,
'sesion_maxtime' => 10000,
'dir_attachment' => '/tmp',
'ssl' => false,
//'server_name' => '192.168.126.180',
'imagen_alumno_dir' => '/path/to/g3w3/src/siu/www/_comp/_img_alumnos',
//'imagen_alumno_url' => 'http://localhost',
'salt' => '9bf057558b90263987bd8f99caf2e92f7efc1a13',
'captcha' =>
array(
'activo' => true,
'intentos_login' => 3,
'public_key' => '6Ldja84SAAAAAKdiYZIbx6qjQMtAdzWXiW474_Af',
'private_key' => '6Ldja84SAAAAABchqHlz65yICNXJQ8ENbZpLvmS5',
),
'proxy' =>
array(
'activo' => false,
'proxy_host' => 'proxy.xxxxxxxxx',
'proxy_port' => 8080,
'proxy_username' => 'PROXY-USERNAME',
'proxy_password' => 'PROXY-PASSWORD'
),
'google_analytics' =>
array(
'activo' => true,
'account' => 'UA-xxx-y'
),
'log' =>
array(
'activo' => true,
'nivel' => 'debug',
'barra_dev' => true,
),
'ini_debug' => true,
'memcached' =>
array(
'server_1' =>
array(
'host' => 'localhost',
'port' => 11211,
'peso' => 1,
),
),
'smtp' =>
array(
'from' => '*****@gmail.com',
'host' => 'smtp.gmail.com',
'seguridad' => 'ssl',
'auth' => true,
'port' => 465,
'usuario' => '*******@gmail.com',
'clave' => '*******',
),
'login_externo' => 'none',
'accesos' =>
array(
'des01' =>
array(
'ua' => 5,
'personalizacion' => NULL,
'database' =>
array(
'vendor' => 'pgsql',
'dbname' => 'guarani',
'schema' => 'guarani',
'host' => 'localhost',
'port' => 5432,
'pdo_user' => 'postgres',
'pdo_passwd' => '******',
),
),
),
'url_kolla' => 'http://localhost/kolla/3.3/',
'cant_emails_a_enviar_por_corrida_cron' => 10,
),
);
}}}
Veamos las entradas de este archivo una por una:
* '''produccion''' *: indica si el sistema está o no en un entorno de producción
* valores posibles: true|false
* '''usar_personalizaciones''' *: si se encuentran activadas o no las personalizaciones
* valores posibles: true|false
* '''sesion_timeout''' *: tiempo de timeout de la sesión en minutos
* valores posibles: número entero
* '''sesion_maxtime''' *: tiempo máximo de duración de sesión en minutos
* valores posibles: número entero
* '''ini_debug''': si está activo busca una clase siu\debug y ejecuta el metodo ini() despues de cargar el nucleo
* valores posibles: true|false
* valores defecto: false
* '''salt''' *: en algunos lugares de la aplicación se encriptan cadenas con sha1. Se utiliza este salt para hacer la encriptación
* valores posibles: string
* '''url_recursos''': url de los recursos compilados del sistema (ver pasaje a producción). Si no se setea por defecto los busca en la carpeta www/_comp
* valores posibles: string; una url
* valores defecto: string vacío
* '''dir_temp''': path al directorio donde se guardarán los archivos temporales del sistema (por ejemplo la cache de los templates twig). En esta carpeta apache debe tener permisos de escritura.
* valores posibles: string; un path
* valores defecto: instalacion/temp/[conf_id]
* '''dir_attachment''': path al directorio donde se guardarán los attachments de los mensajes. Por defecto usa la carpeta especificada por dir temp. En esta carpeta apache debe tener permisos de escritura.
* valores posibles: string; un path
* valores defecto: dir_temp
* '''captcha''': configuración de captchas (por defecto usa [http://www.google.com/recaptcha recaptcha]). Si no se especifica este bloque no se usa captcha (es lo mismo que setear activo en false)
* '''activo''': indica si se activan los captchas a través de toda la aplicación
* valores posibles: true|false
* '''intentos_login''': la cantidad de intentos de login que se pueden hacer antes de que se solicite ingresar un captcha
* valores posibles: integer
* '''public_key''': la clave pública de recaptcha
* valores posibles: string
* '''private_key''': la clave privada de recaptcha
* valores posibles: string
* '''log''': configuración de logging. Si no se especifica este bloque no se usa el log (es lo mismo que setear activo en false).
* '''activo''': indica si el log está activo o no
* valores posibles: true|false
* '''nivel''': el nivel de log
* valores posibles: string; error | info | debug
* '''barra_dev''': indica si la barra de development está activa
* valores posibles: true|false
* '''ubicacion_personalizaciones''': por defecto las personalizaciones usan como nombre de directorio y alias el nombre que se define en la entrada '''personalizacion''' del acceso correspondiente. Si se desea cambiarlas por alguna razón se puede hacer a través de esta entrada. Para cada personalización se define el directorio dentro de ''src/pers'' y el alias para acceder a los recursos de la personalización.
* '''id_personalizacion''':
* '''dir''': ej1
* '''alias''': /bit
* '''accesos''' *: en esta entrada se configuran los puntos de acceso de la aplicación, por lo menos tiene que haber uno. Ver configuración de [https://repositorio.siu.edu.ar/trac/Portal-G3/wiki/G3/3w/3.10.0/DocTecnica/Configuracion#Archivodeconfiguración:instalacionalias.conf archivo de alias]
* '''id_acceso''': el nombre del acceso
* '''ua''': unidad académica de este acceso. Es obligatorio.
* '''personalizacion''': id de la personalización que se va a utilizar. Si está vacío no se utiliza ninguna personalización
* '''database''': información de conexión de la base de datos
* '''cant_emails_a_enviar_por_corrida_cron''': cantidad de emails que se desencolaran y enviaran cada vez que se ejecute el cron o tarea programada, si no se especifica o se establece en 0 se enviaran todos los emails encolados
* valores posibles: número entero
* el campo es obligatorio
= Archivo de configuración: instalacion/login.php =
{{{
array(
'activo' => true,
'clase' => 'modelo\\autenticacion\\auth_form',
'parametros' => array( )
),
/**
* Utiliza un sp de onelogin php para conectarse a un idp externo (no provisto por SIU).
* Para el mapeo de usuarios Se ofrece por defecto buscar id_persona, o nombre de usuario,
* en base al primer componente del atributo 'saml_uid' ($atributos[$saml_uid][0]).
* Es probable que en función de la configuración del idp se deba personalizar la opearcion.
*/
'saml' => array(
'activo' => false,
'clase' => 'modelo\\autenticacion\\auth_saml',
'parametros' => array(
'settings_file' => \siu\bootstrap::get_dir_instalacion() . '/saml/settings_example.php',
'saml_uid' => 'uid',// 'urn:oid:0.9.2342.19200300.100.1.1', //se matchea con local_uid
'local_uid' => 'usuario' //puede ser 'persona'
),
),
/**
* Login con cuentas externas. Se deben crear las mismas en los respectivos proveedores externos y reemplazar las keys.
* Se desaconseja utilizar OpenId, que si bien es mas sencillo de utilizar, no garantiza un id unico, lo cual provocrìa
* una desasación de las cuentas.
*/
'cuenta_ext' => array(
'activo' => false,
'clase' => 'modelo\\autenticacion\\auth_cuenta_ext',
'parametros' => array(
'proveedores' => array(
'google' => array( //para cada fuente
'tipo' => 'oauth2',
'icono' => 'img/login/google.jpg',
'app_key' => 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.apps.googleusercontent.com',
'app_secret' => 'xxxxxxxxxxxxxxxxxxxxxxx',
'scope' => 'https://www.googleapis.com/auth/userinfo.profile https://www.googleapis.com/auth/userinfo.email',
'auth_url' => 'https://accounts.google.com/o/oauth2/auth',
'acc_url' => 'https://accounts.google.com/o/oauth2/token',
'id_url' => 'https://www.googleapis.com/oauth2/v1/userinfo',
'id_path' => 'id', //de que campo saca el id
'email_path' => 'email', //de que campo saca el mail
),
'facebook' => array(
'tipo' => 'oauth2',
'icono' => 'img/login/facebook.jpg',
'app_key' => '999999999999999',
'app_secret' => '99999999999999999999999999999999',
'scope' => 'email',
'auth_url' => 'https://www.facebook.com/dialog/oauth',
'acc_url' => 'https://graph.facebook.com/oauth/access_token',
'id_url' => 'https://graph.facebook.com/me',
'id_path' => 'id', //de que campo saca el id
'email_path' => 'email', //de que campo saca el mail
),
)
),
),
);
}}}
Este archivo es un arreglo de fuentes de autenticación. Se proveen las que se soportan directamente desde la version base, pero si se desea agregar o personalizar algún mecanismo puede utilizarse este mismo archivo.
=== '''Generalidades''' ===
La estructura de cada fuente de autenticación es la siguiente:
{{{
'id' => array(
'activo' => true, //esta habilitada?
'clase' => 'clase', //clase personalizable que lo implmenta
'parametros' => array( ) // parametros que se procesan en la clase anterior y depende de cada fuente
),
}}}
Las fuentes son:
* '''form'''
Es el formulario típico de usuario y contraseña que siempre estuvo en las versiones anteriores.
* '''saml''': integración con un idp existente de saml
* settings_file: apunta a un archivo de configuración - se provee uno de referencia.
* saml_uid: El identificador del usuario en el token de saml.
* local_uid: El identificador del usuario en la base de guaraní. Puede variar según la implementación existente de SSO.
* '''cuenta_ext''' : Integración con Facebook, Google, o se pueden incorporar otros proveedores de OAuth.
* Se debe crear la cuenta en el proveedor y obtener los parámetros 'app_key' y 'app_secret' y reemplzar los valores.
[wiki:G3/3w/3.10.0/DocTecnica/Instalacion << Volver a Instalación Desarrollo]
[wiki:G3/3w/3.10.0/DocTecnica/Actualizacion << Volver Actualización Desarrollo]
[wiki:G3/3w/3.10.0/DocTecnica/Produccion << Volver a Actualización Producción]
[wiki:G3/3w/3.9.0/DocTecnica/ << Volver Menú Documentación Técnica]