Una interfaz de administración sencilla para ory/kratos. Hecho con React y microsoft/fluentui.
Siguiendo una descripción general de las características de kratos-admin-ui:
Obtiene una descripción general que se puede buscar y ordenar de todas las identidades:
Cuando selecciona una identidad, la barra de herramientas se expande con acciones como
También puede realizar una acción de eliminación y/o recuperación en múltiples identidades simultáneamente
Si desea ver todos los atributos de una identidad, puede abrirla en la vista detallada.
Para crear una nueva identidad, primero debe seleccionar el esquema de identidad que configuró en Kratos. Todos los rasgos de identidad se representan dinámicamente.
Puede editar todos los rasgos de identidad en la página de edición.
Para ejecutar la imagen, debe proporcionar dos variables de entorno:
KRATOS_ADMIN_URL
: la URL de administrador de su instancia de KratosKRATOS_PUBLIC_URL
: la URL pública de tu instancia de KratosDebe seguir las mejores prácticas de Kratos, que recomiendan nunca exponer la API de administración a Internet, ya que no hay autenticación.
Para ejecutar admin-ui, que por supuesto necesita acceso a admin-api, debe ejecutar admin-ui en la misma red que kratos.
En el siguiente recorte, la interfaz de usuario del administrador se implementa en la misma red acoplable ( kratos_intranet
) que kratos; a través de la resolución Docker-Compose-DNS, el proxy inverso nginx puede llamar al administrador.
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
O como aquí, inclúyelo en un archivo docker-compose.yml
:
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
: el servidor de nombres que se utilizará para la resolución DNS de las URL de Kratos. De forma predeterminada, lee valores de /etc/resolv.conf, por lo que funciona bien sin establecer este valor en muchos tiempos de ejecución. Si no hay /etc/resolv.conf, se configurará en 127.0.0.11
(Docker dns). Es necesario que se esté ejecutando una instancia local de ory kratos. la última versión probada es 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 .