Infraestructura open source de autenticación y autorización basada en OIDC y OAuth 2.1, con multitenencia, SSO empresarial y RBAC para aplicaciones SaaS y de IA.
dromara/Sa-Token
Framework de autenticación y autorización para Java que abarca inicio de sesión, permisos, SSO, OAuth2, JWT y firma de API para Spring y otros stacks web.
Alternativa open source a:Spring Security
Apache Shiro
- Estrellas
- 19,109
- Forks
- 2,913
- Issues abiertos
- 123
- Último commit
- hace 21 días
¿Qué es?
Sa-Token es un framework de Java para gestionar la autenticación y autorización en aplicaciones web. Ofrece sesiones de inicio de sesión, comprobaciones de roles y permisos, cierre de sesión forzado y gestión de sesiones, con controles basados en anotaciones o rutas. Su API principal se usa con llamadas estáticas breves, como StpUtil.login(userId), seguidas de StpUtil.checkLogin().
Además del inicio de sesión básico, el proyecto incluye inicio de sesión único en tres modalidades de implementación (mismo dominio, dominios distintos y Redis compartido), un servidor OAuth2 compatible con los flujos de código de autorización, implícito, contraseña y credenciales de cliente, y comprobaciones en gateways de microservicios para Gateway, ShenYu y Zuul. También incluye integración con JWT, autorización mediante API Key, firma de parámetros de API, autenticación Http Basic y Digest, y bloqueo de cuentas.
Los paquetes de integración son compatibles con Spring Boot 2 y 3/4, Spring WebFlux, Solon y JFinal, y permiten usar Redis como capa de persistencia. Hay demostraciones oficiales y documentación en chino.
Funciones clave
- 01Sesiones de inicio de sesión con modos para varios dispositivos, un solo dispositivo y acceso mutuamente excluyente
- 02Comprobaciones de permisos y roles mediante anotaciones o rutas
- 03Inicio de sesión único en tres modalidades y cierre de sesión único
- 04Servidor OAuth2 compatible con cuatro tipos de flujo estándar
- 05Integración con JWT y autorización mediante API Key
- 06Firma de parámetros de API para evitar manipulaciones y ataques de repetición
Casos de uso
- Añadir inicio de sesión y control de acceso basado en roles a un backend de Spring Boot
- Implementar inicio de sesión único en varios sistemas web internos
- Proteger API en un gateway de microservicios
- Emitir tokens OAuth2 desde un servicio propio de Java
Inicio rápido
- 1
Añade la dependencia del starter de Spring Boot a pom.xml
- 2
Inicia sesión de usuario con una sola llamada estática
StpUtil.login(10001); - 3
Protege un endpoint para que solo puedan acceder los clientes que hayan iniciado sesión
StpUtil.checkLogin();
Antes de usarlo
- El README está escrito principalmente en chino; la documentación completa está disponible en sa-token.com.
- Solo para Java; otros lenguajes cuentan con ports comunitarios independientes, cada uno con su propio estado de mantenimiento.
En colecciones
Temas
Preguntas frecuentes
- ¿Qué es Sa-Token?
- Framework de autenticación y autorización para Java que abarca inicio de sesión, permisos, SSO, OAuth2, JWT y firma de API para Spring y otros stacks web. Sa-Token es un framework de Java para gestionar la autenticación y autorización en aplicaciones web. Ofrece sesiones de inicio de sesión, comprobaciones de roles y permisos, cierre de sesión forzado y gestión de sesiones, con controles basados en anotaciones o rutas. Su API principal se usa con llamadas estáticas breves, como StpUtil.login(userId), seguidas de StpUtil.checkLogin().
- ¿Sa-Token es gratuito? ¿Qué licencia tiene?
- Sa-Token es open source bajo la licencia Apache-2.0. Revisa los términos de la licencia antes de usarlo en productos comerciales.
- ¿Sa-Token sigue mantenido?
- Mantenimiento activo. El último commit de Sa-Token fue el 16 oct 2026.
- ¿Para qué puedo usar Sa-Token?
- Añadir inicio de sesión y control de acceso basado en roles a un backend de Spring Boot Implementar inicio de sesión único en varios sistemas web internos Proteger API en un gateway de microservicios Emitir tokens OAuth2 desde un servicio propio de Java
- ¿Cómo se instala Sa-Token?
- Añade la dependencia del starter de Spring Boot a pom.xml Inicia sesión de usuario con una sola llamada estática: StpUtil.login(10001); Protege un endpoint para que solo puedan acceder los clientes que hayan iniciado sesión: StpUtil.checkLogin();
- ¿Dónde consigo Sa-Token?
- El código fuente y las instrucciones de instalación están en GitHub: https://github.com/dromara/Sa-Token
Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.
Proyectos relacionados
Servidor de inicio de sesión único y proveedor de identidad de código abierto en Java, compatible con CAS, SAML2, OAuth2, OpenID Connect y autenticación multifactor.
Proveedor de identidad ligero basado en Rust para el inicio de sesión único con OpenID Connect, OAuth 2 y PAM, con especial atención a las passkeys.
Framework de autenticación y autorización para TypeScript, independiente del framework y ampliable con plugins para funciones como 2FA y la gestión de múltiples inquilinos.
Proveedor de identidad de código abierto para SSO, compatible con SAML, OAuth2/OIDC, LDAP y RADIUS, autohospedable desde laboratorios pequeños hasta grandes clústeres.
Proveedor de identidad autohospedado y compatible con Keycloak, escrito en Rust y distribuido como un único binario con soporte para OIDC, OAuth2, DPoP y CIBA.