josecl / emulador-claveunica
Emulador del servicio de ClaveÚnica de Gobierno de Chile
Requires
- php: ^8.0
- ext-json: *
- illuminate/contracts: ^9.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.9
- nunomaduro/collision: ^6.0
- nunomaduro/larastan: ^2.0.1
- orchestra/testbench: ^7.0
- pestphp/pest: ^1.21
- pestphp/pest-plugin-laravel: ^1.2
- pestphp/pest-plugin-mock: ^1.0
- phpstan/extension-installer: ^1.1
- phpstan/phpstan-deprecation-rules: ^1.0
- phpstan/phpstan-phpunit: ^1.0
- phpunit/phpunit: ^9.5
- roave/security-advisories: dev-latest
This package is auto-updated.
Last update: 2025-03-29 01:04:44 UTC
README
Este proyecto emula el servicio de autenticación de ClaveÚnica del Gobierno de Chile con el fin de permitir iniciar sesión en sistemas en desarrollo que no cuenten con un ambiente de certificación habilitado en ClaveÚnica.
IMPORTANTE
Se implementan únicamente los mecanismos mínimos para iniciar sesión. Este proyecto no permite validar que una aplicación cumpla con todos los mecanismos de seguridad requeridos por OpenID ni ClaveÚnica.
Requerimientos
- Laravel 9
- php 8.0
Instalación
Instalar dependencia:
composer require josecl/emulador-claveunica
Publicar archivo de configuración:
php artisan vendor:publish --tag emulador-claveunica
Agregar las configuraciones requeridas, al menos debes configurar:
EMULADOR_CLAVEUNICA_ENABLED
EMULADOR_CLAVEUNICA_CLIENT_ID
EMULADOR_CLAVEUNICA_CLIENT_SECRET
Configuración de cliente
Se deben configurar las rutas del fujo de autenticación con ClaveÚnica.
Estas rutas pueden ser modificadas mediante la variable EMULADOR_CLAVEUNICA_PREFIX
.
Las rutas originales son las siguientes:
- https://accounts.claveunica.gob.cl/openid/authorize
- https://accounts.claveunica.gob.cl/openid/token
- https://www.claveunica.gob.cl/openid/userinfo
Debes configurar tu aplicación para utilizar las siguientes rutas:
- http://example.com/openid/authorize
- http://example.com/openid/token
- http://example.com/openid/userinfo
Donde 'http://example.com' corresponde a la URL donde el emulador de ClaveÚnica está instalado.
Integración con josecl/claveunica
Si utilizas el cliente josecl/claveunica,
actualiza el archivo config/services.php
con los parámetros adicionales y configura las
siguientes variables de ambiente de acuerdo a la documentación anterior:
'claveunica' => [ 'client_id' => env('CLAVEUNICA_CLIENT_ID'), 'client_secret' => env('CLAVEUNICA_CLIENT_SECRET'), 'redirect' => env('CLAVEUNICA_REDIRECT_URI') // Configura servicio emulador ClaveÚnica... 'auth_uri' => env('CLAVEUNICA_AUTH_URI', 'https://accounts.claveunica.gob.cl/openid/authorize'), 'token_uri' => env('CLAVEUNICA_TOKEN_URI', 'https://accounts.claveunica.gob.cl/openid/token'), 'user_uri' => env('CLAVEUNICA_USER_URI', 'https://www.claveunica.gob.cl/openid/userinfo'), ],
Por ejemplo:
CLAVEUNICA_AUTH_URI=http://localhost:8080/openid/authorize CLAVEUNICA_TOKEN_URI=http://localhost:8080/openid/token CLAVEUNICA_USER_URI=http://localhost:8080/openid/userinfo