Vue d'ensemble
Casdoor est une plateforme de gestion des identités et d'accès (IAM) / de connexion unique (SSO) orientée UI avec une interface web prenant en charge OAuth 2.0, OIDC, SAML, CAS, LDAP, SCIM, WebAuthn, TOTP, MFA, RADIUS, Google Workspace, Active Directory et Kerberos.
Casdoor sert à la fois l'interface utilisateur Web et les demandes de connexion des utilisateurs d'applications.
Fonctionnalités de Casdoor
Casdoor suit une architecture séparée front-end et back-end, développée en Golang. Il prend en charge une haute concurrence, fournit une interface utilisateur basée sur le Web pour la gestion et prend en charge la localisation dans plus de 10 langues.
Casdoor prend en charge la connexion d'applications tierces, telles que GitHub, Google, QQ et WeChat, et il prend en charge l'extension de la connexion tierce avec des 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 fournit des fonctions de code de vérification par téléphone, de code de vérification par e-mail et de récupération de mot de passe.
Casdoor prend en charge l'audit et l'enregistrement des journaux d'accès.
Casdoor s'intègre avec le stockage cloud CDN d'images d'Alibaba Cloud, Tencent Cloud et Qiniu Cloud.
Casdoor permet la personnalisation des pages d'inscription, de connexion et de récupération de mot de passe.
Casdoor prend en charge l'intégration avec les systèmes existants par synchronisation de base de données, permettant une transition en douceur vers Casdoor.
Casdoor prend en charge les bases de données principales telles que MySQL, PostgreSQL et SQL Server, et il prend en charge l'extension de nouvelles bases de données avec des plugins.
Fonctionnement
Étape 0 (Pré-connaissances)
- Casdoor suit le processus d'autorisation basé sur le protocole OAuth 2.0. Il est fortement recommandé d'avoir une brève compréhension du fonctionnement d'OAuth 2.0. 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
. Remplacez endpoint
par l'URL de l'hôte de votre Casdoor et xxx
par vos propres informations.
Comment remplir les parties xxx
?
Pour
client_id
: vous pouvez trouver cela sous chaque application individuellePour
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é.
L'utilisateur ouvre l'URL et fournit les identifiants à Casdoor. Casdoor dira : "Tout va bien ~ c'est l'utilisateur (qui autorise l'Application à obtenir le code
et le state
) que je reconnais dans ma base de données, et je renverrai le code
et le state
à l'Application en utilisant l'URL de rappel (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). Dans cette étape, votre application a déjà le code de l'Étape 2, et elle parlera à Casdoor : "Hé, l'utilisateur a accepté de me donner le code
. Pouvez-vous vérifier ce code
et me donner le access_token
?"
É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 ?" Le Serveur de ressources
répond à votre application : "Pas mal. Il semble tout à fait comme celui que j'ai émis à Casdoor, et Casdoor dit que celui qui détient ce access_token
peut accéder à ces Ressources protégées
. Alors vas-y et prends-le !" 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
. En d'autres termes, Casdoor autorise votre application à accéder aux ressources, généralement les informations de l'utilisateur actuellement connecté, de la base de données de Casdoor. 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 |