فهم URL إعادة التوجيه وتدفق رمز التفويض في OpenID Connect (OIDC)
لنلقِ نظرةً أقرب على URL إعادة التوجيه كونه مكونًا أمنيًا مهمًا في عملية المصادقة في OIDC.
ما هو 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:
عند بدء تسجيل الدخول:
- طلب التفويض: يوجه تطبيقك المستخدم إلى نقطة النهاية التفويضية لموفر OIDC، متضمنًا معلمات مثل
client_id
،response_type
،scope
وredirect_uri
. - مصادقة المستخدم: يقوم المستخدم بالمصادقة مع موفر OIDC.
- تسليم رمز التفويض: عند المصادقة الناجحة، يقوم موفر 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
الخاص بك، اتبع هذه الخطوات:
-
استخراج رمز التفويض: احصل على معلمة الرمز من سلسلة الاستعلام الخاصة بـ URL إعادة التوجيه.
-
قم بتبديل رمز التفويض للحصول على الرموز: قم بتكوين طلب POST إلى نقطة النهاية الرمزية لموفر OIDC، بما في ذلك:
client_id
: معرف تطبيقك في موفر OIDCcode
: رمز التفويض المستلم من 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.