Visión general
Casdoor es una plataforma de Gestión de Identidad (IAM) / Inicio de Sesión Único (SSO) orientada a la interfaz de usuario con soporte de OAuth 2.0, OIDC, SAML, CAS, LDAP, SCIM, WebAuthn, TOTP, MFA, RADIUS, Google Workspace, Active Directory y Kerberos.
Casdoor sirve tanto la interfaz de usuario web como las solicitudes de inicio de sesión de los usuarios de la aplicación.
Características de Casdoor
Casdoor sigue una arquitectura separada de front-end y back-end, desarrollada por Golang. Admite alta concurrencia, proporciona una interfaz de usuario basada en la web para la gestión y admite la localización en más de 10 idiomas.
Casdoor admite el inicio de sesión de aplicaciones de terceros, como GitHub, Google, QQ y WeChat, y admite la extensión del inicio de sesión de terceros con complementos.
Casdoor admite la gestión de autorizaciones basada en Casbin. Admite modelos de control de acceso ACL, RBAC, ABAC y RESTful.
Casdoor proporciona código de verificación por teléfono, código de verificación por correo electrónico y funciones de recuperación de contraseña.
Casdoor admite la auditoría y el registro de registros de acceso.
Casdoor se integra con el almacenamiento en la nube CDN de imágenes de Alibaba Cloud, Tencent Cloud y Qiniu Cloud.
Casdoor permite la personalización de las páginas de registro, inicio de sesión y recuperación de contraseña.
Casdoor admite la integración con sistemas existentes mediante sincronización de bases de datos, permitiendo una transición suave a Casdoor.
Casdoor admite bases de datos principales como MySQL, PostgreSQL y SQL Server, y admite la extensión de nuevas bases de datos con complementos.
Cómo funciona
Paso 0 (Pre-conocimiento)
- Casdoor sigue el proceso de autorización basado en el protocolo OAuth 2.0. Se recomienda encarecidamente tener un breve entendimiento de cómo funciona OAuth 2.0. Puede referirse a esta introducción a OAuth 2.0.
Paso 1 (Solicitud de Autorización)
Su Aplicación (que podría ser un sitio web u otra aplicación) debe componer una URL en el siguiente formato: endpoint/login/oauth/authorize?client_id=xxx&response_type=code&redirect_uri=xxx&scope=read&state=xxx
. Reemplace endpoint
con la URL del host de su Casdoor y xxx
con su propia información.
:::nota Pistas
¿Cómo rellenar las partes xxx
?
Para
client_id
: puede encontrar esto en cada Aplicación individualPara
redirect_uri
: debe establecer esto en la URL de devolución de llamada de su propia Aplicación. Casdoor utilizará esta información para enviar la respuesta después de la autorización.Para
state
: debe completar esto con el nombre de su Aplicación.
:::
La Aplicación solicitará al usuario: "Oye, necesito algunos recursos y necesito tu permiso para acceder a estos recursos. ¿Puedes ir a esta URL e ingresar tu nombre de usuario y contraseña por mí?" Con la URL correctamente compuesta, su Aplicación hará que el usuario inicie una solicitud a esta URL, y la Solicitud de Autorización
se completa.
Este paso es sencillo: el usuario es redirigido a la URL compuesta en el Paso 1, y el usuario verá la página de inicio de sesión de Casdoor.
Paso 2 (Concesión de Autorización)
Al ingresar el nombre de usuario y las credenciales correctas en la página de inicio de sesión, Casdoor ahora conoce la identidad del usuario y está a punto de enviar dos piezas de información de vuelta a la URL de devolución de llamada establecida en el Paso 1: code
y state
. Con estas dos piezas de información enviadas de vuelta a su Aplicación, se concede la autorización a la aplicación, y la Concesión de Autorización
se completa.
El usuario abre la URL y proporciona las credenciales a Casdoor. Casdoor dirá: "Todo se ve bien ~ este es el usuario (quien está autorizando a la Aplicación para obtener el code
y state
) que conozco en mi base de datos, y enviaré el code
y state
de vuelta a la Aplicación usando la URL de callback (redirect_uri
)".
Casdoor también proporciona inicios de sesión de terceros.
:::consejo
En este caso, en lugar de ver la página de entrada de credenciales, verá una lista de proveedores de terceros. Puede iniciar sesión en su aplicación utilizando estos proveedores, con Casdoor actuando como una capa intermedia (middleware). En este paso, su Aplicación ya tiene el código del Paso 2, y hablará con Casdoor: "Oye, el usuario aceptó darme el code
. ¿Puedes verificar este code
y darme el access_token
?"
:::
Paso 3 (Concesión de Autorización)
Casdoor responde a su Aplicación: "Sabes qué, este code
parece legítimo. Debes ser la Aplicación correcta. Aquí tienes el access_token
para ti." Con este code
, Casdoor confirma que es una Aplicación autorizada (autorizada por el usuario correcto en el Paso 2) tratando de obtener el access_token
(que se utilizará más tarde para acceder a más recursos). En este paso, su Aplicación dice: "¡Genial! Acabo de obtener el access_token
fresco y sabroso. Ahora puedo usarlo para acceder a algo más valioso del Servidor de Recursos
!"
Paso 4 (Token de Acceso)
Su Aplicación luego se dirige al Servidor de Recursos
y dice: "Oye amigo, ¿puedes revisar este access_token
? Lo recibí de Casdoor. ¿Quieres verificar si este es el token correcto que emitiste a Casdoor?" El Servidor de Recursos
responde a su Aplicación: "No está mal. Parece justo como el que emití a Casdoor, y Casdoor dice que quienquiera que tenga este access_token
puede acceder a estos Recursos Protegidos
. Así que adelante y tómalo!" Y así es básicamente como Casdoor trabaja con su Aplicación.
Paso 5 (Token de Acceso)
Casdoor puede actuar tanto como un Servidor de Autorización
como un Servidor de Recursos
. En otras palabras, Casdoor autoriza a su Aplicación para acceder a recursos, generalmente la información del usuario actualmente conectado, de la base de datos de Casdoor. Casbin-OA es una de las aplicaciones web de Casbin.
Utiliza Casdoor para la autenticación. Casnode es el foro oficial desarrollado por la comunidad de Casbin. Utiliza Casdoor como plataforma de autenticación y gestiona miembros.
Paso 6 (Recurso Protegido)
Casdoor consta de dos partes: Casdoor dirá: "Se ve bien ~ este es el usuario (que está autorizando a la Aplicación para obtener el code
y state
) que conozco en mi base de datos, y enviaré el code
y state
de vuelta a la Aplicación usando la URL de devolución de llamada (redirect_uri
)". https://github.com/casdoor/casdoor/tree/master/web
https://github.com/casdoor/casdoor
:::nota Pista
Casdoor es una plataforma de Gestión de Identidad y Acceso (IAM) / Inicio de Sesión Único (SSO) con interfaz de usuario web que admite OAuth 2.0, OIDC, SAML, CAS, LDAP, SCIM, WebAuthn, TOTP, MFA, RADIUS, Google Workspace, Active Directory y Kerberos. En otras palabras, Casdoor autoriza a tu Aplicación para acceder a recursos, usualmente la información del usuario que ha iniciado sesión, desde la base de datos de Casdoor.
:::
Demostración en línea
Casdoor
Aquí hay una demostración en línea desplegada por Casbin.
Inicio de sesión de administrador global:
- Nombre de usuario:
admin
- Contraseña:
123
Casbin-OA
Casbin-OA es una de las aplicaciones web de Casbin. Utiliza Casdoor para la autenticación.
- Casbin-OA
- Código fuente: https://github.com/casbin/casbin-oa
Casnode
Casnode es el foro oficial desarrollado por la comunidad de Casbin.
Utiliza Casdoor como la plataforma de autenticación y gestiona miembros.
- Casnode
- Código fuente: https://github.com/casbin/casnode
Arquitectura
Casdoor consta de dos partes:
Nombre | Descripción | Idioma | Código fuente |
---|---|---|---|
Frontend | Interfaz de usuario frontend web para Casdoor | JavaScript + React | https://github.com/casdoor/casdoor/tree/master/web |
Backend | Backend de API RESTful para Casdoor | Golang + Beego + SQL | https://github.com/casdoor/casdoor |