واجهة إدارية بسيطة لـ ory/kratos. تم إنشاؤه باستخدام React وmicrosoft/fluentui.
بعد نظرة عامة على ميزات kratos-admin-ui:
يمكنك الحصول على نظرة عامة قابلة للبحث والفرز لجميع الهويات:
عند تحديد هوية واحدة، يتم توسيع شريط الأدوات بإجراءات مثل
يمكنك أيضًا القيام بإجراء الحذف و/أو الاسترداد على هويات متعددة في وقت واحد
إذا كنت تريد رؤية كافة سمات الهوية، فيمكنك فتحها بطريقة عرض التفاصيل.
لإنشاء هوية جديدة عليك أولاً تحديد مخطط الهوية الذي قمت بتكوينه في كراتوس. يتم تقديم جميع سمات الهوية ديناميكيًا.
يمكنك تعديل جميع سمات الهوية في صفحة التعديل.
لتشغيل الصورة، عليك توفير متغيرين للبيئة:
KRATOS_ADMIN_URL
: عنوان URL الإداري لمثيل kratos الخاص بكKRATOS_PUBLIC_URL
: عنوان URL العام لمثيل kratos الخاص بكيجب عليك اتباع أفضل ممارسات kratos، التي توصي بعدم عرض واجهة برمجة تطبيقات المشرف على الإنترنت مطلقًا، نظرًا لعدم وجود مصادقة.
لتشغيل واجهة المستخدم الإدارية، والتي تحتاج بالطبع إلى الوصول إلى واجهة برمجة التطبيقات الإدارية، يجب عليك تشغيل واجهة المستخدم الإدارية في نفس الشبكة مثل كراتوس.
في المقطع التالي، يتم نشر واجهة المستخدم الإدارية في نفس شبكة الإرساء ( 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
: خادم الأسماء الذي سيتم استخدامه لتحليل نظام أسماء النطاقات لعناوين 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 .