Saltar al contenido principal

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

  1. 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.

  2. 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.

  3. Casdoor admite la gestión de autorizaciones basada en Casbin. Admite modelos de control de acceso ACL, RBAC, ABAC y RESTful.

  4. 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.

  5. Casdoor admite la auditoría y el registro de registros de acceso.

  6. Casdoor se integra con el almacenamiento en la nube CDN de imágenes de Alibaba Cloud, Tencent Cloud y Qiniu Cloud.

  7. Casdoor permite la personalización de las páginas de registro, inicio de sesión y recuperación de contraseña.

  8. Casdoor admite la integración con sistemas existentes mediante sincronización de bases de datos, permitiendo una transición suave a Casdoor.

  9. 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

Principio

Paso 0 (Pre-conocimiento)

  1. 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.

imagen

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 individual

  • 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.

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.

Casnode

Casnode es el foro oficial desarrollado por la comunidad de Casbin.

Utiliza Casdoor como la plataforma de autenticación y gestiona miembros.

Arquitectura

Casdoor consta de dos partes:

NombreDescripciónIdiomaCódigo fuente
FrontendInterfaz de usuario frontend web para CasdoorJavaScript + Reacthttps://github.com/casdoor/casdoor/tree/master/web
BackendBackend de API RESTful para CasdoorGolang + Beego + SQLhttps://github.com/casdoor/casdoor