Visão Geral
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.
O Casdoor serve tanto a interface de usuário web quanto as solicitações de login dos usuários do aplicativo.
Recursos do 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.
-
O Casdoor suporta gerenciamento de autorização baseado no Casbin. Ele suporta modelos de controle de acesso ACL, RBAC, ABAC e 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.
-
O Casdoor permite a personalização das páginas de registro, login e recuperação de senha.
-
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.
Como funciona

Passo 0 (Pré-conhecimento)
- Casdoor uses OAuth 2.0 for authorization. For a short intro to OAuth 2.0, see An introduction to OAuth 2.

Passo 1 (Solicitação de Autorização)
Sua Aplicação (que pode ser um site ou qualquer outra aplicação) deve compor uma URL no seguinte 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.
Como preencher as partes xxx?
- client_id: From the Application settings in Casdoor.
- redirect_uri: Your application’s callback URL; Casdoor redirects here after authorization.
- state: Your application name (or any value you use to correlate the request).
A Aplicação solicitará ao usuário: "Ei, eu preciso de alguns recursos e preciso da sua permissão para acessar esses recursos. Você pode ir a esta URL e inserir seu nome de usuário e senha para mim?" Com a URL corretamente composta, sua Aplicação fará o usuário lançar uma solicitação para esta URL, e a Solicitação de Autorização é concluída.
Este passo é direto: o usuário é redirecionado para a URL composta no Passo 1, e o usuário verá a página de login do Casdoor.
Passo 2 (Concessão de Autorização)
Ao inserir o nome de usuário e as credenciais corretas na página de login, o Casdoor agora conhece a identidade do usuário e está prestes a enviar duas informações de volta para a URL de callback definida no Passo 1: code e state. Com essas duas informações enviadas de volta para sua Aplicação, a autorização é concedida ao aplicativo, e a Concessão de Autorização é concluída.
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)".
O Casdoor também fornece logins de terceiros.
Neste caso, em vez de ver a página de entrada de credenciais, você verá uma lista de provedores de terceiros. Você pode fazer login no seu aplicativo usando esses provedores, com o Casdoor atuando como uma camada intermediária (middleware). You can log in to your app using these providers, with Casdoor acting as middleware.
Passo 3 (Concessão de Autorização)
O Casdoor responde à sua Aplicação: "Sabe de uma coisa, este code parece legítimo. Você deve ser a Aplicação certa. Aqui está o access_token para você." Com este code, o Casdoor confirma que é uma Aplicação autorizada (autorizada pelo usuário correto no Passo 2) tentando obter o access_token (que será usado mais tarde para acessar mais recursos). Neste passo, sua Aplicação diz: "Legal! Acabei de receber o fresco e saboroso access_token. Agora posso usá-lo para acessar algo mais valioso do Resource Server!"
Passo 4 (Token de Acesso)
Sua Aplicação então se volta para o Resource Server e diz: "Ei amigo, você pode verificar este access_token? Eu o recebi do Casdoor. Você quer verificar se este é o token correto que você emitiu para o Casdoor?" You must be the authorized Application. E é basicamente assim que o Casdoor funciona com sua Aplicação.
Passo 5 (Token de Acesso)
O Casdoor pode atuar tanto como um Authorization Server quanto um Resource Server. I just got the fresh access_token. Casbin-OA é um dos aplicativos web do Casbin.
Ele usa o Casdoor para autenticação. Casnode é o fórum oficial desenvolvido pela comunidade Casbin. Ele usa o Casdoor como plataforma de autenticação e gerencia membros.
Passo 6 (Recurso Protegido)
O Casdoor consiste em duas partes: O Casdoor dirá: "Tudo certo ~ este é o usuário (que está autorizando a Aplicação a obter o code e state) que eu conheço no meu banco de dados, e enviarei o code e state de volta para a Aplicação usando a URL de callback (redirect_uri)". https://github.com/casdoor/casdoor/tree/master/web
https://github.com/casdoor/casdoor
O Casdoor é uma plataforma de Gerenciamento de Identidade e Acesso (IAM) / Single-Sign-On (SSO) com foco na interface de usuário web que suporta OAuth 2.0, OIDC, SAML, CAS, LDAP, SCIM, WebAuthn, TOTP, MFA, RADIUS, Google Workspace, Active Directory e Kerberos. Em outras palavras, o Casdoor autoriza sua Aplicação a acessar recursos, geralmente as informações do usuário atualmente logado, do banco de dados do Casdoor.
Demo online
Casdoor
Aqui está uma demonstração online implantada pelo Casbin.
Login do administrador global:
- Nome de usuário:
admin - Senha:
123
Casbin-OA
O Casbin-OA é um dos aplicativos web do Casbin. Ele usa o Casdoor para autenticação.
- Casbin-OA
- Source code:
https://github.com/casbin/casbin-oa
Casnode
O Casnode é o fórum oficial desenvolvido pela comunidade Casbin.
Ele usa o Casdoor como plataforma de autenticação e gerencia membros.
- Casnode
- Source code:
https://github.com/casbin/casnode
Arquitetura
O Casdoor consiste em duas partes:
| Nome | Descrição | Idioma | Código-fonte |
|---|---|---|---|
| Frontend | Interface de usuário web frontend para o Casdoor | JavaScript + React | https://github.com/casdoor/casdoor/tree/master/web |
| Backend | API RESTful backend para o Casdoor | Golang + Beego + SQL | https://github.com/casdoor/casdoor |