Proyecto Django con aplicacion para autenticacion con Clave Unica
ISC License
Aplicación Django que permite la autenticación de los ciudadanos de Chile.
El código fuente de la aplicación lo puedes obtener de la siguiente url en Github: https://github.com/GatoSnake/django-clave-unica
Si esta aplicación te fue de ayuda, no dudes en compartirlo y hacermelo saber. 😊 🍻
Además, esta abierto para que hagan sus pull requests en casos de realizar mejoras al código. 😎
pipenv
o pip
de la siguiente manera:pip install django-clave-unica
clave_unica_auth
en el parámetro INSTALLED_APPS de tu archivo settings.py
,INSTALLED_APPS = [
...
'clave_unica_auth',
]
settings.py
lo 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 a https://claveunica.gob.cl/institucional.
urls.py
de tu proyecto,urlpatterns = [
...
path('claveunica/', include('clave_unica_auth.urls')),
...
]
Ejecutar python manage.py migrate
para migrar el modelo de personas de Clave Unica a la base de datos.
Ejecutar el servidor de desarrollo y acceder a http://127.0.0.1:8000/claveunica/login para realizar el proceso de autenticación.
state
en formato UUIDv4, en el cual dura 30 minutos y se guarda en el cache por defecto de Django.state
, 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:
username
de la tabla de usuario de Django posee la información del RUN de la persona.clave_unica_auth_person
, en el cual esta asociada a la tabla de usuarios de Django.clave_unica_auth_login
posee 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.Url de login en Clave Única.
Type: string
Default: https://accounts.claveunica.gob.cl/openid/authorize
Url de logout Clave Única.
Type: string
Default: https://api.claveunica.gob.cl/api/v1/accounts/app/logout
Recuerda la autenticación del usuario de Clave Única.
Type: boolean
Default: False
NOTA: 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ámetro CLAVEUNICA_URL_LOGOUT
.
Url intercambio autorization_code a access_token en Clave Única.
Type: string
Default: https://accounts.claveunica.gob.cl/openid/token
Url para obtención de información del usuario en Clave Única.
Type: string
Default: https://accounts.claveunica.gob.cl/openid/userinfo
Tiempo en segundos que dura el parámetro state
antes de realizar la autenticación en Clave Única.
Type: int
Default: 1800
Crea automaticamente al usuario si no existe en BD.
Type: boolean
Default: True
Url path para login Clave Única.
Type: string
Default: login/
Url path redirect desde Clave Única.
Type: string
Default: callback/
Url path a vista que se redirige despues de hacer login correctamente.
Type: string
Default: /home/
Path archivo error html.
Type: string
Default: clave_unica_auth/error.html