العربية
  • إعادة توجيه uri
  • استدعاء
  • رمز التفويض
  • تدفق الرموز
  • OIDC
  • PKCE

فهم URL إعادة التوجيه وتدفق رمز التفويض في OpenID Connect (OIDC)

لنلقِ نظرةً أقرب على URL إعادة التوجيه كونه مكونًا أمنيًا مهمًا في عملية المصادقة في OIDC.

Charles
Charles
Developer

ما هو URL إعادة التوجيه؟

URL إعادة التوجيه، المعروف أيضًا باسم URL الرد، هو مكون أمني مهم في عملية المصادقة في OIDC. يحدد عنوان URL حيث يتم إرسال المستخدمين إليه بعد تسجيل الدخول بنجاح من خلال موفر OIDC. الأهم من ذلك، أنه المكان الذي تتلقى فيه تطبيقك رمز التفويض اللازم للحصول على الرموز.

اطلع على Auth Wiki > URL إعادة التوجيه لمزيد من التفاصيل.

ما هو تدفق رمز التفويض؟

تدفق رمز التفويض (المعرّف في OAuth 2.0 RFC 6749، القسم 4.1) هو طريقة مصادقة أساسية في OIDC. يتضمن تبادل رمز تفويض للحصول على رمز وصول وربما رمز تحديث. هذا التدفق مناسب للتطبيقات التي يمكنها الحفاظ على سر العميل بشكل آمن، مثل تطبيقات الويب الجانبية.

اطلع على Auth Wiki > تدفق رمز التفويض لمزيد من التفاصيل.

كيف يعمل URL إعادة التوجيه في تدفق رمز التفويض؟

في تدفق رمز التفويض، يكون URL إعادة التوجيه هو الوجهة التي يرسل إليها موفر OIDC رمز التفويض بعد مصادقة المستخدم بنجاح. يجب أن يتم تسجيله مسبقًا مع موفر OIDC لضمان الأمان ومنع إعادة التوجيه غير المصرح بها.

إليك كيفية تسجيل URL إعادة توجيه في Logto Console: redirect-uri

عند بدء تسجيل الدخول:

  1. طلب التفويض: يوجه تطبيقك المستخدم إلى نقطة النهاية التفويضية لموفر OIDC، متضمنًا معلمات مثل client_id، response_type، scope و redirect_uri.
  2. مصادقة المستخدم: يقوم المستخدم بالمصادقة مع موفر OIDC.
  3. تسليم رمز التفويض: عند المصادقة الناجحة، يقوم موفر OIDC بإعادة توجيه المستخدم إلى redirect_uri المحدد، متضمنًا رمز التفويض كمعلمة استعلام.

يقوم موفر OIDC بالتحقق من redirect_uri ضد قائمة عناوين URL المسجلة مسبقًا. في حال وجود تطابق غير صحيح، سيتم إرجاع خطأ invalid_redirect_uri، مما يعزز الأمان من خلال منع النقاط النهائية غير المصرح بها من تلقي الرموز.

أفضل الممارسات لعنوان URL إعادة التوجيه

في حالات الاستخدام الحقيقية، يعتبر من أفضل الممارسات الشائعة إعلان صفحة "Callback" مخصصة وربطها بموجه / رابط عميق يسمح بالوصول المباشر من الخارج. يجب استخدام هذا الرابط كعنوان URL لإعادة التوجيه.

على افتراض أن لديك تطبيق ويب صفحة واحدة يعمل على https://my-app.com، فعادةً ما يتم إعلان عنوان URL لإعادة التوجيه كـ https://my-app.com/callback

أو، إذا كان تطبيقًا محمولًا أصليًا، فإن عنوان URL لإعادة التوجيه عادةً ما يبدأ بنظام مخصص، مثل com.company://myapp/callback

تشمل الممارسات الأفضل الأخرى:

  • تجنب العلامات العامة: لا تستخدم أنماط العلامات العامة في عناوين URL لإعادة التوجيه. قم بإدراج جميع العناوين المسموح بها للتجنب من الوصول غير المصرح به.
  • تطابق دقيق: تأكد من أن عنوان URL لإعادة التوجيه يتطابق بدقة مع ذلك المسجل في موفر OIDC. حتى فاصلة مائلة زائدة قد تسبب تطابقًا غير صحيح.

التعامل مع استدعاء تسجيل الدخول

للتعامل مع رمز التفويض الذي يتم إرساله إلى redirect_uri الخاص بك، اتبع هذه الخطوات:

  1. استخراج رمز التفويض: احصل على معلمة الرمز من سلسلة الاستعلام الخاصة بـ URL إعادة التوجيه.

  2. قم بتبديل رمز التفويض للحصول على الرموز: قم بتكوين طلب POST إلى نقطة النهاية الرمزية لموفر OIDC، بما في ذلك:

    • client_id: معرف تطبيقك في موفر OIDC
    • code: رمز التفويض المستلم من URL إعادة التوجيه
    • code_verifier: سلسلة عشوائية يتم إنشاؤها على العميل
    • redirect_uri: نفس العنوان المستخدم في طلب التفويض
    • grant_type: نوع الصلاحية، عادةً authorization_code

مثال على طلب تبديل الرموز في جافا سكريبت

تبسيط عملية تبديل الرموز في Logto باستخدام حزم تطوير البرمجيات (SDKs) لـ Logto

حزم تطوير البرمجيات في Logto هي أدوات برمجية مكتوبة بلغة برمجة أو إطار عمل معين، مثل Logto React SDK، Next.js SDK و Swift SDK. يمكن استخدام حزمة تطوير برمجيات لتبسيط الأمور بشكل كبير بواسطة استدعاء وظيفة أو اثنين فقط.

إليك نموذج مكون "Callback" في React باستخدام حزمة Logto الرسمية ل React:

يمكن العثور على أدلة تكامل حزم تطوير البرمجيات في Logto Docs > Quick-starts.

ملخص: لماذا من المهم السيطرة على عناوين URL لإعادة التوجيه في OIDC

فهم عناوين URL لإعادة التوجيه في OIDC مع تدفق رمز التفويض ضروري لتأمين وتحسين عمليات المصادقة الخاصة بك. من خلال تسجيل عناوين URL الموثوقة للإعادة التوجيه والتعامل مع استدعاء تسجيل الدخول بكفاءة، يمكنك ضمان تجربة سلسة وآمنة للمستخدمين بينما تبسط جهود التطوير الخاصة بك باستخدام حزم تطوير البرمجيات Logto.