= 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]