stgbundle / cas-bundle
Bundle de cas para symfony 6.*
Installs: 3 113
Dependents: 1
Suggesters: 0
Security: 0
Stars: 3
Watchers: 2
Forks: 2
Open Issues: 4
Type:symfony-bundle
Requires
- php: >=8.1
- apereo/phpcas: ^1.6
- symfony/dependency-injection: 6.4.*
- symfony/routing: 6.4.*
- symfony/security-bundle: 6.4.*
This package is not auto-updated.
Last update: 2024-11-15 18:53:40 UTC
README
Central Authentication Service para Symfony 6.4
Instalación
1). Instalación desde packagist.org: https://packagist.org/packages/stgbundle/cas-bundle
composer require stgbundle/cas-bundle
2). Ajustar la configuración de seguridad (security.yml)
security: # ... providers: app_user_provider: entity: class: App\Entity\Usuario property: cuil firewalls: secure: pattern: ^/secure provider: app_user_provider custom_authenticators: - stg.cas_authenticator logout: path: /secure/logout main: anonymous: lazy # ...
3). Configuración del bundle
Crear el archivo config\packages\cas.yaml
:
cas: hostname: dsso.santafe.gob.ar url: /service-auth # opcional port: 443 # opcional service_base_url: http://localhost:80 # Url base del sistema que utiliza el bundle user: cuil # Si se quiere acceder por cuil sino uid. Por defecto se utiliza cuil logout_redirect: home # opcional login_failure: failure # opcional - Debe definirse en el área pública debug: true # opcional - Se recomienda false en producción version: "3.0" # opcional
4). Agregar las rutas vacias
// src/Controller/DefaultController.php /** * @Route("/secure/logout") */ public function logout() { }
5). Login failure
En caso de no existir el usuario en la base de datos de la aplicación, el bundle redirije la petición a la ruta definida en la configuración del bundle y le envía como parámetro el cuil o uid ingresado, según corresponda
/** * @Route("/failure", name="failure") */ public function failure(Request $request): Response { return new Response( 'Error al autenticar - Usuario: ' . $request->get('user') ); }
6). Uso con Ajax
El bundle detecta cuando la llamada es ajax y en caso de necesitar autorización no lo redirige a la pantalla del sso, sino que devuelve el código http 401 (Unauthorized). Queda en el cliente detectar esta respuesta y redirigir la llamada.