امن‌سازی ربات تلگرام: احراز هویت کاربر و هشدارهای مدیر

امن‌سازی ربات تلگرام: احراز هویت کاربر و هشدارهای مدیر

11 دقیقه مطالعه · منتشر شده ۱۴۰۵/۴/۲۷

دانلود workflow

فایل JSON آماده import در n8n — credentialها باید در n8n شما تنظیم شوند.

  1. فایل JSON را دانلود کنید.
  2. در n8n: Workflows → Import from File.
  3. Credentialهای هر node را متصل کنید.
  4. workflow را فعال کنید.

شناسه workflow: 9203 · منبع: کاتالوگ Axeto

امن‌سازی ربات تلگرام شما: پیاده‌سازی احراز هویت کاربر و هشدارهای مدیر

این گردش کار یک لایه احراز هویت قوی برای ربات تلگرام شما ایجاد می‌کند. این اطمینان حاصل می‌کند که فقط کاربران تأیید شده می‌توانند با ربات شما تعامل داشته باشند، و همزمان مدیران را از هرگونه تلاش برای دسترسی غیرمجاز مطلع می‌سازد. این امر برای محافظت از عملیات حساس، مدیریت هزینه‌های مربوط به استفاده از ربات و جلوگیری از سوء استفاده احتمالی بسیار مهم است.

این گردش کار را در کاتالوگ Axeto کاوش کنید: Axeto.ai/n8n

---

نمای کلی گردش کار

این گردش کار برای موارد زیر طراحی شده است:

1. دریافت پیام‌های ورودی: پیام‌های ارسال شده به ربات تلگرام شما را از طریق یک وب‌هوک دریافت می‌کند.

2. پیاده‌سازی منطق احراز هویت: تعیین می‌کند که آیا فرستنده یک کاربر مجاز، یک مدیر (administrator) یا یک فرد غیرمجاز است.

3. اجرای کنترل دسترسی: مسیریابی تعامل بر اساس وضعیت احراز هویت.

4. اطلاع‌رسانی به کاربران: ارسال پیام‌های تأیید به کاربران مجاز یا پیام‌های رد به کاربران غیرمجاز.

5. هشدار به مدیران: فوراً مدیران را از هرگونه تلاش برای دسترسی غیرمجاز مطلع می‌کند.

6. ارائه راهنمایی: ارائه مستندات واضح و دستورالعمل‌های شروع سریع از طریق یادداشت‌های چسبان (sticky notes).

---

تحلیل گره‌های جزئیات

۱. دریافت پیام

  • هدف: دریافت تمام پیام‌های ورودی که به ربات تلگرام شما ارسال می‌شوند.
  • گره: Telegram Trigger

* نوع: Telegram Trigger

* عملکرد: گوش دادن و دریافت به‌روزرسانی‌ها از API تلگرام.

* پیکربندی:

* تنظیم برای نظارت بر به‌روزرسانی‌های message.

* نیاز به اعتبارنامه API ربات تلگرام شما (مانند ElishevFamilyBot).

* ورودی: بارگذاری وب‌هوک از تلگرام.

* خروجی: داده‌های پیام ورودی را برای پردازش به گره بعدی منتقل می‌کند.

* ملاحظات: اتصال پایدار به API تلگرام را تضمین کنید. مشکلات احتمالی مربوط به محتوای پیام گمشده یا بدشکل را مدیریت کنید.

* یادداشت‌ها: از webhookId برای مدیریت ثبت‌نام‌های وب‌هوک استفاده می‌کند.

۲. منطق احراز هویت

  • هدف: پردازش پیام‌های ورودی، بررسی وضعیت احراز هویت کاربر و آماده‌سازی پاسخ‌های مرتبط.
  • گره: BotGuard Authorization

* نوع: Code (JavaScript)

* عملکرد: پیاده‌سازی منطق اصلی برای احراز هویت کاربر.

* پیکربندی:

* لیست سفید کاربران: آرایه‌هایی (AllowedUsers, Administrators) حاوی شناسه‌های کاربر، نام‌های کاربری، انواع اشتراک و شناسه‌های چت مدیران را تعریف کنید.

