Vue d'ensemble
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 sert à la fois l'interface utilisateur Web et les demandes de connexion des utilisateurs d'applications.
Fonctionnalités 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 prend en charge la gestion des autorisations basée sur Casbin. Il prend en charge les modèles de contrôle d'accès ACL, RBAC, ABAC et 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 permet la personnalisation des pages d'inscription, de connexion et de récupération de mot de passe.
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.
Fonctionnement

Étape 0 (Pré-connaissances)
- Casdoor suit le processus d'autorisation basé sur le protocole OAuth 2.0. We highly recommend gaining a brief understanding of how OAuth 2.0 works. Vous pouvez vous référer à cette introduction à OAuth 2.0.

Étape 1 (Demande d'autorisation)
Votre application (qui pourrait être un site Web ou toute autre application) doit composer une URL au format suivant : 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.
Comment remplir les parties xxx ?
For
client_id: you can find this under each individual Application.Pour
redirect_uri: vous devez le définir sur l'URL de rappel de votre propre application. Casdoor utilisera ces informations pour renvoyer la réponse après autorisation.Pour
state: vous devez le remplir avec le nom de votre application.
L'application invitera l'utilisateur : "Hé, j'ai besoin de certaines ressources et j'ai besoin de votre permission pour accéder à ces ressources. Pouvez-vous aller à cette URL et entrer votre nom d'utilisateur et mot de passe pour moi ?" Avec l'URL correctement composée, votre application fera lancer une demande à cette URL par l'utilisateur, et la Demande d'autorisation est complétée.
Cette étape est simple : l'utilisateur est redirigé vers l'URL composée à l'Étape 1, et l'utilisateur verra la page de connexion de Casdoor.
Étape 2 (Octroi d'autorisation)
En entrant le bon nom d'utilisateur et les identifiants sur la page de connexion, Casdoor connaît maintenant l'identité de l'utilisateur et s'apprête à renvoyer deux informations au URL de rappel défini à l'Étape 1 : code et state. Avec ces deux informations renvoyées à votre application, l'autorisation est accordée à l'application, et l'Octroi d'autorisation est complété.
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 fournit également des connexions tierces.
Dans ce cas, au lieu de voir la page de saisie des identifiants, vous verrez une liste de fournisseurs tiers. Vous pouvez vous connecter à votre application en utilisant ces fournisseurs, avec Casdoor agissant comme une couche intermédiaire (middleware). You can log in to your app using these providers, with Casdoor acting as middleware.
Étape 3 (Octroi d'autorisation)
Casdoor répond à votre application : "Tu sais quoi, ce code semble légitime. Tu dois être la bonne application. Voici le access_token pour toi." Avec ce code, Casdoor confirme qu'il s'agit d'une application autorisée (autorisée par l'utilisateur correct à l'Étape 2) essayant d'obtenir le access_token (qui sera utilisé plus tard pour accéder à plus de ressources). Dans cette étape, votre application dit : "Super ! Je viens d'obtenir le tout frais et savoureux access_token. Maintenant, je peux l'utiliser pour accéder à quelque chose de plus précieux du Serveur de ressources !"
Étape 4 (Jeton d'accès)
Votre application se tourne alors vers le Serveur de ressources et dit : "Hé mon pote, peux-tu vérifier ce access_token ? Je l'ai reçu de Casdoor. Veux-tu vérifier si c'est le bon jeton que tu as émis à Casdoor ?" You must be the authorized Application. Et c'est essentiellement ainsi que Casdoor fonctionne avec votre application.
Étape 5 (Jeton d'accès)
Casdoor peut agir à la fois comme un Serveur d'autorisation et un Serveur de ressources. I just got the fresh access_token. Casbin-OA est l'une des applications Web de Casbin.
Il utilise Casdoor pour l'authentification. Casnode est le forum officiel développé par la communauté Casbin. Il utilise Casdoor comme plateforme d'authentification et gère les membres.
Étape 6 (Ressource protégée)
Casdoor se compose de deux parties : Casdoor dira : "Ça a l'air bien ~ c'est l'utilisateur (qui autorise l'Application à obtenir le code et state) que je connais dans ma base de données, et je vais renvoyer le code et state à l'Application en utilisant l'URL de rappel (redirect_uri)". https://github.com/casdoor/casdoor/tree/master/web
https://github.com/casdoor/casdoor
Casdoor est une plateforme de gestion des identités et des accès (IAM) / connexion unique (SSO) orientée UI avec une interface utilisateur Web prenant en charge OAuth 2.0, OIDC, SAML, CAS, LDAP, SCIM, WebAuthn, TOTP, MFA, RADIUS, Google Workspace, Active Directory et Kerberos. En d'autres termes, Casdoor autorise votre Application à accéder aux ressources, généralement les informations de l'utilisateur actuellement connecté, à partir de la base de données de Casdoor.
Démonstration en ligne
Casdoor
Voici une démonstration en ligne déployée par Casbin.
Connexion administrateur global :
- Nom d'utilisateur :
admin - Mot de passe :
123
Casbin-OA
Casbin-OA est l'une des applications web de Casbin. Il utilise Casdoor pour l'authentification.
- Casbin-OA
- Code source : https://github.com/casbin/casbin-oa
Casnode
Casnode est le forum officiel développé par la communauté Casbin.
Il utilise Casdoor comme plateforme d'authentification et gère les membres.
- Casnode
- Code source : https://github.com/casbin/casnode
Architecture
Casdoor se compose de deux parties :
| Nom | Description | Langue | Code source |
|---|---|---|---|
| Frontend | Interface utilisateur frontend Web pour Casdoor | JavaScript + React | https://github.com/casdoor/casdoor/tree/master/web |
| Backend | Backend API RESTful pour Casdoor | Golang + Beego + SQL | https://github.com/casdoor/casdoor |