Visión general
Casdoor is a UI-first Identity Access Management (IAM) / Single-Sign-On (SSO) platform with a web UI that supports OAuth 2.0, OIDC, SAML, CAS, LDAP, SCIM, WebAuthn, TOTP, MFA, RADIUS, Google Workspace, Active Directory, and 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 follows a frontend-backend separation architecture and is developed in Golang. It supports high concurrency, provides a web-based UI for management, and supports localization in over 10 languages.
Casdoor supports third-party application login options, such as GitHub, Google, QQ, and WeChat, and supports extending third-party login capabilities with plugins.
Casdoor admite la gestión de autorizaciones basada en Casbin. Admite modelos de control de acceso ACL, RBAC, ABAC y RESTful.
Casdoor provides phone verification codes, email verification codes, and password retrieval functionality.
Casdoor supports auditing and recording of access logs.
Casdoor integrates with Alibaba Cloud, Tencent Cloud, and Qiniu Cloud for image CDN and cloud storage.
Casdoor permite la personalización de las páginas de registro, inicio de sesión y recuperación de contraseña.
Casdoor supports integration with existing systems through database synchronization, enabling a smooth transition to Casdoor.
Casdoor supports mainstream databases such as MySQL, PostgreSQL, and SQL Server, and supports extending to new databases with plugins.
Cómo funciona

Paso 0 (Pre-conocimiento)
- Casdoor sigue el proceso de autorización basado en el protocolo OAuth 2.0. We highly recommend gaining a brief understanding of how OAuth 2.0 works. 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. Replace endpoint with your Casdoor host URL and xxx with your own information.
:::nota Pistas
¿Cómo rellenar las partes xxx?
For
client_id: you can find this under each individual Application.Para
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.
The user opens the URL and provides credentials to Casdoor. Casdoor will say: "Looking good ~ this is the user (who is authorizing the Application to receive the code and state) I know in my database, and I will send the code and state back to the Application using the callback URL (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). You can log in to your app using these providers, with Casdoor acting as middleware.
:::
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?" You must be the authorized Application. 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. I just got the fresh access_token. 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 |