Zum Hauptinhalt springen

Ü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

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

  2. Casdoor unterstützt Drittanbieter-Anmeldeverfahren, wie GitHub, Google, QQ und WeChat, und es unterstützt die Erweiterung von Drittanbieter-Logins mit Plugins.

  3. Casdoor unterstützt Autorisierungsmanagement basierend auf Casbin. Es unterstützt ACL, RBAC, ABAC und RESTful-Zugriffskontrollmodelle.

  4. Casdoor bietet Telefonverifizierungscode, E-Mail-Verifizierungscode und Passwortwiederherstellungsfunktionen.

  5. Casdoor unterstützt die Überwachung und Aufzeichnung von Zugriffsprotokollen.

  6. Casdoor integriert sich mit Alibaba Cloud, Tencent Cloud und Qiniu Cloud Bild-CDN-Cloudspeicher.

  7. Casdoor ermöglicht die Anpassung von Registrierungs-, Anmelde- und Passwortwiederherstellungsseiten.

  8. Casdoor unterstützt die Integration mit bestehenden Systemen durch Datenbanksynchronisation, was einen reibungslosen Übergang zu Casdoor ermöglicht.

  9. Casdoor unterstützt gängige Datenbanken wie MySQL, PostgreSQL und SQL Server und unterstützt die Erweiterung neuer Datenbanken mit Plugins.

Wie es funktioniert

Prinzip

Schritt 0 (Vorwissen)

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

Bild

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.

Hinweise

Wie füllt man die xxx Teile aus?

  • Für client_id: Sie können dies unter jeder einzelnen Anwendung finden

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

Tipp

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

Hinweis

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.

Casnode

Casnode ist das offizielle Forum, entwickelt von der Casbin-Community.

Es verwendet Casdoor als Authentifizierungsplattform und verwaltet Mitglieder.

Architektur

Casdoor besteht aus zwei Teilen:

NameBeschreibungSpracheQuellcode
FrontendWeb-Frontend-UI für CasdoorJavaScript + Reacthttps://github.com/casdoor/casdoor/tree/master/web
BackendRESTful API-Backend für CasdoorGolang + Beego + SQLhttps://github.com/casdoor/casdoor