Eine einfache Admin-Schnittstelle für ory/kratos. Hergestellt mit React und Microsoft/Fluentui.
Nachfolgend ein Überblick über die Funktionen von kratos-admin-ui:
Sie erhalten eine durchsuchbare und sortierbare Übersicht aller Identitäten:
Wenn Sie eine Identität auswählen, wird die Symbolleiste um Aktionen wie erweitert
Sie können auch eine Lösch- und/oder Wiederherstellungsaktion für mehrere Identitäten gleichzeitig durchführen
Wenn Sie alle Attribute einer Identität sehen möchten, können Sie diese in der Detailansicht öffnen.
Um eine neue Identität zu erstellen, müssen Sie zunächst das Identitätsschema auswählen, das Sie in Kratos konfiguriert haben. Alle Identitätsmerkmale werden dynamisch gerendert.
Sie können alle Identitätsmerkmale auf der Bearbeitungsseite bearbeiten.
Um das Image auszuführen, müssen Sie zwei Umgebungsvariablen bereitstellen:
KRATOS_ADMIN_URL
: die Admin-URL Ihrer Kratos-InstanzKRATOS_PUBLIC_URL
: die öffentliche URL Ihrer Kratos-InstanzSie sollten die Best Practices von Kratos befolgen, die empfehlen, die Admin-API niemals dem Internet zugänglich zu machen, da keine Authentifizierung erfolgt.
Um die Admin-UI auszuführen, die natürlich Zugriff auf die Admin-API benötigt, sollten Sie die Admin-UI im selben Netzwerk wie Kratos ausführen.
Im folgenden Ausschnitt wird die Admin-UI im selben Docker-Netzwerk ( kratos_intranet
) wie Kratos bereitgestellt – über die Docker-Compose-DNS-Auflösung kann der Nginx-Reverse-Proxy den Admin aufrufen
docker run -it
--rm -p 5173:8080
-e KRATOS_ADMIN_URL=http://kratos:4434
-e KRATOS_PUBLIC_URL=http://kratos:4433
--network kratos_intranet
ghcr.io/dfoxg/kratos-admin-ui
oder wie hier, fügen Sie es in eine docker-compose.yml
Datei ein:
services:
kratos-migrate:
image: oryd/kratos:v1.0.0
environment:
- DSN=sqlite:///var/lib/sqlite/db.sqlite?_fk=true&mode=rwc
volumes:
- type: volume
source: kratos-sqlite
target: /var/lib/sqlite
read_only: false
- type: bind
source: ./contrib/quickstart/kratos/email-password
target: /etc/config/kratos
command: -c /etc/config/kratos/kratos.yml migrate sql -e --yes
restart: on-failure
networks:
- intranet
kratos:
image: oryd/kratos:v1.0.0
depends_on:
- kratos-migrate
ports:
- '4433:4433' # public
# - '4434:4434' # admin, do not expose!
restart: unless-stopped
environment:
- DSN=sqlite:///var/lib/sqlite/db.sqlite?_fk=true
- LOG_LEVEL=trace
command: serve -c /etc/config/kratos/kratos.yml --dev --watch-courier
volumes:
- type: volume
source: kratos-sqlite
target: /var/lib/sqlite
read_only: false
- type: bind
source: ./contrib/quickstart/kratos/email-password
target: /etc/config/kratos
networks:
- intranet
admin_ui:
image: ghcr.io/dfoxg/kratos-admin-ui:v2.5.0
ports:
- '80:8080'
restart: unless-stopped
environment:
- KRATOS_ADMIN_URL=http://kratos:4434
- KRATOS_PUBLIC_URL=http://kratos:4433
networks:
- intranet
networks:
intranet:
volumes:
kratos-sqlite:
NAMESERVER
: Der Nameserver, der für die DNS-Auflösung für Kratos-URLs verwendet werden soll. Standardmäßig liest es Werte aus /etc/resolv.conf, sodass es in vielen Laufzeiten gut funktioniert, ohne diesen Wert festzulegen. Wenn keine /etc/resolv.conf vorhanden ist, wird sie auf 127.0.0.11
(Docker-DNS) gesetzt. Es ist erforderlich, dass eine lokale Instanz von Ory Kratos ausgeführt wird. Die neueste getestete Version ist v1.1.0
.
cd kratos-admin-ui
npm install
node cors-proxy.js // starts a cors-proxy for the admin-api, so the browser can make requests
npm run start
cd kratos-admin-ui
docker build -t kratos-admin-ui .