Passer au contenu principal

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

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

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

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

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

  5. Casdoor prend en charge l'audit et l'enregistrement des journaux d'accès.

  6. Casdoor s'intègre avec le stockage cloud CDN d'images d'Alibaba Cloud, Tencent Cloud et Qiniu Cloud.

  7. Casdoor permet la personnalisation des pages d'inscription, de connexion et de récupération de mot de passe.

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

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

Principe

Étape 0 (Pré-connaissances)

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

image

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

Indices

Comment remplir les parties xxx ?

  • Pour client_id : vous pouvez trouver cela sous chaque application individuelle

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

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.

conseil

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

Indice

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.

Casnode

Casnode est le forum officiel développé par la communauté Casbin.

Il utilise Casdoor comme plateforme d'authentification et gère les membres.

Architecture

Casdoor se compose de deux parties :

NomDescriptionLangueCode source
FrontendInterface utilisateur frontend Web pour CasdoorJavaScript + Reacthttps://github.com/casdoor/casdoor/tree/master/web
BackendBackend API RESTful pour CasdoorGolang + Beego + SQLhttps://github.com/casdoor/casdoor