* شناسایی کاربر: اطلاعات فرستنده را از JSON پیام تلگرام ورودی استخراج می‌کند.

* بررسی احراز هویت:

* بررسی می‌کند که آیا کاربر در لیست AllowedUsers یا Administrators قرار دارد.

* کاربرانی را که سعی در درخواست دسترسی دارند (مثلاً از طریق دستور /request) مدیریت می‌کند.

* تلاش‌های غیرمجاز را شناسایی می‌کند.

* تولید پیام: پیام‌های خاصی را برای موارد زیر ایجاد می‌کند:

* کاربران مجاز (پیام موفقیت).

* کاربران غیرمجاز (پیام رد، شامل شناسه آن‌ها).

* مدیران (پیام هشدار برای تلاش‌های غیرمجاز، به استثنای دستورات /request).

* خروجی داده: تمام اطلاعات مربوط به احراز هویت را تحت item.json.botGuard برای گره‌های پایین‌دستی پیوست می‌کند.

* منطق کلیدی:

* بررسی می‌کند که آیا شناسه کاربر در آرایه‌های تعریف شده AllowedUsers و Administrators وجود دارد.

* پیام‌های با فرمت HTML را برای اعلان‌های کاربر و مدیر ایجاد می‌کند.

* ورودی: داده‌های JSON از گره Telegram Trigger.

* خروجی: شیء JSON غنی شده حاوی وضعیت احراز هویت و پیام‌های آماده شده.

* ملاحظات: مدیریت خطای قوی برای داده‌های پیام گمشده/بدشکل و خطاهای اجرای جاوا اسکریپت با استفاده از try/catch پیاده‌سازی شده است.

* یادداشت‌ها: از جاوا اسکریپت ناهمزمان برای بهبود عملکرد و مدیریت خطا استفاده می‌کند.

۳. مسیریابی کنترل دسترسی

  • هدف: هدایت گردش کار بر اساس نتیجه بررسی احراز هویت.
  • گره: Check Authorization

* نوع: If

* عملکرد: مقدار بولی botGuard.allowEntry تولید شده توسط گره قبلی را ارزیابی می‌کند.

* پیکربندی:

* شرط: {{$json.botGuard.allowEntry}} === true

* ورودی: داده‌های JSON از BotGuard Authorization.

* خروجی:

* شاخه True: به اطلاع‌رسانی به کاربران مجاز ادامه می‌دهد.

* شاخه False: به اطلاع‌رسانی به کاربران غیرمجاز و احتمالاً هشدار به مدیران ادامه می‌دهد.

* ملاحظات: مواردی را که فیلد allowEntry ممکن است گمشده یا نامعتبر باشد، مدیریت می‌کند.

* یادداشت‌ها: از اعتبارسنجی نوع شل برای شرط پشتیبانی می‌کند.

۴. اطلاع‌رسانی کاربر

  • هدف: ارسال پیام‌های مناسب به کاربر تلگرام.
  • گره‌ها: Send Success, Send Denied

* گره Send Success:

* نوع: Telegram

* عملکرد: به کاربر اطلاع می‌دهد که دسترسی او مجاز است.

* پیکربندی:

* متن: {{$json.botGuard.authorizedMessage}} (با فرمت HTML).

* Chat ID: {{$json.botGuard.chatId}}.

* Parse Mode: HTML.

* ورودی: شاخه True از Check Authorization.

* خروجی: ندارد.

* ملاحظات: خطاهای احتمالی API تلگرام (مانند شناسه چت نامعتبر) را مدیریت می‌کند.

* گره Send Denied:

* نوع: Telegram

* عملکرد: به کاربر اطلاع می‌دهد که دسترسی او رد شده است.

* پیکربندی:

* متن: {{$json.botGuard.userMessage}} (با فرمت HTML).

* Chat ID: {{$json.botGuard.chatId}}.

* Parse Mode: HTML.

* ورودی: شاخه False از Check Authorization.

