Pular para o conteúdo principal

Visão Geral

O Casdoor é uma plataforma de Gerenciamento de Identidade e Acesso (IAM) / Login Único (SSO) com foco em UI, com interface web que suporta OAuth 2.0, OIDC, SAML, CAS, LDAP, SCIM, WebAuthn, TOTP, MFA, RADIUS, Google Workspace, Active Directory e 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

  1. O Casdoor segue uma arquitetura separada de front-end e back-end, desenvolvida em Golang. Ele suporta alta concorrência, fornece uma interface de usuário baseada na web para gerenciamento e suporta localização em mais de 10 idiomas.

  2. O Casdoor suporta login de aplicativos de terceiros, como GitHub, Google, QQ e WeChat, e suporta a extensão de login de terceiros com plugins.

  3. O Casdoor suporta gerenciamento de autorização baseado no Casbin. Ele suporta modelos de controle de acesso ACL, RBAC, ABAC e RESTful.

  4. O Casdoor fornece código de verificação por telefone, código de verificação por e-mail e funções de recuperação de senha.

  5. O Casdoor suporta auditoria e gravação de logs de acesso.

  6. O Casdoor integra-se com o armazenamento em nuvem CDN de imagens da Alibaba Cloud, Tencent Cloud e Qiniu Cloud.

  7. O Casdoor permite a personalização das páginas de registro, login e recuperação de senha.

  8. O Casdoor suporta integração com sistemas existentes por sincronização de banco de dados, permitindo uma transição suave para o Casdoor.

  9. O Casdoor suporta bancos de dados mainstream como MySQL, PostgreSQL e SQL Server, e suporta a extensão de novos bancos de dados com plugins.

Como funciona

Princípio

Passo 0 (Pré-conhecimento)

  1. O Casdoor segue o processo de autorização construído sobre o protocolo OAuth 2.0. É altamente recomendável ter um breve entendimento de como o OAuth 2.0 funciona. Você pode se referir a esta introdução ao OAuth 2.0.

imagem

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. Substitua endpoint pela URL do host do seu Casdoor e xxx pelas suas próprias informações.

Dicas

Como preencher as partes xxx?

  • Para client_id: você pode encontrar isso em cada Aplicação individual

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

O usuário abre a URL e fornece as credenciais para o Casdoor. 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 eu enviarei o code e state de volta para a Aplicação usando a URL de retorno (redirect_uri)".

O Casdoor também fornece logins de terceiros.

dica

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). Neste passo, sua Aplicação já tem o código do Passo 2, e falará com o Casdoor: "Ei, o usuário concordou em me dar o code. Você pode verificar este code e me dar o access_token?"

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?" O Resource Server responde à sua Aplicação: "Nada mal. Parece exatamente como o que eu emiti para o Casdoor, e o Casdoor diz que quem possui este access_token pode acessar esses Protected Resources. Então vá em frente e pegue!" 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. 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. 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

Dica

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.

Casnode

O Casnode é o fórum oficial desenvolvido pela comunidade Casbin.

Ele usa o Casdoor como plataforma de autenticação e gerencia membros.

Arquitetura

O Casdoor consiste em duas partes:

NomeDescriçãoIdiomaCódigo-fonte
FrontendInterface de usuário web frontend para o CasdoorJavaScript + Reacthttps://github.com/casdoor/casdoor/tree/master/web
BackendAPI RESTful backend para o CasdoorGolang + Beego + SQLhttps://github.com/casdoor/casdoor