• إصدار
  • حزمة تطوير API
  • الخزنة
  • واجهة حساب البرمجة

تحديثات منتج لوغتو

🎉 نقدم لكم إصدار يوليو: حزمة تطوير API للوغتو، خزنة سرية لتخزين رموز الاتحاد، إدارة رموز TOTP ورموز النسخ الاحتياطي عبر واجهة حساب البرمجة (API)، والمزيد!

Simeng
Simeng
Developer

توقف عن إضاعة أسابيع في مصادقة المستخدم
أطلق تطبيقات آمنة بشكل أسرع مع Logto. قم بدمج مصادقة المستخدم في دقائق وركز على منتجك الأساسي.
ابدأ الآن
Product screenshot

حزمة تطوير API للوغتو

حزمة TypeScript للتفاعل مع واجهة إدارة لوغتو باستخدام مصادقة بيانات الاعتماد للعملاء.

كيفية العمل:

  1. أنشئ تطبيق آلة لآلة في لوحة تحكم لوغتو.
  2. امنح التطبيق حق الوصول إلى واجهة إدارة API.
  3. ثبّت الحزمة عبر npm: npm install @logto/api
  4. استخدم createManagementApi() لإنشاء عميل واجهة إدارة API مع بيانات اعتماد تطبيقك.

أبرز المميزات:

  • يتعامل تلقائيًا مع مصادقة وتحديث رموز OAuth.
  • يدعم كل من لوغتو كلاود والنُسخ المستضافة ذاتيًا.
  • يبسط التكامل مع واجهة إدارة لوغتو، مما يتيح لك التركيز على بناء الميزات بدلاً من التعامل مع طلبات API المنخفضة المستوى.

الخزنة السرية

الخزنة السرية هي حل تخزين آمن في لوغتو لإدارة بيانات المستخدم الحساسة، بما في ذلك رموز الوصول، مفاتيح API، الرموز السرية، وغيرها من المعلومات السرية. تُستخدم هذه الأسرار عادةً للوصول إلى خدمات الجهات الخارجية نيابةً عن المستخدمين، مما يجعل التخزين الآمن أمرًا بالغ الأهمية.

دعم تخزين الرموز الموحدة (Federated Token Storage)

أصبح تخزين الرموز مدعومًا الآن لوصلات تسجيل الدخول الأحادي (SSO) الاجتماعية والمهنية. عند تفعيلها، يخزن لوغتو مجموعة الرموز التي يصدرها موفر الهوية بعد المصادقة الناجحة. يمكن للتطبيقات بعد ذلك استرجاع رمز الوصول لاحقًا—دون الحاجة إلى إعادة مصادقة المستخدم—لاستدعاء واجهات برمجة التطبيقات للجهات الخارجية.

الوصلات المدعومة:

  • الوصلات الاجتماعية: GitHub، Google، Facebook، OAuth 2.0 القياسي، و OIDC القياسي
  • وصلات SSO المهنية: جميع وصلات SSO المبنية على OIDC

كيفية العمل:

  1. قم بتفعيل تخزين الرموز لوصلات SSO الاجتماعية والمهنية في لوحة تحكم لوغتو أو عبر واجهة إدارة لوغتو البرمجية.
  2. بمجرد التفعيل، يخزن لوغتو تلقائيًا مجموعة الرموز التي يصدرها المزود بعد مصادقة المستخدم بنجاح.
  3. استرجع الرمز المخزن من خلال واجهة حساب البرمجة (API) عند الحاجة.

لمزيد من التفاصيل، اطلع على توثيق الخزنة السرية.

إضافة TOTP ورموز النسخ الاحتياطي عبر واجهة حساب البرمجة (API)

يمكن للمستخدمين الآن إضافة رموز TOTP ورموز النسخ الاحتياطي عبر واجهة حساب البرمجة (API).

  • POST /api/my-account/mfa-verifications/totp-secret/generate: توليد رمز سري لـ TOTP.
  • POST /api/my-account/mfa-verifications/backup-codes/generate: توليد رموز نسخ احتياطي.
  • POST /api/my-account/mfa-verifications: إضافة رمز TOTP أو رمز نسخ احتياطي باستخدام السر أو الرموز التي تم توليدها.
  • GET /api/my-account/mfa-verifications/backup-codes: استرجاع رموز النسخ الاحتياطي.

تحسينات أخرى

  • الوصلات الاجتماعية: تمت إضافة دعم لتوفير معلمة scope مخصصة عند توليد رابط التخويل لوصلات التواصل الاجتماعي. يتيح لك ذلك طلب أذونات إضافية من مزود الخدمة الاجتماعية عند استدعاء نقطة تحقق التواصل الاجتماعي للوغتو. إذا تم توفير النطاق فسيُستخدم في طلب التخويل؛ وإلا فسيتم استخدام النطاق الافتراضي المُعد في إعدادات الموصل.
  • لوحة التحكم: لدعم ميزة الخزنة السرية الجديدة بشكل أفضل، قمنا بإعادة هيكلة تخطيط صفحة تفاصيل المستخدم. أصبحت الهويات الاجتماعية وهويات SSO المهنية للمستخدمين منظمة الآن في قسم "الاتصال" الجديد. يسرد هذا القسم جميع الاتصالات المرتبطة للمستخدم، ويعرض معلومات هوية الطرف الثالث وحالة تخزين الرموز (إن وجدت). كما تتوفر صفحة هوية مستخدم مفصلة لكل اتصال، توفر مزيدًا من المعلومات حول الهوية المرتبطة ورموزها ذات الصلة.

إصلاحات الأخطاء

قيود المفتاح الأجنبي الواعية للمستأجر لجدول organization_user_relations

المشكلة

كان المطورون قد يخطئون في تعيين user_id من مستأجر آخر لمنظمة، مما يؤدي إلى ظهور أخطاء 500 في نقاط API لمستخدمي المنظمة. كان جدول organization_user_relations الأصلي يحتوي فقط على قيد مفتاح أجنبي على users (id)، مما يسمح بتعيين أي معرف مستخدم موجود بغض النظر عن عزل المستأجر.

جذر المشكلة

يطبق لوغتو أمان الصفوف (RLS) على جميع الجداول لعزل وصول البيانات بين المستأجرين. عند ربط جدول المستخدمين بـ organization_user_relations، تصبح بيانات المستخدم الفعلية غير متاحة للمستأجر الحالي بسبب قيود RLS، مما يؤدي إلى عودة بيانات المستخدم بقيمة فارغة وحدوث أخطاء خادم 500.

الحل

تمت إضافة قيد مفتاح أجنبي مركب (tenant_id, user_id) يشير إلى users (tenant_id, id) لضمان أن معرف مستأجر المنظمة يطابق معرف مستأجر المستخدم. يفرض هذا القيد العزل المناسب للمستأجر على مستوى قاعدة البيانات.