• إصدار

تحديثات منتج Logto (أغسطس 2024)

استكشف إصدارنا في أغسطس 2024 الذي يشتمل على تقليد المستخدم وإدارة أسرار التطبيقات والتخصيص في تجربة تسجيل الدخول على مستوى المؤسسة والتطبيق، وأكثر من ذلك بكثير.

Simeng
Simeng
Developer

تقليد المستخدم (RFC 8693: تبادل الرموز OAuth 2.0)

أضيف الدعم لتقليد المستخدم عبر تبادل الرموز:

  • نقطة نهاية جديدة API الإدارية POST /subject-tokens لطلب subject_token لاستخدام تبادل الرموز.
  • تحديث نقطة نهاية OIDC POST /oidc/token مع نوع منحة جديد urn:ietf:params:oauth:grant-type:token-exchange لتبديل subject_token مع access_token لمحاكاة المستخدم.

راجع تقليد المستخدم لمزيد من التفاصيل.

custom_data على مستوى التطبيق

تمت إضافة حقل كائن تعسفي جديد custom_data للتطبيقات. يمكن لهذا الحقل تخزين أي معلومات إضافية غير محددة في مخطط Application القياسي.

انقر لتوسيع تحديثات API الإدارية
  • نقطة نهاية جديدة PATCH /api/applications/{applicationId}/custom-data لتحديث حقل custom_data في تطبيق.
  • تحديث نقطة نهاية PATCH /api/applications/{applicationId} للسماح بالكتابة فوق حقل custom_data.
انقر لتوسيع تحديثات Console

تمت إضافة محرر بيانات JSON مخصص جديد إلى صفحة تفاصيل التطبيق (باستثناء التطبيقات المحمية).

إدارة أسرار التطبيقات المتعددة

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

ملاحظة: يمكن استخدام السر القديم الذي تم إنشاؤه قبل هذه الميزة للمصادقة العميلية. ومع ذلك، يُوصى بحذف القديم وإنشاء أسرار جديدة مع انتهاء صلاحية لتحسين الأمان.

انقر لتوسيع تحديثات API الإدارية
  • GET /api/applications/{applicationId}/secrets: عرض جميع أسرار تطبيق.
  • POST /api/applications/{applicationId}/secrets: إنشاء سر جديد لتطبيق.
  • DELETE /api/applications/{applicationId}/secrets/{name}: حذف سر لتطبيق حسب الاسم.
  • PATCH /api/applications/{applicationId}/secrets/{name}: تحديث سر لتطبيق حسب الاسم.
  • DELETE /api/applications/{applicationId}/legacy-secret: حذف السر القديم لتطبيق واستبداله بجديد.
انقر لتوسيع تحديثات Console

لإدارة أسرار تطبيقك، انتقل إلى Logto Console -> التطبيقات -> تفاصيل التطبيق -> نقاط النهاية وبيانات الاعتماد.

تم الآن استبدال حقل الإدخال الخاص بسر التطبيق الأصلي الذي كان للقراءة فقط بجدول إدارة الأسرار الجديد. يمكنك إنشاء وتحديث وحذف الأسرار في هذا الجدول.

التخصيص على مستوى المؤسسة والتطبيق

شعار المؤسسة

الآن يمكنك تعيين شعارات فاتحة اللون ومظلمة للمؤسسات. يمكنك تحميل الشعارات في صفحة إعدادات المؤسسة.

يمكنك أيضًا تجاوز شعار تجربة تسجيل الدخول من مؤسسة. ببساطة اضف معلمة organization_id إلى طلب المصادقة. في معظم حزم SDK الخاصة بـ Logto، يمكن القيام بذلك باستخدام حقل extraParams في طريقة signIn.

على سبيل المثال، في حزمة JavaScript SDK:

يمكن العثور على القيمة <organization-id> في صفحة إعدادات المؤسسة.

إذا لم تتمكن من العثور على حقل extraParams في حزمة SDK التي تستخدمها، يرجى إبلاغنا.

تخصيص على مستوى التطبيق

