Vielen Dank an alle individuellen Mitwirkenden
* Verwendet eines der Hauptprojekte von Ory in der Produktion.
Besuchen Sie die Dokumentation, um über Möglichkeiten zur Installation von Ory Keto zu erfahren.
Wir bauen Ory auf mehreren Leitprinzipien auf, wenn es um unser Architekturdesign geht:
Die Architektur von Ory ist so konzipiert, dass sie am besten auf einem Container -Orchestrierungssystem wie Kubernetes, CloudFoundry, OpenShift und ähnlichen Projekten ausgeführt wird. Binärdateien sind klein (5-15 MB) und für alle beliebten Prozessortypen (ARM, AMD64, I386) und Betriebssysteme (FreeBSD, Linux, MacOS, Windows) ohne Systemabhängigkeiten (Java, Knoten, Ruby, Libxml, ...).
Ory Kratos ist ein API-First-Identitäts- und Benutzerverwaltungssystem, das nach Best Practices der Cloud-Architektur erstellt wird. Es implementiert zentrale Anwendungsfälle, mit denen sich fast jede Softwareanwendung befassen muss: Self-Service-Anmeldung und Registrierung, Multi-Faktor-Authentifizierung (MFA/2FA), Kontowiederherstellung und -überprüfung, Profil und Kontoverwaltung.
Ory Hydra ist ein OpenID Certified ™ OAuth2 und OpenID Connect -Anbieter, der durch das Schreiben einer winzigen "Brücke" -Anwendung problemlos eine Verbindung zu jedem vorhandenen Identitätssystem herstellt. Es gibt absolute Kontrolle über die Benutzeroberfläche und die Benutzererfahrungsströme.
Ory Oathkeeper ist ein BeyondCorp/Zero Trust Identity & Access Proxy (IAP) mit konfigurierbarer Authentifizierung, Autorisierung und Anfrage -Mutationsregeln für Ihre Webdienste: Authentifizierter JWT, Access Tokens, API Keys, MTLs; Überprüfen Sie, ob der enthaltene Betreff die Anfrage ausführen darf. Codieren resultierende Inhalte in benutzerdefinierte Header ( X-User-ID ), JSON-Web-Token und mehr!
Ory Keto ist ein politischer Entscheidungspunkt. Es verwendet eine Reihe von Richtlinien zur Zugriffskontrolle, ähnlich wie AWS IAM -Richtlinien, um festzustellen, ob ein Subjekt (Benutzer, Anwendung, Dienst, Auto, ...) zur Ausführung einer bestimmten Aktion auf einer Ressource berechtigt ist.
Wenn Sie der Meinung sind, dass Sie eine Sicherheitsanfälligkeit gefunden haben, lassen Sie sie bitte nicht öffentlich in den Foren, im Chat oder in GitHub veröffentlichen. Sie finden alle Informationen für eine verantwortungsvolle Offenlegung in unserer Sicherheit.
Unsere Dienste sammeln zusammengefasste, anonymisierte Daten, die optional ausgeschaltet werden können. Klicken Sie hier, um mehr zu erfahren.
Der Leitfaden ist hier verfügbar.
Die HTTP -API ist hier dokumentiert.
Neuerscheinungen könnten beitragende Änderungen einführen. Um diese Änderungen zu identifizieren und zu integrieren, dokumentieren wir diese Änderungen in upgrade.md und chantelog.md.
Führen Sie keto -h oder keto help .
Wir ermutigen alle Beiträge und empfehlen Ihnen, unsere Beitragsrichtlinien zu lesen.
Sie müssen 1.19+ und (für die Testsuiten):
Es ist möglich, Ory Keto unter Windows zu entwickeln. Bitte beachten Sie, dass alle Führer eine Unix -Shell wie Bash oder ZSH annehmen.
Installation machen
Sie können den gesamten Code mithilfe von make format formatieren. Unser CI prüft, ob Ihr Code ordnungsgemäß formatiert ist.
Es gibt zwei Arten von Tests, die Sie ausführen können:
Kurze Tests laufen ziemlich schnell. Sie können entweder den gesamten Code gleichzeitig testen:
go test -short -tags sqlite ./...oder testen Sie nur ein bestimmtes Modul:
go test -tags sqlite -short ./internal/check/...Regelmäßige Tests erfordern eine Datenbank eingerichtet. Unsere Testsuite kann direkt mit Docker arbeiten (mit Ory/Docktest), aber wir ermutigen, stattdessen das Skript zu verwenden. Die Verwendung von Docktest kann die Anzahl der Docker -Bilder in Ihrem System aufblähen und es ist ziemlich langsam, sie auf jedem Lauf zu starten. Stattdessen empfehlen wir:
source ./scripts/test-resetdb.sh
go test -tags sqlite ./... Die E2E -Tests sind Teil des normalen go test . Um den E2E -Test nur auszuführen, verwenden Sie:
source ./scripts/test-resetdb.sh
go test -tags sqlite ./internal/e2e/... Oder fügen Sie das -short -Tag hinzu, um nur gegen SQLite -In -Memory zu testen.
Sie können ein Entwicklungs -Docker -Image mit:
Docker machen