* خروجی: اجرای را به Check Admin Notify منتقل می‌کند.

* ملاحظات: خطاهای احتمالی API تلگرام و شناسه‌های چت گمشده/نامعتبر را مدیریت می‌کند.

۵. اطلاع‌رسانی مدیر

  • هدف: هشدار به مدیران در مورد تلاش‌های دسترسی غیرمجاز.
  • گره‌ها: Check Admin Notify, Prepare Admin Notifications, Notify Admin

* گره Check Admin Notify:

* نوع: If

* عملکرد: با بررسی اینکه آیا رشته adminMessage پر شده است، تعیین می‌کند که آیا هشدار مدیر لازم است یا خیر.

* ورودی: شاخه False از Check Authorization (پس از Send Denied).

* خروجی:

* True: به آماده‌سازی اعلان‌ها ادامه می‌دهد.

* False: گردش کار را برای این اجرا پایان می‌دهد.

* ملاحظات: پیام‌های مدیر خالی یا گمشده را مدیریت می‌کند.

* گره Prepare Admin Notifications:

* نوع: Code

* عملکرد: موارد اعلان جداگانه برای هر مدیر ایجاد می‌کند.

* پیکربندی:

* آرایه Administrators و adminMessage را از داده‌های botGuard استخراج می‌کند.

* داده‌ها را تبدیل می‌کند تا یک مورد جداگانه برای هر مدیر، شامل chatId، username و message آن‌ها ایجاد کند.

* ورودی: شاخه True از Check Admin Notify.

* خروجی: موارد متعدد، آماده برای ارسال اعلان موازی.

* ملاحظات: مواردی را که آرایه Administrators ممکن است خالی باشد، مدیریت می‌کند.

* گره Notify Admin:

* نوع: Telegram

* عملکرد: پیام هشدار را به چت هر مدیر ارسال می‌کند.

* پیکربندی:

* متن: {{$json.adminMessage}} (با فرمت HTML).

* Chat ID: {{$json.adminChatId}} (به صورت پویا از موارد آماده شده تنظیم می‌شود).

* Parse Mode: HTML.

* ورودی: خروجی از Prepare Admin Notifications.

* خروجی: ندارد.

* ملاحظات: خطاهای احتمالی API تلگرام و شناسه‌های چت مدیر نامعتبر را مدیریت می‌کند.

۶. مستندات و راهنمایی

  • هدف: ارائه اطلاعات ضروری و دستورالعمل‌های راه‌اندازی به کاربران.
  • گره‌ها: Sticky Note - Intro, Sticky Note - Quick Start, Sticky Note1

* نوع: Sticky Note

* عملکرد: به عنوان مستندات درون گردش کار عمل می‌کند.

* نکات برجسته محتوا:

* مقدمه: خطرات ربات‌های ناامن و مزایای سیستم BotGuard را توضیح می‌دهد.

* شروع سریع: راهنمایی گام به گام برای پیکربندی کاربران مجاز، مدیران و تست گردش کار را ارائه می‌دهد.

* پیکربندی دقیق: مثال‌های کد جامع برای آرایه‌های کاربر/مدیر، جزئیات مربوط به هشدارهای مدیر و دستورالعمل‌هایی در مورد نحوه بازیابی شناسه‌های کاربر را ارائه می‌دهد.

* محل قرارگیری: برای دسترسی آسان در بوم گردش کار قرار گرفته است.

* ملاحظات: این گره‌ها صرفاً اطلاعاتی هستند و بر اجرای گردش کار تأثیر نمی‌گذارند.

---

جدول خلاصه

