العربية
  • redirect uri
  • callback
  • authorization code
  • code flow
  • oidc
  • pkce

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

لنلقِ نظرة فاحصة على الرابط المرتجع لأنه عنصر أمني حاسم في عملية مصادقة OIDC.

Charles
Charles
Developer

ما هو الرابط المرتجع؟

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

اطلع على ويكي الرابط المرتجع لمزيد من التفاصيل.

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

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

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

كيف يعمل الرابط المرتجع في تدفق رمز التفويض؟

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

إليك كيفية تسجيل رابط مرتجع في Logto Console: redirect-uri

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

  1. طلب التفويض: يوجه تطبيقك المستخدم إلى نقطة نهاية التفويض في موفر OIDC، مع تضمين معلمات مثل client_id، وresponse_type، وscope وredirect_uri.
  2. مصادقة المستخدم: يقوم المستخدم بالمصادقة مع موفر OIDC.
  3. تسليم رمز التفويض: عقب نجاح المصادقة، يعيد موفر 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، اتبع هذه الخطوات:

  1. استخراج رمز التفويض: استرجع رمز البارامتر من سلسلة استعلام الرابط المرتجع.

  2. استبدال رمز التفويض بالرموز: قم بإنشاء طلب POST إلى نقطة النهاية للرمز لدى موفر OIDC، متضمنًا:

    • client_id: معرف تطبيقك في موفر OIDC
    • code: رمز التفويض المستلم من الرابط المرتجع
    • 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.