دليل تكامل تسجيل الدخول الموحد (SSO)

يشرح هذا الدليل كيفية إعداد تكامل تسجيل الدخول الموحد (SSO) باستخدام مفتاح عام وبيانات مستخدم مشفرة.

يتيح استخدام SSO للمستخدمين تسجيل الدخول بأمان دون إدخال كلمة المرور يدويًا.

#

كيف يعمل SSO

تتضمن عملية SSO ما يلي:

  1. إنشاء مفتاح عام لنطاقك

  2. تشفير بيانات المستخدم باستخدام المفتاح العام

  3. إنشاء رابط SSO باستخدام الرمز المشفر

  4. إعادة توجيه المستخدم إلى الرابط المُنشأ لتسجيل الدخول تلقائيًا


#

الخطوة 1: إنشاء مفتاح عام

قبل استخدام SSO، تحتاج إلى إنشاء مفتاح عام لنطاقك.

المفتاح العام فريد لكل نطاق ويُستخدم لتشفير بيانات المستخدم بأمان.

#

لإنشاء مفتاح:

  1. انتقل إلى قسم إعدادات SSO في اللوحة

  2. انقر إنشاء المفتاح

  3. أدخل تفاصيل النطاق الخاص بك

  4. احفظ التكوين.

لقطة شاشة 2026-05-21 الساعة 6.41.51 م.pngلقطة شاشة 2026-05-21 الساعة 6.43.52 م.png
#

خيارات إضافية لإدارة المفاتيح

بعد إنشاء مفتاح عام، يمكنك أيضًا إدارة المفاتيح الموجودة عند الحاجة.

#

تعديل مفتاح عام

يمكنك تحديث التفاصيل التالية للمفتاح الموجود:

  • النطاق

  • الحالة:

    • نشط

    • غير نشط

ملاحظة: لا يمكن استخدام المفاتيح إلا إذا كانت نشطة لتشفير SSO.


حذف المفتاح المُنشأ (واجهة المستخدم)

يمكن حذف المفاتيح إذا لم تعد مطلوبة. بمجرد حذف المفتاح، لن يعمل التشفير باستخدام ذلك المفتاح.


لقطة شاشة 2026-05-21 الساعة 6.45.05 م.pngلقطة شاشة 2026-05-21 الساعة 6.45.21 م.png

#

الخيار أ: تشفير البيانات باستخدام كود مخصص (PHP)

يمكنك إنشاء رمز SSO المشفر مباشرة من خادمك باستخدام المفتاح العام.

يمكن استخدام نص PHP تجريبي لـ:

  • تشفير البيانات باستخدام المفتاح العام

  • إنشاء رمز آمن

يمكنك أيضًا تنفيذ نفس المنطق بلغات برمجة أخرى وفقًا لمتطلبات تطبيقك.


<?php
$publicKey = "-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzpw15zd52NU5xFP1rS9r
AQDpjgpW5wMXXXXXXXXXXXXXXNdfXKz2J2/zxRv25igdDwALDemjjbnXP2IbS+Wefa3EH0D1xE
JQIDAQAB
-----END PUBLIC KEY-----";

$payload = [
    "name" => "QA subaccount",
    "email" => "[email protected]",
    "mobile" => "9198XXXXXXXX"
];

$publicKeyResource = openssl_pkey_get_public($publicKey);
if (!$publicKeyResource) {
    throw new Exception("Invalid public key");
}

$data = json_encode($payload);
$encrypted = '';
$result = openssl_public_encrypt($data, $encrypted, $publicKeyResource);

if (!$result) {
    throw new Exception("Encryption failed: " . openssl_error_string());
}

echo rtrim(strtr(base64_encode($encrypted), '+/', '-_'), '=');
?>

اختبار عبر الإنترنت: يمكنك تشغيل هذا السكربت على https://www.programiz.com/php/online-compiler/


#

الخطوة 2: إنشاء رابط SSO النهائي

بعد التشفير، ستحصل على رمز مُشفر بتنسيق Base64 آمن للروابط.

استخدم هذا الرمز في صيغة الرابط التالية:

<BASEURL>/sso?token=<encrypted_data>
#

مثال

https://control.msg91.com/sso?token=xxxxxxxxxx

استبدل:

  • <encrypted_data> بالرمز المشفر المُنشأ

بمجرد إنشاء الرابط، قم بإعادة توجيه المستخدم إليه لتسجيل الدخول تلقائيًا.


#

ملاحظات هامة

  • تأكد من دقة تاريخ ووقت الخادم لتجنب مشاكل التحقق من الرموز

  • استخدم دائمًا أحدث مفتاح عام نشط للتشفير

  • الرموز مرتبطة بالزمن، لذلك يجب إعادة توجيه المستخدمين فورًا بعد إنشاء الرمز

  • الرموز التي تم إنشاؤها باستخدام مفاتيح محذوفة أو غير نشطة لن تعمل