نام نود (Node Name)نوع نود (Node Type)عملکرد اصلی (Primary Function)ورودی از نود(های) (Input From Node(s))خروجی به نود(های) (Output To Node(s))یادداشت چسبان مرتبط (Associated Sticky Note)
Telegram TriggerTelegram Triggerدریافت پیام‌های تلگرام ورودیBotGuard Authorization
BotGuard AuthorizationCodeبررسی مجوز، آماده‌سازی پیام‌هاTelegram TriggerCheck Authorization
Check AuthorizationIfمسیریابی بر اساس وضعیت مجوزBotGuard AuthorizationSend Success, Send Denied
Send SuccessTelegramاطلاع‌رسانی به کاربر مجازCheck Authorization (True)
Send DeniedTelegramاطلاع‌رسانی به کاربر غیرمجازCheck Authorization (False)Check Admin Notify
Check Admin NotifyIfتعیین نیاز به هشدار ادمینSend DeniedPrepare Admin Notifications
Prepare Admin NotificationsCodeایجاد آیتم‌های هشدار برای هر ادمینCheck Admin Notify (True)Notify Admin
Notify AdminTelegramارسال هشدارهای دسترسی غیرمجازPrepare Admin Notifications
Sticky Note - IntroSticky Noteمستندات: مشکل و راه‌حل🛡️ BotGuard - چرا به این نیاز دارید: خطرات ربات‌های باز و مزایای BotGuard را توضیح می‌دهد.
Sticky Note - Quick StartSticky Noteدستورالعمل‌های راه‌اندازی سریع🚀 شروع سریع: مراحل پیکربندی کاربران/ادمین‌ها و تست جریان مجوز.
Sticky Note1Sticky Noteپیکربندی و استفاده دقیق🛡️ سیستم احراز هویت BotGuard: مثال‌های کامل پیکربندی، جزئیات هشدار ادمین، بازیابی شناسه کاربر.

بازسازی گردش کار (Workflow)

برای بازسازی این گردش کار، مراحل زیر را دنبال کنید:

1. افزودن گره Telegram Trigger:

* نوع: Telegram Trigger

* اعتبارنامه‌ها (Credentials): با توکن ربات تلگرام خود پیکربندی کنید (مثلاً ElishevFamilyBot).

* Updates: برای گوش دادن به به‌روزرسانی‌های message تنظیم کنید.

* این گره را روی بوم خود قرار دهید.

2. افزودن گره کد BotGuard Authorization:

* خروجی گره Telegram Trigger را به ورودی این گره متصل کنید.

* نوع: Code

* کد (Code): کد جاوا اسکریپت ارائه شده را جای‌گذاری کنید. این کد باید:

* آرایه‌های AllowedUsers و Administrators را تعریف کند، شامل شناسه‌های کاربری، نام‌های کاربری، انواع اشتراک و شناسه‌های چت مدیران.

* اطلاعات کاربر را از JSON پیام تلگرام دریافتی استخراج کند.

* منطق بررسی اینکه آیا کاربر مجاز است یا مدیر، پیاده‌سازی کند.

* پیام‌های مناسب برای کاربران مجاز، کاربران غیرمجاز و هشدارهای مدیران آماده کند.

* اطمینان حاصل کند که تمام داده‌های مرتبط تحت item.json.botGuard پیوست شده‌اند.

* این گره را روی بوم خود قرار دهید.

3. افزودن گره If برای بررسی مجوز (Check Authorization):

* خروجی BotGuard Authorization را به این گره متصل کنید.

* نوع: If

* شرط (Condition): {{$json.botGuard.allowEntry}} === true

* این گره را روی بوم خود قرار دهید.

4. افزودن گره تلگرام Send Success:

* خروجی True گره Check Authorization را به این گره متصل کنید.

* نوع: Telegram

* متن (Text): {{$json.botGuard.authorizedMessage}}

* شناسه چت (Chat ID): {{$json.botGuard.chatId}}

* حالت تجزیه (Parse Mode): HTML

* این گره را روی بوم خود قرار دهید.

5. افزودن گره تلگرام Send Denied:

* خروجی False گره Check Authorization را به این گره متصل کنید.

* نوع: Telegram

* متن (Text): {{$json.botGuard.userMessage}}

* شناسه چت (Chat ID): {{$json.botGuard.chatId}}

* حالت تجزیه (Parse Mode): HTML

* این گره را روی بوم خود قرار دهید.

6. افزودن گره If برای بررسی اطلاع‌رسانی مدیر (Check Admin Notify):

