صف المشكلة/الخطأ/السؤال
بعد التبديل من Microsoft إلى Nextcloud، حاولنا إعداد سير عمل باستخدام n8n لمزامنة تقاويم Outlook/Teams مع تقويم Nextcloud الخاص بنا (التطبيق المميز) ونواجه المشكلة التالية:
للقراءة من وكتابة الأحداث إلى تقاويم Nextcloud الخاصة بنا، الخيار الوحيد الذي نعرفه هو استخدام طلبات HTTP مع المصادقة الأساسية، وهذا يبدو غير عملي إلى حد ما، لأنه سيتطلب جمع بيانات اعتماد تسجيل الدخول لكل مستخدم.
هل يعرف أحد طريقة للالتفاف حول هذه المشكلة؟ على سبيل المثال، مستخدم إداري له أذونات قراءة/كتابة على تقويم المستخدمين الآخرين؟
أطيب التحيات،
Frederic
ما هي رسالة الخطأ (إن وجدت)؟
يرجى مشاركة سير العمل الخاص بك
(حدد العقد على لوحتك واستخدم اختصارات لوحة المفاتيح CMD+C/CTRL+C و CMD+V/CTRL+V لنسخ ولصق سير العمل.)
شارك المخرجات التي أرجعتها العقدة الأخيرة
مرحبا @FredericDomke أهلا وسهلا!
هناك نقطتان منفصلتان هنا. أولاً، المصادقة الأساسية (Basic Auth) لـ CalDAV لا تعني جمع كلمة المرور الفعلية لأي شخص: كلمات مرور تطبيق Nextcloud هي رموز فريدة لكل مستخدم وكل جهاز يتم إنشاؤها ضمن إعدادات شخصية > الأمان > الأجهزة والجلسات، وتقوم بالمصادقة عبر المصادقة الأساسية تماماً مثل عميل CalDAV العادي. يمكن إلغاء تفعيلها بشكل فردي ولا تكشف أبداً عن كلمة مرور الحساب، لذا هذه هي الطريقة الآمنة لما تفعله بالفعل. نقطة نهاية التقويم هي مسار DAV، وليس عقدة Nextcloud (التي تغطي الملفات والمستخدمين فقط): https://your-nextcloud/remote.php/dav/calendars///
ثانياً، لا توجد بيانات اعتماد مسؤول مدمجة تقرأ وتكتب شفافياً في تقويم كل مستخدم شخصي. الطريقة المدعومة لتشغيل هذا من بيانات اعتماد واحدة هي مشاركة التقويم مع حساب الخدمة:
- قم بإنشاء مستخدم Nextcloud مخصص واحد، على سبيل المثال n8n-sync.
- اطلب من كل مستخدم مشاركة تقويمه مع n8n-sync وحدد “يمكن التعديل” (أو انقل التقاويم التي تقوم بمزامنتها إلى تقاويم مشتركة/جماعية يمتلكها حساب الخدمة).
- قم بإنشاء كلمة مرور تطبيق واحدة لـ n8n-sync.
- في n8n، استخدم بيانات اعتماد طلب HTTP واحد (المصادقة الأساسية، المستخدم n8n-sync + كلمة المرور تلك) واضغط على /remote.php/dav/calendars/n8n-sync// لكل من القراءات (REPORT/PROPFIND) والكتابات (PUT).
هذا يعطيك بيانات اعتماد واحدة تغطي كل تقويم مشترك، مع عدم الحاجة إلى جمع كلمات مرور لكل مستخدم.