احراز هویت کاربران با OpenID Connect در n8n

احراز هویت کاربران با OpenID Connect در n8n

4 دقیقه مطالعه · منتشر شده ۱۴۰۵/۵/۶

دانلود workflow

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

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

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

احراز هویت کاربران با OpenID Connect در گردش‌های کاری n8n

این راهنما نحوه پیاده‌سازی احراز هویت کاربر در گردش‌های کاری n8n با استفاده از OpenID Connect (OIDC) را شرح می‌دهد. این راهنما بر امن‌سازی وب‌هوک‌ها با اطمینان از اینکه کاربران قبل از دسترسی به منابع گردش کار، از طریق یک ارائه‌دهنده OIDC (مانند Keycloak) احراز هویت می‌کنند، تمرکز دارد. گردش کار از جریان کد مجوز (Authorization Code flow) با PKCE (Proof Key for Code Exchange) برای امنیت بیشتر پشتیبانی می‌کند.

ویژگی‌های کلیدی:

  • وب‌هوک‌های امن: نقاط پایانی وب‌هوک n8n خود را با احراز هویت OIDC ایمن کنید.
  • یکپارچه‌سازی OIDC: جریان‌های ورود کاربر را با استفاده از پروتکل‌های استاندارد OIDC به طور یکپارچه ادغام کنید.
  • بازیابی پروفایل کاربر: اطلاعات پروفایل کاربر احراز هویت شده را برای استفاده در منطق گردش کار بعدی دریافت کنید.
  • پشتیبانی PKCE: جریان امن PKCE را برای کلاینت‌های OAuth 2.0 پیاده‌سازی می‌کند.

تجزیه و تحلیل گردش کار:

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

1. دریافت وب‌هوک: درخواست‌های ورودی وب‌هوک که نیاز به احراز هویت دارند را دریافت می‌کند.

2. راه‌اندازی پیکربندی: نقاط پایانی OIDC ضروری، اعتبارنامه‌های کلاینت و دامنه‌ها (scopes) را بارگیری می‌کند.

3. استخراج توکن: تلاش برای بازیابی توکن دسترسی موجود از کوکی‌های درخواست.

4. مدیریت کد مجوز (بدون PKCE): تبادل کدهای مجوز برای توکن‌ها را در زمانی که PKCE استفاده نمی‌شود، مدیریت می‌کند.

5. بررسی وجود توکن: معتبر بودن توکن دسترسی موجود را تأیید می‌کند.

6. بازیابی اطلاعات کاربر: داده‌های پروفایل کاربر را با استفاده از توکن دسترسی از ارائه‌دهنده OIDC دریافت می‌کند.

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

8. ارائه پاسخ: پاسخ مناسب را به کاربر ارسال می‌کند (صفحه ورود، صفحه خوش‌آمدگویی یا خطا).

---

تجزیه و تحلیل گره (Node) دقیق

۱. دریافت وب‌هوک

  • هدف: این نقطه ورود گردش کار است و درخواست HTTP اولیه را که به یک URL وب‌هوک خاص هدایت می‌شود، ثبت می‌کند.
  • گره‌ها (Nodes):

* Webhook (گره راه‌انداز n8n)

  • پیکربندی:

* یک مسیر وب‌هوک منحصربه‌فرد تنظیم کنید.

* حالت پاسخ (response mode) را روی responseNode تنظیم کنید، که نشان می‌دهد یک گره پایین‌دستی مسئولیت پاسخ HTTP را بر عهده خواهد داشت.

  • ورودی: درخواست HTTP ورودی.
  • خروجی: داده‌های درخواست (شامل هدرها و پارامترهای کوئری) را به گره بعدی منتقل می‌کند.
  • ملاحظات: درخواست‌های گم‌شده یا بدشکل و تماس‌های مکرر بالقوه بدون توکن معتبر را مدیریت می‌کند.

۲. راه‌اندازی پیکربندی

  • هدف: تمام پارامترهای ضروری پیکربندی OIDC و اعتبارنامه‌های کلاینت را به عنوان متغیرهای گردش کار تعریف و ذخیره می‌کند.
  • گره‌ها (Nodes):

* Set (برای متغیرها)

* Sticky Note (برای مستندسازی)

  • جزئیات گره:

* گره Set: متغیرهای رشته‌ای زیر را پیکربندی می‌کند:

* auth_endpoint: URL نقطه پایانی مجوز (authorization endpoint) ارائه‌دهنده OIDC شما.

* token_endpoint: URL نقطه پایانی توکن (token endpoint).