* خروجی گره Send Denied را به این گره متصل کنید.

* نوع: If

* شرط (Condition): {{$json.botGuard.adminMessage}} (این بررسی می‌کند که آیا پیام خالی نیست).

* این گره را روی بوم خود قرار دهید.

7. افزودن گره کد Prepare Admin Notifications:

* خروجی True گره Check Admin Notify را به این گره متصل کنید.

* نوع: Code

* کد (Code): جاوا اسکریپتی را پیاده‌سازی کنید که در آرایه Administrators و botGuard.adminMessage پیمایش کند و برای هر مدیر، یک آیتم خروجی جداگانه با chatId و محتوای پیام او ایجاد کند.

* این گره را روی بوم خود قرار دهید.

8. افزودن گره تلگرام Notify Admin:

* خروجی گره Prepare Admin Notifications را به این گره متصل کنید.

* نوع: Telegram

* متن (Text): {{$json.adminMessage}}

* شناسه چت (Chat ID): {{$json.adminChatId}}

* حالت تجزیه (Parse Mode): HTML

* این گره را روی بوم خود قرار دهید.

9. افزودن یادداشت‌های چسبان (Sticky Notes):

* سه گره Sticky Note اضافه کنید: Sticky Note - Intro، Sticky Note - Quick Start و Sticky Note1.

* آنها را با مستندات و دستورالعمل‌های مربوطه همانطور که در بخش "مستندات و راهنمایی" توضیح داده شده، پر کنید.

* آنها را به وضوح روی بوم قرار دهید تا به راحتی قابل ارجاع باشند.

10. اتصال گره‌ها: اطمینان حاصل کنید که تمام گره‌ها مطابق با منطق گردش کار که در بالا توضیح داده شد، به درستی متصل شده‌اند.

11. پیکربندی اعتبارنامه‌ها: مجدداً بررسی کنید که تمام اعتبارنامه‌ها و توکن‌های API لازم در گره‌های مربوطه به درستی تنظیم شده باشند.

Nodeهای استفاده‌شده

سوالات متداول

این گردش کار n8n چگونه امنیت ربات تلگرام را افزایش می‌دهد؟

این گردش کار با پیاده‌سازی یک لایه احراز هویت، اطمینان حاصل می‌کند که فقط کاربران مجاز (که در لیست سفید تعریف شده‌اند) می‌توانند با ربات تعامل داشته باشند. همچنین، هرگونه تلاش برای دسترسی غیرمجاز را شناسایی کرده و فوراً مدیران را مطلع می‌سازد.

چه کسانی می‌توانند از این گردش کار برای ربات تلگرام استفاده کنند؟

این گردش کار برای هر کسی که نیاز به کنترل دقیق دسترسی به ربات تلگرام خود دارد، مفید است. این شامل توسعه‌دهندگان، مدیران کسب‌وکار و هر کسی است که از ربات برای عملیات حساس یا مدیریت منابع استفاده می‌کند.

چگونه می‌توانم کاربران مجاز را برای ربات تلگرام خود تعریف کنم؟

در گره کد جاوا اسکریپت گردش کار، آرایه‌هایی به نام `AllowedUsers` و `Administrators` وجود دارد. شما می‌توانید شناسه‌های کاربری، نام‌های کاربری یا سایر اطلاعات شناسایی کاربران مجاز و مدیران را در این آرایه‌ها اضافه کنید.

چه اتفاقی می‌افتد اگر یک کاربر غیرمجاز سعی در استفاده از ربات داشته باشد؟

اگر یک کاربر غیرمجاز سعی در تعامل با ربات داشته باشد، گردش کار او را شناسایی کرده و یک پیام رد به او ارسال می‌کند. همزمان، یک هشدار به مدیران ارسال می‌شود تا از تلاش برای دسترسی غیرمجاز مطلع شوند.

workflowهای مرتبط

این workflow در کاتالوگ Axeto.ai بایگانی شده است. لایسنس اصلی متعلق به سازنده workflow است.