احراز هویت با LDAP در n8n
بازارچه ابریخواندن 5 دقیقه
با اتصال n8n به یک دایرکتوری LDAP ورود کاربران به n8n از همان دایرکتوری سازمانی انجام میشود و نیازی به ساخت و مدیریت جداگانه حساب کاربری در n8n نیست.
پیشنیازها
- یک سرویس فعال n8n با قاب لیت Enterprise مربوط به LDAP و دسترسی owner
- یک سرور LDAP یا Active Directory در دسترس از شبکه n8n
برخلاف بسیاری از سرویسهای دیگر، اتصال LDAP در n8n از طریق متغیر محیطی یا تنظیمات کنسول همروش انجام نمیشود؛ تمام این تنظیمات مستقیماً از داخل خود n8n در دسترس است.
گام اول: فعالسازی LDAP در n8n
- با کاربر owner وارد n8n میشود.
- از مسیر Settings > LDAP، گزینه Enable LDAP Login فعال میشود.
- اطلاعات اتصال به سرور LDAP، مطابق جدول زیر تکمیل میشود:
| فیلد | توضیحات | مقدار نمونه |
|---|---|---|
Server | آدرس سرور LDAP | ldap.example.com |
Port | پورت اتصال به سرور LDAP | 389 |
Connection Security | نوع رمزنگاری اتصال (None، TLS یا STARTTLS) | None |
Base DN | مسیر پایه جستوجوی کاربران در دایرکتوری | ou=people,dc=example,dc=org |
| فیلد | توضیحات | مقدار نمونه |
|---|---|---|
Binding DN | حساب سرویسی که n8n برای اتصال و جستوجو در LDAP از آن استفاده میکند | cn=keycloak-reader,dc=example,dc=org |
Binding Password | رمز عبور همان حساب سرویسی | <LDAP_ADMIN_PASSWORD> |
User Filter | فیلتر اختیاری برای محدود کردن کاربران مجاز به ورود | (ObjectClass=user) |
- در بخش Attribute Mapping همان صفحه، نگاشت صفتهای کاربر در LDAP مشخص میشود:
| فیلد | توضیحات | مقدار نمونه |
|---|---|---|
LDAP ID Attribute | صفت شناسه یکتای هر کاربر در دایرکتوری | uid |
Login ID Attribute | صفتی که بهعنوان نام کاربری هنگام ورود استفاده میشود | uid |
Email Attribute | صفت نگهدارنده ایمیل کاربر | mail |
First Name Attribute | صفت نگهدارنده نام کاربر | givenName |
Last Name Attribute | صفت نگهدارنده نام خانوادگی کاربر | sn |
برای نمونه، کاربرانی با مقادیر زیر در دایرکتوری، بر اساس نگاشت بالا، با همین نام کاربری و نام کامل در n8n شناسایی میشوند:
| DN | uid | mail | givenName | sn |
|---|---|---|---|---|
uid=alice,ou=people,dc=example,dc=org | alice | alice@example.org | Alice | Doe |
uid=bob,ou=people,dc=example,dc=org | bob | bob@example.org | Bob | Smith |
uid=carol,ou=people,dc=example,dc=org | carol | carol@example.org | Carol | Jones |
- با دکمه Test connection، برقراری اتصال بررسی میشود.
- با دکمه Save connection، تنظیمات ذخیره میشود.
گام دوم: همگامسازی کاربران
پس از اتصال موفق، کاربران دایرکتوری LDAP در ورود به n8n شناسایی و ساخته میشوند و در ورودهای بعدی، اطلاعاتشان بهروزرسانی میشود. برای بررسی فوری، از دکمه Run synchronization استفاده میشود و نتیجه آن (شامل تعداد کاربران شناساییشده) در جدول همان صفحه نمایش داده میشود:
گام سوم: ورود کاربران با LDAP
پس از همگامسازی موفق، کاربران با نام کاربری و رمز عبور دایرکتوری LDAP در صفحه ورود n8n احراز هویت میشوند:
عیبیابی
خطای 0x31 (Invalid Credentials)
هنگام زدن دکمه Test connection، اگر اتصال به سرور LDAP برقرار شود ولی Bind ناموفق باشد، خطایی حاوی کد 0x31 نمایش داده میشود. این کد از سمت خود سرور LDAP برگردانده میشود (نه n8n) و به معنای Invalid Credentials است؛ یعنی سرور LDAP، DN یا رمز عبور ارسالی برای Bind را نپذیرفته است.
خطای اتصال (ECONNREFUSED / ETIMEDOUT)
اگر دکمه Test connection خطای اتصال برگرداند (نه خطای LDAP)، مشکل پیش از رسیدن به سرور است. موارد زیر بررسی میشوند:
- درست بودن آدرس سرور و پورت در فیلد Server (پورت پیشفرض LDAP:
389، LDAPS:636) - در دسترس بودن سرور LDAP از داخل همان پروژه (سرویسهای همپروژه با نام سرویس قابل دسترسی هستند)
خطای 0x32 (Insufficient Access Rights)
اگر Bind موفق باشد ولی جستوجوی کاربران با خطا مواجه شود، احتمالاً حساب Bind DN مجوز خواندن از آن OU را ندارد. در این حالت باید مطمئن شد که حساب سرویسی استفادهشده در فیلد Binding DN به محتوای Users Base DN دسترسی خواندن دارد.
راهنماییهای مرتبط
این راهنمایی کاربردی بود؟
با ثبت بازخوردتان در بهبود کیفیت مستندات مشارکت داشته باشید.