Package: django-clave-unica
Django Clave UnicaAplicaciÃ³n Djando que permite la autenticaciÃ³n de los ciudadanos de Chile.Codigo FuenteEl cÃ³digo fuente de la aplicaciÃ³n lo puedes obtener de la siguiente url en Github:https://github.com/GatoSnake/django-clave-unicaSi esta aplicaciÃ³n te fue de ayuda, no dudes en compartirlo y hacermelo saber. :blush: :beers:AdemÃ¡s, esta abierto para que hagan sus pull requests en casos de realizar mejoras al cÃ³digo. :sunglasses:InstalaciÃ³nDescarga e instala el paquete utilizandopipenvopipde la siguiente manera:pip install django-clave-unicaAgrega la aplicaciÃ³nclave_unica_authen el parÃ¡metro INSTALLED_APPS de tu archivosettings.py,
de la siguiente manera:INSTALLED_APPS=[...'clave_unica_auth',]Incluir las credenciales de la aplicaciÃ³n para la autenticaciÃ³n de los usuarios. Como parÃ¡metros mÃ­nimos, debe ingresar en el archivosettings.pylo siguiente:CLAVE_UNICA={'CLIENT_ID':'client_id','CLIENT_SECRET':'client_secret','REDIRECT_URI':'redirect_uri',}Para obtener tus credenciales de integraciÃ³n con Clave Ãšnica, accede ahttps://claveunica.gob.cl/institucional.Incluye la ruta de autenticaciÃ³n Clave Ãšnica en el archivourls.pyde tu proyecto,
de la siguiente manera:urlpatterns=[...path('claveunica/',include('clave_unica_auth.urls')),...]Ejecutarpython manage.py migratepara migrar el modelo de personas de Clave Unica a la base de datos.Ejecutar el servidor de desarrollo y acceder ahttp://127.0.0.1:8000/claveunica/loginpara realizar el proceso de autenticaciÃ³n.FuncionamientoCuando un usuario iniciar sesiÃ³n contra Clave Ãšnica, el sistema lo redirige al portal de autenticaciÃ³n creando para esa sesion de autenticaciÃ³n un parÃ¡metro llamadostateen formato UUIDv4, en el cual dura 30 minutos y se guarda en el cache por defecto de Django.Si las credenciales del usuario son correctas, Clave Ãšnica redirige nuevamente al usuario a la aplicaciÃ³n a travÃ©s de una URL callback que es registrada por el dueÃ±o de la aplicaciÃ³n en en registro de instituciones de clave Ãšnica (https://claveunica.gob.cl/institucional).El sistema verifica el parametrostate, si no ha expirado entonces verifica si el usuario existe en base de datos. En caso de no existir lo crea automaticamente y lo dirige a la vista ya autenticada.A nivel de base de datos, la estructura de los datos esta compuesta de la siguiente manera:La columnausernamede la tabla de usuario de Django posee la informaciÃ³n del RUN de la persona.La informaciÃ³n de la persona, como el RUN y el DV esta guardada en la tablaclave_unica_auth_person, en el cual esta asociada a la tabla de usuarios de Django.La tablaclave_unica_auth_loginposee el registro de todos los intentos de inicios de sesiÃ³n. En ella se guarda la fecha, direcciÃ³n IP remoto, el parÃ¡metro state, el resultado de la autenticaciÃ³n y el usuario asociado si este existe en BD.Otras configuracionesCLAVEUNICA_URL_LOGINUrl de login en Clave Ãšnica.Type: string
Default: https://accounts.claveunica.gob.cl/openid/authorizeCLAVEUNICA_URL_LOGOUTUrl de logout Clave Ãšnica.Type: string
Default: https://api.claveunica.gob.cl/api/v1/accounts/app/logoutCLAVEUNICA_REMEMBER_LOGINRecuerda la autenticaciÃ³n del usuario de Clave Ãšnica.Type: boolean
Default: FalseNOTA: Para no recordar la autenticaciÃ³n del usuario, se realiza el truco de abrir un iframe escondido en el html con la url del parÃ¡metroCLAVEUNICA_URL_LOGOUT.CLAVEUNICA_TOKEN_URIUrl intercambio autorization_code a access_token en Clave Ãšnica.Type: string
Default:  https://accounts.claveunica.gob.cl/openid/tokenCLAVEUNICA_USERINFO_URIUrl para obtenciÃ³n de informaciÃ³n del usuario en Clave Ãšnica.Type: string
Default:  https://accounts.claveunica.gob.cl/openid/userinfoCLAVEUNICA_STATE_TIMEOUTTiempo en segundos que dura el parÃ¡metrostateantes de realizar la autenticaciÃ³n en Clave Ãšnica.Type: int
Default:  1800CLAVEUNICA_AUTO_CREATE_USERCrea automaticamente al usuario si no existe en BD.Type: boolean
Default:  TrueCLAVEUNICA_PATH_LOGINUrl path para login Clave Ãšnica.Type: string
Default:  login/CLAVEUNICA_PATH_REDIRECTUrl path redirect desde Clave Ãšnica.Type: string
Default:  callback/CLAVEUNICA_PATH_SUCCESS_LOGINUrl path a vista que se redirige despues de hacer login correctamente.Type: string
Default:  /home/CLAVEUNICA_HTML_ERRORPath archivo error html.Type: string
Default:  clave_unica_auth/error.htmlChangelog1.0.1[14/07/19]Se cambia la configuracion Clave Ãšnica a tipo diccionario en settings.py.1.0.0[07/07/19]Permite la autenticaciÃ³n de los usuarios via Clave Ãšnica.