يمكنك الآن تعيين الشعارات والأيقونات والألوان لتطبيقك. سيتم استخدام هذه الإعدادات في تجربة تسجيل الدخول عندما يبدأ التطبيق تدفق المصادقة. للتطبيقات التي ليس لديها إعدادات توجيه، سيتم استخدام التجربة الشاملة لتسجيل الدخول.

إذا كانت organization_id متوفرة في طلب المصادقة، سيتم تجاوز إعدادات توجيه التطبيق بواسطة إعدادات توجيه المؤسسة، إذا كانت متاحة.

تحسينات الأداء

دعم خادم التطبيقات للوصول إلى الجانب الخادم

الآن يقوم Logto بحقن إعدادات وعبارات تجربة تسجيل الدخول في ملف index.html لتحسين الأداء على الشاشة الأولى. لا يزال تطبيق التجربة يقوم بجلب الإعدادات والعبارات من الخادم إذا:

  • لم يحقن الخادم الإعدادات والعبارات.
  • كانت المعلمات في عنوان URL تختلف عن البيانات المقدمة من الخادم.

تحسينات بناء الحزم

  • استخدام tsup لبناء حزم الموصلات. هذا سيجعل عملية البناء أسرع ولا يؤثر على وظيفة الحزم.
  • استخدام Vite للتحويل والتجميع لحزم @logto/console و@logto/demo-app و@logto/experience . تمت إزالة ParcelJS واستبداله بـ Vite. لا يجب توقع تغييرات مؤثرة.

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

إصلاح سلوك تحديث jsonb في نقطة نهاية PATCH /api/applications/{applicationId}

يجب تحديث جميع الحقول jsonb لكائن Application في وضع استبدال بدلاً من وضع دمج. سيجعل هذا التغيير الطريقة PATCH أكثر توقعًا ومتسقة مع تصميم RESTful API.

  • تحديث وضع تحديث حقل jsonb من دمج إلى استبدال في نقطة نهاية PATCH /api/applications/{applicationId}.
  • تحديث التحقق من صحة معلمات إدخال حقل API jsonb من جزئي إلى كامل في نقطة نهاية PATCH /api/applications/{applicationId}.
  • الحقول المتأثرة: oidc_client_metadata, custom_client_metadata, protected_app_metadata وcustom_data.

ملاحظة: إذا كنت تستخدم Logto console لتحديث إعدادات Application ، فلا ينبغي أن تتأثر بهذا التغيير. يجب أن يكون مستخدمو API الذين يستخدمون الطريقة PATCH لتحديث إعدادات حقل Application jsonb واعين بهذا التغيير. ستقوم الطريقة PATCH الآن باستبدال الحقل jsonb الكامل بالبيانات المدخلة الجديدة. سيتم رفض أي بيانات مدخلة جزئية في الحقول المتأثرة.

إصلاح بعض أحداث تقارير webhook التي دائمًا تُعيد حالة استجابة API 404

الأحداث المتأثرة لـ webhook: Role.Scopes.Updated, Organizations.Membership.Updates.

كانت حالة رمز استجابة API التي تُعاد من الحمولة الحدثية للـ webhook دائمًا 404. وكان ذلك بسبب إدراج الحمولة الحدثية قبل ضبط سياق استجابة API.

بما أننا نقوم بتفعيل الـ webhook فقط عندما يتم معالجة الحدث بنجاح، فيجب أن يكون رمز الحالة دائمًا 2xx.

تم إصلاح هذه المشكلة عن طريق نقل إدراج الحمولة الحدثية بعد ضبط سياق استجابة API.

تحسينات أخرى

  • الآن يمكن تعيين الأيقونة المفضلة للثيمة المظلمة في إعدادات توجيه تجربة تسجيل الدخول.
  • إضافة خوارزميات جديدة لتجزئة كلمات المرور: Argon2d وArgon2id. سيتم تحويل المستخدمين الذين يستخدمون تلك الخوارزميات إلى Argon2i عند التسجيل بنجاح.
  • تم موائمة تكوين قائمة المتصفحات لـ @logto/experience مع ما هو مذكور في README.md.
  • تحسين وصف التوثيق الخاص بالـ swagger. استخدم مخطط أمان OAuth2 الخاص بـ OpenAPI بدلاً من مخطط أمان مستند على ترويسات HTTP المخصصة.