Übersicht
Casdoor ist eine UI-first Identity Access Management (IAM) / Single-Sign-On (SSO) Plattform mit Web-UI, die OAuth 2.0, OIDC, SAML, CAS, LDAP, SCIM, WebAuthn, TOTP, MFA, RADIUS, Google Workspace, Active Directory und Kerberos unterstützt.
Casdoor dient sowohl der Web-UI als auch den Anmeldeanfragen von Anwendungsbenutzern.
Casdoor-Funktionen
Casdoor folgt einer Frontend- und Backend-separaten Architektur, entwickelt in Golang. Es unterstützt hohe Konkurrenz, bietet eine webbasierte UI für die Verwaltung und unterstützt Lokalisierung in 10+ Sprachen.
Casdoor unterstützt Drittanbieter-Anmeldeverfahren, wie GitHub, Google, QQ und WeChat, und es unterstützt die Erweiterung von Drittanbieter-Logins mit Plugins.
Casdoor unterstützt Autorisierungsmanagement basierend auf Casbin. Es unterstützt ACL, RBAC, ABAC und RESTful-Zugriffskontrollmodelle.
Casdoor bietet Telefonverifizierungscode, E-Mail-Verifizierungscode und Passwortwiederherstellungsfunktionen.
Casdoor unterstützt die Überwachung und Aufzeichnung von Zugriffsprotokollen.
Casdoor integriert sich mit Alibaba Cloud, Tencent Cloud und Qiniu Cloud Bild-CDN-Cloudspeicher.
Casdoor ermöglicht die Anpassung von Registrierungs-, Anmelde- und Passwortwiederherstellungsseiten.
Casdoor unterstützt die Integration mit bestehenden Systemen durch Datenbanksynchronisation, was einen reibungslosen Übergang zu Casdoor ermöglicht.
Casdoor unterstützt gängige Datenbanken wie MySQL, PostgreSQL und SQL Server und unterstützt die Erweiterung neuer Datenbanken mit Plugins.
Wie es funktioniert
Schritt 0 (Vorwissen)
- Casdoor folgt dem Autorisierungsprozess, der auf dem OAuth 2.0-Protokoll basiert. Es wird dringend empfohlen, ein kurzes Verständnis davon zu haben, wie OAuth 2.0 funktioniert. Sie können sich auf diese Einführung zu OAuth 2.0 beziehen.
Schritt 1 (Autorisierungsanfrage)
Ihre Anwendung (die eine Website oder eine andere Anwendung sein könnte) sollte eine URL im folgenden Format zusammenstellen: endpoint/login/oauth/authorize?client_id=xxx&response_type=code&redirect_uri=xxx&scope=read&state=xxx
. Ersetzen Sie endpoint
mit der Host-URL Ihres Casdoor und xxx
mit Ihren eigenen Informationen.
Wie füllt man die xxx
Teile aus?
Für
client_id
: Sie können dies unter jeder einzelnen Anwendung findenFür
redirect_uri
: Sie sollten dies auf die Callback-URL Ihrer eigenen Anwendung setzen. Casdoor wird diese Informationen verwenden, um die Antwort nach der Autorisierung zurückzusenden.Für
state
: Sie sollten dies mit dem Namen Ihrer Anwendung ausfüllen.
Die Anwendung wird den Benutzer auffordern: "Hey, ich brauche einige Ressourcen und ich benötige deine Erlaubnis, um auf diese Ressourcen zuzugreifen. Kannst du zu dieser URL gehen und deinen Benutzernamen und dein Passwort für mich eingeben?" Mit der korrekt zusammengesetzten URL wird Ihre Anwendung den Benutzer dazu bringen, eine Anfrage an diese URL zu stellen, und die Autorisierungsanfrage
ist abgeschlossen.
Dieser Schritt ist unkompliziert: Der Benutzer wird zur in Schritt 1 zusammengesetzten URL umgeleitet, und der Benutzer wird die Anmeldeseite von Casdoor sehen.
Schritt 2 (Autorisierungszuschlag)
Indem der Benutzer den richtigen Benutzernamen und die Anmeldeinformationen auf der Anmeldeseite eingibt, weiß Casdoor nun die Identität des Benutzers und steht kurz davor, zwei Informationen zurück an die in Schritt 1 festgelegte Callback-URL zu senden: code
und state
. Mit diesen beiden Informationen, die an Ihre Anwendung zurückgesendet werden, wird die Autorisierung der App gewährt und der Autorisierungszuschlag
ist abgeschlossen.
Der Benutzer öffnet die URL und gibt die Anmeldeinformationen bei Casdoor ein. Casdoor wird sagen: "Sieht gut aus ~ das ist der Benutzer (der die Anwendung autorisiert, den code
und state
zu bekommen) den ich in meiner Datenbank kenne, und ich werde den code
und state
zurück an die Anwendung senden, indem ich die Callback-URL (redirect_uri
) verwende".
Casdoor bietet auch Drittanbieter-Logins an.
In diesem Fall sehen Sie anstelle der Seite zur Eingabe der Anmeldeinformationen eine Liste von Drittanbieter-Anbietern. Sie können sich mit diesen Anbietern bei Ihrer App anmelden, wobei Casdoor als Zwischenschicht (Middleware) fungiert. In diesem Schritt hat Ihre Anwendung bereits den Code aus Schritt 2 und sie wird zu Casdoor sprechen: "Hey, der Benutzer hat zugestimmt, mir den code
zu geben. Kannst du diesen code
überprüfen und mir das access_token
geben?"
Schritt 3 (Autorisierungszuschlag)
Casdoor antwortet Ihrer Anwendung: "Weißt du was, dieser code
scheint legitim zu sein. Du musst die richtige Anwendung sein. Hier ist das access_token
für dich." Mit diesem code
bestätigt Casdoor, dass es sich um eine autorisierte Anwendung handelt (autorisiert vom richtigen Benutzer in Schritt 2), die versucht, das access_token
zu erhalten (das später verwendet wird, um auf mehr Ressourcen zuzugreifen). In diesem Schritt sagt Ihre Anwendung: "Super! Ich habe gerade das frische und leckere access_token
erhalten. Jetzt kann ich es verwenden, um auf etwas Wertvolleres vom Resource Server
zuzugreifen!"
Schritt 4 (Zugriffstoken)
Ihre Anwendung wendet sich dann an den Resource Server
und sagt: "Hey Kumpel, kannst du dir dieses access_token
ansehen? Ich habe es von Casdoor erhalten. Möchtest du überprüfen, ob dies das richtige Token ist, das du Casdoor ausgestellt hast?" Der Resource Server
antwortet Ihrer Anwendung: "Nicht schlecht. Es scheint genau wie das zu sein, das ich Casdoor ausgestellt habe, und Casdoor sagt, wer immer dieses access_token
hält, kann auf diese Geschützten Ressourcen
zugreifen. Also los, nimm es!" Und das ist im Grunde, wie Casdoor mit Ihrer Anwendung funktioniert.
Schritt 5 (Zugriffstoken)
Casdoor kann sowohl als Autorisierungsserver
als auch als Ressourcenserver
agieren. Mit anderen Worten, Casdoor autorisiert Ihre Anwendung, auf Ressourcen zuzugreifen, normalerweise die Informationen des derzeit angemeldeten Benutzers, aus der Datenbank von Casdoor. Casbin-OA ist eine der Casbin-Webanwendungen.
Es verwendet Casdoor zur Authentifizierung. Casnode ist das offizielle Forum, das von der Casbin-Community entwickelt wurde. Es verwendet Casdoor als Authentifizierungsplattform und verwaltet Mitglieder.
Schritt 6 (Geschützte Ressource)
Casdoor besteht aus zwei Teilen: Casdoor wird sagen: "Sieht gut aus ~ das ist der Benutzer (der die Anwendung autorisiert, den code
und state
zu erhalten), den ich in meiner Datenbank kenne, und ich werde den code
und state
zurück an die Anwendung senden, indem ich die Callback-URL (redirect_uri
) verwende". https://github.com/casdoor/casdoor/tree/master/web
https://github.com/casdoor/casdoor
Casdoor ist eine UI-first Identity Access Management (IAM) / Single-Sign-On (SSO) Plattform mit Web-UI, die OAuth 2.0, OIDC, SAML, CAS, LDAP, SCIM, WebAuthn, TOTP, MFA, RADIUS, Google Workspace, Active Directory und Kerberos unterstützt. In anderen Worten, Casdoor autorisiert Ihre Anwendung, auf Ressourcen zuzugreifen, üblicherweise die Informationen des aktuell eingeloggten Benutzers, aus Casdoors Datenbank.
Online-Demo
Casdoor
Hier ist eine von Casbin bereitgestellte Online-Demo.
Globaler Admin-Login:
- Benutzername:
admin
- Passwort:
123
Casbin-OA
Casbin-OA ist eine der Casbin Web-Apps. Es verwendet Casdoor zur Authentifizierung.
- Casbin-OA
- Quellcode: https://github.com/casbin/casbin-oa
Casnode
Casnode ist das offizielle Forum, entwickelt von der Casbin-Community.
Es verwendet Casdoor als Authentifizierungsplattform und verwaltet Mitglieder.
- Casnode
- Quellcode: https://github.com/casbin/casnode
Architektur
Casdoor besteht aus zwei Teilen:
Name | Beschreibung | Sprache | Quellcode |
---|---|---|---|
Frontend | Web-Frontend-UI für Casdoor | JavaScript + React | https://github.com/casdoor/casdoor/tree/master/web |
Backend | RESTful API-Backend für Casdoor | Golang + Beego + SQL | https://github.com/casdoor/casdoor |