فهم الرابط المرتجع وتدفق رمز التفويض في OpenID Connect (OIDC)
لنلقِ نظرة فاحصة على الرابط المرتجع لأنه عنصر أمني حاسم في عملية مصادقة OIDC.
ما هو الرابط المرتجع؟
الرابط المرتجع، المعروف أيضًا بعنوان الرد، هو عنصر أمني حاسم في عملية المصادقة OIDC. يحدد عنوان URL حيث يتم إرسال المستخدمين بعد نجاحهم في تسجيل الدخول عبر موفر OIDC. والأهم من ذلك، أنه حيث تتلقى تطبيقك رمز التفويض المطلوب للحصول على الرموز المميزة.
اطلع على ويكي الرابط المرتجع لمزيد من التفاصيل.
ما هو تدفق رمز التفويض؟
تدفق رمز التفويض (المحدد في OAuth 2.0 RFC 6749، القسم 4.1) هو وسيلة أساسية للمصادقة في OIDC. يتضمن استبدال رمز التفويض برمز وصول وربما رمز تحديث. هذا التدفق مناسب للتطبيقات التي يمكنها الحفاظ على سر العميل بشكل آمن، مثل تطبيقات الويب على جانب الخادم.
اطلع على ويكي تدفق رمز التفويض لمزيد من التفاصيل.
كيف يعمل الرابط المرتجع في تدفق رمز التفويض؟
في تدفق رمز التفويض، يكون الرابط المرتجع هو الوجهة التي ترسل موفر OIDC رمز التفويض إليها بعد أن ينجح المستخدم في المصادقة. يجب أن يتم تسجيله مسبقًا لدى موفر OIDC لضمان الأمان ومنع التوجيهات غير المصرح بها.
إليك كيفية تسجيل رابط مرتجع في Logto Console:
عند بدء عملية تسجيل الدخول:
- طلب التفويض: يوجه تطبيقك المستخدم إلى نقطة نهاية التفويض في موفر OIDC، مع تضمين معلمات مثل
client_id
، وresponse_type
، وscope
وredirect_uri
. - مصادقة المستخدم: يقوم المستخدم بالمصادقة مع موفر OIDC.
- تسليم رمز التفويض: عقب نجاح المصادقة، يعيد موفر OIDC توجيه المستخدم إلى
redirect_uri
المحدد، مع تضمين رمز التفويض كمعلمة استعلام.
يقوم موفر OIDC بالتحقق من صحة redirect_uri
مقابل قائمة العناوين المسجلة مسبقًا. إذا كان هناك عدم تطابق، سيتم إرجاع خطأ invalid_redirect_uri
، مما يعزز الأمان عن طريق منع الأطراف غير المصرح لها من تلقي الرموز.
أفضل الممارسات للرابط المرتجع
في حالات الاستخدام الواقعية، تكون ممارسة شائعة هي إعلان صفحة "Callback" مخصصة وربط مسار / رابط عميق يسمح بالوصول المباشر من الخارج. يجب استخدام هذا الرابط كنقطة إعادة توجيه URI.
على افتراض أن لديك تطبيق ويب صفحة واحدة يعمل على https://my-app.com
، فعادةً ما يتم إعلان الرابط المرتجع كـ https://my-app.com/callback
أو إذا كان تطبيقًا محليًا للجوال، فإن الرابط المرتجع عادة ما يبدأ بمخطط مخصص، مثل com.company://myapp/callback
تشمل الممارسات الجيدة الأخرى:
- تجنب العلامات الجامحة: لا تستخدم أنماط العلامات الجامحة في الروابط المرتجعة. قم بإدراج جميع الروابط المسموح بها صراحة لمنع الوصول غير المصرح به.
- تطابق بدقة: تأكد من أن الرابط المرتجع يتطابق تمامًا مع الرابط المسجل في موفر OIDC. حتى خط مائل إضافي يمكن أن يسبب عدم تطابق.
معالجة رد الاتصال لتسجيل الدخول
للتعامل مع رمز التفويض المسترجع إلى redirect_uri
، اتبع هذه الخطوات:
-
استخراج رمز التفويض: استرجع رمز البارامتر من سلسلة استعلام الرابط المرتجع.
-
استبدال رمز التفويض بالرموز: قم بإنشاء طلب POST إلى نقطة النهاية للرمز لدى موفر OIDC، متضمنًا:
client_id
: معرف تطبيقك في موفر OIDCcode
: رمز التفويض المستلم من الرابط المرتجعcode_verifier
: سلسلة عشوائية منشأة على العميلredirect_uri
: نفس الURI المستخدم في طلب التفويضgrant_type
: نوع التصريح، عادةًauthorization_code
مثال على طلب تبادل الرمز في JavaScript
تبسيط عملية تبادل الرمز في Logto بالاستفادة من حزم تطوير Logto SDKs
Logto SDKs هي مجموعة تطوير مكتوبة في لغة برمجة أو إطار عمل معين، مثل Logto React SDK، وNext.js SDK وSwift SDK. استخدام حزمة تطوير يمكن أن يبسط الأمور بشكل كبير بمجرد استدعاء وظيفة أو وظيفتين.
إليك مثال على مكون React "Callback" باستخدام Logto React SDK الرسمي:
يمكن العثور على أدلة تكامل حزمة تطوير في وثائق Logto quick-starts.
استنتاج: لماذا من المهم إتقان الروابط المرتجعة في OIDC
فهم الروابط المرتجعة في OIDC مع تدفق رمز التفويض ضروري لتأمين وتحسين عمليات المصادقة الخاصة بك. من خلال تسجيل الروابط المرتجعة الموثوقة ومعالجة ردود الاتصال لتسجيل الدخول بكفاءة، يمكنك ضمان تجربة سلسة وآمنة لمستخدميك مع تبسيط جهود التطوير الخاصة بك مع Logto SDKs.