* userinfo_endpoint: URL نقطه پایانی اطلاعات کاربر (userinfo endpoint).

* client_id: شناسه کلاینت OIDC شما.

* scope: دامنه‌های OIDC درخواستی (مانند "openid email profile").

* redirect_uri: URI که کاربر پس از احراز هویت به آن هدایت می‌شود (معمولاً URL وب‌هوک شما).

* client_secret: کلید مخفی کلاینت شما (در صورت غیرفعال بودن PKCE الزامی است).

* همچنین یک متغیر بولی (boolean) را پیکربندی می‌کند:

* PKCE: برای فعال کردن جریان PKCE روی true و در غیر این صورت روی false تنظیم کنید.

  • محتوای Sticky Note: متغیرهای مورد نیاز را توضیح می‌دهد و تأکید می‌کند که client_secret و redirect_uri باید در صورت عدم استفاده از PKCE پیکربندی شوند.
  • ورودی: داده‌ها از گره Webhook.
  • خروجی: متغیرهای گردش کار که توسط گره‌های بعدی قابل دسترسی هستند.
  • ملاحظات: پیکربندی نادرست URLهای نقطه پایانی یا اعتبارنامه‌ها منجر به شکست احراز هویت می‌شود.

۳. استخراج توکن

  • هدف: یک توکن دسترسی موجود را از هدر Cookie درخواست استخراج می‌کند. این امکان استفاده مجدد از نشست (session) را بدون نیاز به احراز هویت مجدد در درخواست‌های بعدی فراهم می‌کند.
  • گره‌ها (Nodes):

* Code (جاوا اسکریپت)

  • جزئیات گره:

* این کد جاوا اسکریپت هدر Cookie را تجزیه می‌کند، آن را به کوکی‌های جداگانه تقسیم می‌کند و یک شیء JSON ایجاد می‌کند که نام کوکی‌ها را به مقادیرشان نگاشت می‌کند.

* به طور خاص به دنبال کوکی به نام n8n-custom-auth می‌گردد که انتظار می‌رود حاوی توکن دسترسی باشد.

  • ورودی: هدرهای HTTP از گره Webhook.
  • خروجی: یک شیء JSON حاوی تمام کوکی‌های تجزیه شده.
  • مدیریت خطا: Continue On Fail فعال شده است تا به گردش کار اجازه دهد حتی در صورت گم شدن یا بدشکل بودن هدر کوکی، ادامه یابد.
  • ملاحظات: این گره فرض می‌کند که توکن دسترسی در کوکی به نام `n8n-

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

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

OpenID Connect (OIDC) چیست و چگونه به n8n کمک می‌کند؟

OpenID Connect یک لایه احراز هویت بر روی پروتکل OAuth 2.0 است که به کلاینت‌ها اجازه می‌دهد هویت کاربر را بر اساس احراز هویت انجام شده توسط یک سرور صدور گواهینامه (Authorization Server) تأیید کنند. در n8n، OIDC به شما امکان می‌دهد تا دسترسی به گردش‌های کاری و وب‌هوک‌های خود را با احراز هویت کاربران از طریق ارائه‌دهندگان OIDC مانند Keycloak، Google یا Okta امن کنید.

جریان کد مجوز (Authorization Code flow) با PKCE چیست و چرا در n8n مهم است؟

جریان کد مجوز یک روش امن برای دریافت توکن‌های دسترسی در برنامه‌هایی است که نمی‌توانند راز کلاینت (client secret) را به طور امن ذخیره کنند. PKCE (Proof Key for Code Exchange) یک افزونه امنیتی برای این جریان است که از رهگیری کد مجوز جلوگیری می‌کند. استفاده از این جریان در n8n، به ویژه برای وب‌هوک‌ها، امنیت را در برابر حملات افزایش می‌دهد.

چگونه می‌توانم وب‌هوک‌های n8n خود را با OIDC امن کنم؟

برای امن‌سازی وب‌هوک‌های n8n با OIDC، باید یک گردش کار راه‌اندازی کنید که درخواست‌های ورودی وب‌هوک را دریافت کند، کاربر را از طریق یک ارائه‌دهنده OIDC احراز هویت کند (با استفاده از جریان کد مجوز و PKCE)، توکن دسترسی را دریافت و تأیید کند، اطلاعات پروفایل کاربر را بازیابی کند و سپس پاسخ مناسب را ارسال کند. این شامل پیکربندی نودهای n8n برای تعامل با نقاط پایانی OIDC است.

workflowهای مرتبط

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