ory/kratos를 위한 간단한 관리 인터페이스입니다. React와 microsoft/fluentui로 제작되었습니다.
kratos-admin-ui의 기능에 대한 개요는 다음과 같습니다.
모든 ID에 대한 검색 및 정렬 가능한 개요를 얻을 수 있습니다.
하나의 ID를 선택하면 도구 모음이 다음과 같은 작업으로 확장됩니다.
여러 ID에 대해 동시에 삭제 및/또는 복구 작업을 수행할 수도 있습니다.
ID의 모든 속성을 보려면 세부정보 보기에서 열 수 있습니다.
새 ID를 생성하려면 먼저 kratos에서 구성한 ID 스키마를 선택해야 합니다. 모든 신원 특성이 동적으로 렌더링됩니다.
편집 페이지에서 모든 ID 특성을 편집할 수 있습니다.
이미지를 실행하려면 두 가지 환경 변수를 제공해야 합니다.
KRATOS_ADMIN_URL
: kratos 인스턴스의 관리 URLKRATOS_PUBLIC_URL
: kratos 인스턴스의 공개 URL인증이 없으므로 관리 API를 인터넷에 절대 노출하지 말 것을 권장하는 kratos 모범 사례를 따라야 합니다.
물론 admin-api에 접근해야 하는 admin-ui를 실행하려면 kratos와 동일한 네트워크에서 admin-ui를 실행해야 합니다.
다음에서 admin-ui는 kratos와 동일한 docker 네트워크( kratos_intranet
)에 배포됩니다. 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
: kratos URL에 대한 DNS 확인에 사용할 네임서버입니다. 기본적으로 /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 .