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)
- O Casdoor segue o processo de autorização construído sobre o protocolo OAuth 2.0. We highly recommend gaining a brief understanding of how OAuth 2.0 works. Você pode se referir a esta introdução ao OAuth 2.0.

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?
For
client_id: you can find this under each individual Application.Para
redirect_uri: você deve definir isso para a URL de callback da sua própria Aplicação. O Casdoor usará essas informações para enviar a resposta de volta após a autorização.Para
state: você deve preencher isso com o nome da sua Aplicação.
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
- Código-fonte: 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
- Código-fonte: 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 |