Простой интерфейс администратора для ory/kratos. Сделано с помощью React и microsoft/fluentui.
После обзора возможностей kratos-admin-ui:
Вы получаете обзор всех личных данных с возможностью поиска и сортировки:
Когда вы выбираете один идентификатор, панель инструментов расширяется такими действиями, как
Вы также можете выполнить действие удаления и/или восстановления для нескольких удостоверений одновременно.
Если вы хотите просмотреть все атрибуты личности, вы можете открыть ее в подробном виде.
Чтобы создать новую личность, вам необходимо сначала выбрать схему идентификации, которую вы настроили в kratos. Все особенности идентичности отображаются динамически.
Вы можете редактировать все характеристики личности на странице редактирования.
Чтобы запустить образ, вам необходимо предоставить две переменные среды:
KRATOS_ADMIN_URL
: URL-адрес администратора вашего экземпляра Kratos.KRATOS_PUBLIC_URL
: общедоступный URL-адрес вашего экземпляра Kratos.Вам следует следовать лучшим практикам Kratos, которые рекомендуют никогда не публиковать admin-api в Интернете, поскольку там нет аутентификации.
Чтобы запустить admin-ui, которому, конечно же, нужен доступ к admin-api, вам следует запустить admin-ui в той же сети, что и kratos.
В следующем фрагменте admin-ui развертывается в той же сети докеров ( kratos_intranet
), что и kratos - через разрешение Docker-Compose-DNS обратный прокси-сервер nginx может вызывать администратора.
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
или, как здесь, включите его в файл 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
: сервер имен, используемый для разрешения DNS для URL-адресов Kratos. По умолчанию он считывает значения из /etc/resolv.conf, поэтому во многих средах выполнения он работает хорошо, не устанавливая это значение. Если файл /etc/resolv.conf отсутствует, ему будет присвоен адрес 127.0.0.11
(Docker dns). Требуется, чтобы был запущен локальный экземпляр ory kratos. последняя протестированная версия — 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 .