G3/3w/3.10.0/DocTecnica/Configuracion

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"

<Directory "/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
</Directory>

<Location ~ "/g3w3_031000/*">
        # representa el id interno de la unidad académica. Se correponde con la entrada
        # en el archivo config.yml ua_<ACC_ID>. 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
</Location>

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

<?php
return array(
	'global' =>
	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  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  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

<?php
return array(
	/**
	 *  Clasico formulario de usuario y contraseña
	 */
	'form'   => 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.

<< Volver a Instalación Desarrollo

<< Volver Actualización Desarrollo

<< Volver a Actualización Producción

<< Volver Menú Documentación Técnica