نظرة عامة على منصة سيادة الحوكمة

منصة سيادة الحوكمة (Sovereign Governance) هي حل أمني متكامل مصمّم خصيصًا لتلبية احتياجات الجهات الحكومية والمؤسسات المالية في المملكة العربية السعودية. تتيح المنصة إدارة كاملة لمفاتيح التشفير وسياسات حماية البيانات مع ضمان الامتثال للمتطلبات التنظيمية المحلية مثل إطار عمل الأمن السيبراني الوطني (NCA) ومعايير هيئة الحكومة الرقمية.

تعتمد المنصة على بنية سحابية حديثة تستخدم Azure Container Apps كطبقة تشغيل أساسية، مما يضمن قابلية التوسع التلقائي والتوافرية العالية. تُخزّن جميع المفاتيح في Azure Key Vault HSM (المستوى Premium) الذي يعتمد على وحدات أمان الأجهزة المعتمدة بمعيار FIPS 140-2 المستوى 3، مما يوفّر حماية على مستوى الأجهزة لا يمكن استخلاص المفاتيح منها.

البنية التقنية

تتكون المنصة من ثلاث طبقات رئيسية تعمل بشكل متكامل:

  • طبقة التشفير المزدوج (DKE): تطبّق نموذج Double Key Encryption حيث يتم تقسيم مفتاح التشفير إلى جزئين — جزء يُحفظ في Azure Key Vault وجزء يُحفظ في مخزن العميل المحلي. لا يمكن فك التشفير إلا بوجود الجزئين معًا، مما يضمن أن Microsoft نفسها لا تستطيع قراءة البيانات.
  • طبقة إدارة السياسات: تتيح تعريف سياسات تصنيف البيانات (سري، سري للغاية، عام) وربطها بقواعد حماية تلقائية تشمل التشفير والتقييد الجغرافي ومنع التسريب (DLP).
  • طبقة المراقبة والتدقيق: تسجّل جميع عمليات الوصول إلى المفاتيح والبيانات المحمية في سجل تدقيق غير قابل للتعديل، مع إرسال تنبيهات فورية عند اكتشاف أنشطة مشبوهة.

الفئات المستهدفة

صُمّمت المنصة لخدمة القطاعات التالية بشكل أساسي:

  • الجهات الحكومية: الوزارات والهيئات التي تتعامل مع بيانات مصنّفة وتحتاج إلى التزام كامل بمتطلبات NCA وسياسة الحوسبة السحابية أولاً (Cloud First Policy).
  • المؤسسات المالية: البنوك وشركات التأمين وشركات التقنية المالية التي تخضع لرقابة البنك المركزي السعودي (SAMA) وتحتاج إلى حماية بيانات العملاء وفق معيار PCI DSS.
  • القطاع الصحي: المستشفيات ومقدّمو الخدمات الصحية الذين يتعاملون مع السجلات الطبية الإلكترونية ويحتاجون إلى الامتثال لنظام حماية البيانات الصحية.
  • القطاع الخاص الكبير: الشركات التي تتعامل مع بيانات حساسة وتسعى إلى تطبيق أعلى معايير الأمان.

المميزات الرئيسية

الميزةالوصفالتوفر
تشفير مزدوج المفتاح (DKE)تقسيم المفتاح بين Azure وبيئة العميلStandard / Premium
HSM مُداروحدات أمان أجهزة FIPS 140-2 Level 3Premium
سياسات DLPمنع تسريب البيانات عبر القنوات المختلفةStandard / Premium
تقييد جغرافيضمان بقاء البيانات داخل حدود المملكةPremium
سجل تدقيقتسجيل شامل لجميع العملياتStandard / Premium
BYOKإحضار مفتاحك الخاصPremium
تتوفّر المنصة حاليًا في منطقة UAE North من Azure مع خطط للتوسع إلى مناطق إضافية في الشرق الأوسط خلال النصف الثاني من 2025. يمكن للعملاء في المملكة العربية السعودية الاستفادة من اتصال منخفض الكُمون عبر Azure ExpressRoute.

متطلبات النشر

قبل البدء في نشر منصة سيادة الحوكمة، يجب التأكد من استيفاء جميع المتطلبات الأساسية التالية. يغطي هذا الدليل متطلبات الاشتراك والأذونات والبنية التحتية اللازمة لنشر ناجح.

متطلبات اشتراك Azure

تحتاج إلى اشتراك Azure نشط مع الإمكانيات التالية:

  • نوع الاشتراك: Enterprise Agreement (EA) أو Microsoft Customer Agreement (MCA). لا تُدعم الاشتراكات التجريبية أو MSDN للاستخدام الإنتاجي.
  • الحصص (Quotas): يجب أن يدعم الاشتراك ما لا يقل عن 8 vCPU في منطقة UAE North لتشغيل Container Apps بالحد الأدنى من الموارد.
  • موفّرو الخدمات المسجّلون: يجب تسجيل Microsoft.App و Microsoft.KeyVault و Microsoft.ManagedIdentity و Microsoft.OperationalInsights كموفّري موارد في الاشتراك.
Azure CLI
# تسجيل موفّري الخدمات المطلوبين
az provider register --namespace Microsoft.App
az provider register --namespace Microsoft.KeyVault
az provider register --namespace Microsoft.ManagedIdentity
az provider register --namespace Microsoft.OperationalInsights

# التحقق من حالة التسجيل
az provider show --namespace Microsoft.App --query "registrationState"
az provider show --namespace Microsoft.KeyVault --query "registrationState"

المناطق المدعومة

في الوقت الحالي، تُدعم المنطقة التالية بشكل كامل لنشر المنصة:

المنطقةالرمزالحالةHSM
UAE North (دبي)uaenorthمتاحة بالكامل
Qatar Centralqatarcentralقريبًا (Q3 2025)
Saudi Arabia (الرياض)saudiarabianorthمُعلَن عنهمُخطط

الأذونات المطلوبة

يحتاج المستخدم الذي يقوم بعملية النشر إلى الأدوار التالية على مستوى الاشتراك أو مجموعة الموارد:

  • Contributor: لإنشاء وإدارة الموارد (Container Apps، Key Vault، Log Analytics).
  • Key Vault Administrator: لإنشاء المخازن وإدارة سياسات الوصول والمفاتيح.
  • User Access Administrator: لتعيين الهويات المُدارة (Managed Identities) وربطها بالموارد.
Azure CLI
# التحقق من أدوار المستخدم الحالي
az role assignment list \
  --assignee "user@organization.com" \
  --scope "/subscriptions/{subscription-id}" \
  --output table

# تعيين الدور المطلوب (يتطلب صلاحيات Owner)
az role assignment create \
  --assignee "user@organization.com" \
  --role "Key Vault Administrator" \
  --scope "/subscriptions/{subscription-id}"

المتطلبات المسبقة

تأكد من توفر الأدوات والتبعيات التالية في بيئة العمل المحلية:

  • Azure CLI الإصدار 2.53.0 أو أحدث — لتنفيذ أوامر النشر والإدارة.
  • Bicep CLI الإصدار 0.22.0 أو أحدث — لمعالجة قوالب البنية التحتية (Infrastructure as Code).
  • OpenSSL الإصدار 3.x — لتوليد المفاتيح والشهادات اللازمة لخدمة DKE.
  • Docker Desktop (اختياري) — للاختبار المحلي قبل النشر على Azure Container Apps.
تأكد من أن إعدادات الشبكة في مؤسستك تسمح بالاتصال بنقاط نهاية Azure Management على المنفذ 443. إذا كنت تستخدم جدار حماية أو وكيل، أضف *.management.azure.com و *.vault.azure.net إلى قائمة السماح.

دليل التثبيت السريع

يرشدك هذا الدليل خطوة بخطوة لنشر منصة سيادة الحوكمة من Azure Marketplace خلال أقل من 30 دقيقة. تأكد من مراجعة متطلبات النشر قبل البدء.

الخطوة 1: الحصول على المنصة من Azure Marketplace

انتقل إلى Azure Marketplace وابحث عن "sbay Sovereign Governance". ستجد خطتين متاحتين:

  • Standard (المعيارية): تشمل التشفير المزدوج، سياسات DLP الأساسية، وسجل تدقيق لمدة 90 يومًا. مناسبة للمؤسسات المتوسطة.
  • Premium (المتميزة): تشمل جميع ميزات Standard بالإضافة إلى HSM مُدار، BYOK، تقييد جغرافي، وسجل تدقيق غير محدود. مناسبة للجهات الحكومية والمالية.

اضغط على "إنشاء" بعد اختيار الخطة المناسبة لتبدأ معالج التكوين.

الخطوة 2: تكوين المعلمات الأساسية

في صفحة المعلمات الأساسية، أدخل القيم التالية:

Bicep Parameters
// sovereign-governance.bicepparam
using 'sovereign-governance.bicep'

param location = 'uaenorth'
param environmentName = 'sgov-prod'
param planTier = 'premium'

// إعدادات Key Vault
param keyVaultSku = 'premium'    // HSM-backed
param enablePurgeProtection = true
param softDeleteRetentionDays = 90

// إعدادات DKE
param dkeEndpoint = 'https://dke.organization.sa'
param dkeKeySize = 4096

// إعدادات الشبكة
param vnetAddressPrefix = '10.0.0.0/16'
param subnetAddressPrefix = '10.0.1.0/24'
param enablePrivateEndpoints = true

الخطوة 3: تنفيذ النشر

بعد مراجعة الإعدادات، يمكنك نشر المنصة باستخدام Azure CLI أو مباشرة من بوابة Azure:

Azure CLI
# إنشاء مجموعة الموارد
az group create \
  --name "rg-sgov-prod" \
  --location "uaenorth" \
  --tags "project=sovereign-governance" "env=production"

# نشر قالب Bicep
az deployment group create \
  --resource-group "rg-sgov-prod" \
  --template-file "sovereign-governance.bicep" \
  --parameters "sovereign-governance.bicepparam" \
  --name "sgov-deploy-$(date +%Y%m%d)"

# التحقق من حالة النشر
az deployment group show \
  --resource-group "rg-sgov-prod" \
  --name "sgov-deploy-20250122" \
  --query "properties.provisioningState"

الخطوة 4: التحقق من النشر

بعد اكتمال النشر (يستغرق عادة 10-15 دقيقة)، تحقق من أن جميع المكونات تعمل بشكل صحيح:

Azure CLI
# التحقق من حالة Container App
az containerapp show \
  --name "sgov-app" \
  --resource-group "rg-sgov-prod" \
  --query "{status: properties.runningStatus, url: properties.configuration.ingress.fqdn}"

# اختبار نقطة نهاية الصحة
curl -s https://sgov-app.uaenorth.azurecontainerapps.io/health | jq .

# التحقق من Key Vault
az keyvault show --name "kv-sgov-prod" --query "{sku: properties.sku.name, status: properties.provisioningState}"
بعد اكتمال النشر، ستتلقى بريدًا إلكترونيًا يحتوي على رابط لوحة التحكم وبيانات الوصول الأولية. غيّر كلمة المرور الافتراضية فور تسجيل الدخول الأول وفعّل المصادقة متعددة العوامل (MFA).

إدارة مفاتيح التشفير

إدارة مفاتيح التشفير هي الركيزة الأساسية لمنصة سيادة الحوكمة. يشرح هذا الدليل آلية عمل التشفير المزدوج (DKE)، وكيفية التكامل مع Azure Key Vault HSM، وسياسات تدوير المفاتيح، ودعم إحضار المفتاح الخاص (BYOK).

آلية عمل التشفير المزدوج (DKE)

يوفّر نموذج Double Key Encryption حماية إضافية تتجاوز التشفير التقليدي أحادي المفتاح. عند تشفير مستند أو ملف، تتم العملية على مرحلتين:

  1. المرحلة الأولى — مفتاح Azure: يُشفّر المحتوى باستخدام مفتاح AES-256 مُخزّن في Azure Key Vault. هذا المفتاح محمي بواسطة HSM ولا يغادر حدود الخدمة أبدًا.
  2. المرحلة الثانية — مفتاح العميل: يُشفّر المفتاح الناتج من المرحلة الأولى باستخدام مفتاح RSA-4096 مُخزّن في خدمة DKE التي يديرها العميل. هذه الخدمة تعمل على بنيته التحتية الخاصة.

النتيجة: حتى لو تمكن طرف ثالث (بما في ذلك Microsoft) من الوصول إلى البيانات المشفّرة والمفتاح في Azure، فلن يتمكن من فك التشفير بدون المفتاح الثاني الموجود حصريًا لدى العميل.

Sequence Diagram
┌──────────┐     ┌──────────────┐     ┌──────────────┐
│  Client  │     │  Azure KV    │     │  DKE Service │
│  (User)  │     │  (HSM)       │     │  (On-Prem)   │
└────┬─────┘     └──────┬───────┘     └──────┬───────┘
     │                  │                    │
     │  1. Encrypt Req  │                    │
     │─────────────────>│                    │
     │                  │                    │
     │  2. AES-256 Key  │                    │
     │<─────────────────│                    │
     │                  │                    │
     │  3. Wrap Key with DKE               │
     │────────────────────────────────────-->│
     │                  │                    │
     │  4. Wrapped Key                      │
     │<─────────────────────────────────────│
     │                  │                    │
     │  5. Store encrypted content + keys   │
     │─────────────────>│                    │

تكامل Azure Key Vault HSM

تستخدم المنصة Azure Key Vault في المستوى Premium الذي يوفّر حماية بمستوى الأجهزة لعمليات التشفير. جميع المفاتيح يُتم إنشاؤها ومعالجتها داخل وحدات HSM المعتمدة بمعيار FIPS 140-2 المستوى 3.

Azure CLI
# إنشاء Key Vault بمستوى Premium (HSM)
az keyvault create \
  --name "kv-sgov-prod" \
  --resource-group "rg-sgov-prod" \
  --location "uaenorth" \
  --sku "premium" \
  --enable-purge-protection true \
  --retention-days 90 \
  --enable-rbac-authorization true

# إنشاء مفتاح RSA-4096 داخل HSM
az keyvault key create \
  --vault-name "kv-sgov-prod" \
  --name "sgov-master-key" \
  --kty "RSA-HSM" \
  --size 4096 \
  --ops encrypt decrypt wrapKey unwrapKey

# عرض معلومات المفتاح
az keyvault key show \
  --vault-name "kv-sgov-prod" \
  --name "sgov-master-key" \
  --query "{kid: key.kid, kty: key.kty, keySize: key.n}"

سياسات تدوير المفاتيح

تدوير المفاتيح بشكل دوري هو ممارسة أمنية ضرورية. توصي المنصة بالسياسات التالية:

نوع المفتاحفترة التدويرآلية التدوير
مفاتيح البيانات (AES)كل 30 يومًاتلقائي عبر Key Vault Policy
مفاتيح التغليف (RSA)كل 365 يومًاشبه تلقائي مع مراجعة يدوية
مفاتيح DKEكل 180 يومًايدوي مع فترة تداخل 30 يومًا
JSON — Key Rotation Policy
{
  "lifetimeActions": [
    {
      "trigger": {
        "timeAfterCreate": "P30D"
      },
      "action": {
        "type": "Rotate"
      }
    },
    {
      "trigger": {
        "timeBeforeExpiry": "P7D"
      },
      "action": {
        "type": "Notify"
      }
    }
  ],
  "attributes": {
    "expiryTime": "P90D"
  }
}

دعم BYOK (إحضار مفتاحك الخاص)

يمكن للعملاء في الخطة Premium إحضار مفاتيحهم الخاصة بدلاً من الاعتماد على المفاتيح المُولّدة في Azure. تضمن هذه العملية أن المفتاح الرئيسي لم يُنشأ أو يُعالج خارج بيئة العميل المُتحكم بها:

OpenSSL + Azure CLI
# 1. توليد مفتاح RSA-4096 محليًا
openssl genrsa -aes256 -out byok-key.pem 4096

# 2. تحويل المفتاح إلى صيغة BYOK
az keyvault key download \
  --vault-name "kv-sgov-prod" \
  --name "KEKforBYOK" \
  --encoding PEM --file kek.pem

# 3. تغليف المفتاح واستيراده
az keyvault key import \
  --vault-name "kv-sgov-prod" \
  --name "customer-master-key" \
  --byok-file wrapped-byok-key.byok \
  --protection hsm
تحذير أمني: لا تقم بتخزين المفتاح الخاص (byok-key.pem) على أي وسيط تخزين غير مشفّر. استخدم وسيط تخزين مشفّر بالأجهزة (مثل YubiKey أو USB مشفّر بمعيار AES) واحذف الملف فورًا بعد الاستيراد باستخدام shred -u byok-key.pem.

البنية التحتية السحابية

تقدّم sbay خدمات بنية تحتية سحابية شاملة تُمكّن المؤسسات من تشغيل أعباء عملها بكفاءة وأمان. نعتمد بشكل رئيسي على منصة Microsoft Azure مع دعم لبيئات متعددة السحابة (Multi-Cloud) تشمل AWS و Google Cloud لحالات الاستخدام المتخصصة.

نماذج الخدمة

نوفّر ثلاثة نماذج رئيسية للبنية التحتية السحابية، يمكن للعميل اختيار النموذج الأنسب بناءً على متطلباته التشغيلية:

  • IaaS — البنية التحتية كخدمة: أجهزة افتراضية (VMs) مُدارة، شبكات افتراضية، وتخزين قابل للتوسع. مناسبة للعملاء الذين يحتاجون تحكمًا كاملاً في نظام التشغيل والتطبيقات.
  • PaaS — المنصة كخدمة: بيئات تشغيل مُدارة مثل Azure App Service و Container Apps. يتولى فريقنا إدارة البنية التحتية بينما يركّز العميل على تطوير التطبيقات.
  • Serverless — الحوسبة بلا خوادم: Azure Functions و Logic Apps لتنفيذ التعليمات البرمجية عند الطلب دون الحاجة لإدارة خوادم. الدفع يكون فقط مقابل وقت التنفيذ الفعلي.

البنية المرجعية

تتبع جميع عمليات النشر بنية مرجعية موحّدة تضمن التناسق والأمان عبر جميع بيئات العملاء:

Bicep — Landing Zone
// sbay-landing-zone.bicep
targetScope = 'subscription'

param environment string = 'production'
param location string = 'uaenorth'

// مجموعة موارد الشبكة
resource networkRG 'Microsoft.Resources/resourceGroups@2023-07-01' = {
  name: 'rg-network-${environment}'
  location: location
}

// مجموعة موارد التطبيقات
resource appRG 'Microsoft.Resources/resourceGroups@2023-07-01' = {
  name: 'rg-app-${environment}'
  location: location
}

// مجموعة موارد البيانات
resource dataRG 'Microsoft.Resources/resourceGroups@2023-07-01' = {
  name: 'rg-data-${environment}'
  location: location
}

// نشر الشبكة الافتراضية
module vnet './modules/networking.bicep' = {
  scope: networkRG
  name: 'vnet-deployment'
  params: {
    location: location
    vnetName: 'vnet-${environment}'
    addressPrefixes: ['10.0.0.0/16']
    subnets: [
      { name: 'snet-app', prefix: '10.0.1.0/24' }
      { name: 'snet-data', prefix: '10.0.2.0/24' }
      { name: 'snet-mgmt', prefix: '10.0.3.0/24' }
    ]
  }
}

إدارة التكلفة

نوفّر أدوات وممارسات لتحسين تكلفة البنية التحتية السحابية:

  • حجوزات Azure: خصومات تصل إلى 72% على الأجهزة الافتراضية بالتزام مدته سنة أو ثلاث سنوات.
  • Azure Spot VMs: استخدام السعة الفائضة بخصومات تصل إلى 90% لأعباء العمل القابلة للمقاطعة.
  • تقارير التكلفة: تقارير شهرية مفصّلة مع توصيات لتحسين الإنفاق عبر Azure Cost Management.
  • سياسات الإيقاف: إيقاف تلقائي للموارد غير المستخدمة خارج ساعات العمل في بيئات التطوير والاختبار.
يمكنك تفعيل تنبيهات الميزانية في Azure Cost Management لتلقي إشعارات عند اقتراب الإنفاق من الحد المحدد. نوصي بتعيين تنبيهات عند 50% و 80% و 100% من الميزانية الشهرية.

النسخ الاحتياطي السحابي

توفّر خدمة النسخ الاحتياطي السحابي من sbay حماية شاملة للبيانات مع ضمان استعادة سريعة في حالات الكوارث. نعتمد على Azure Backup و Azure Site Recovery لتقديم حلول نسخ احتياطي متعددة الطبقات تناسب مختلف أحجام المؤسسات.

استراتيجيات النسخ الاحتياطي

نطبّق استراتيجية 3-2-1 كحد أدنى لجميع عمليات النسخ الاحتياطي:

  • 3 نسخ: نسخة إنتاجية أصلية + نسختان احتياطيتان.
  • 2 وسيط تخزين: تخزين محلي (Azure Managed Disks) + تخزين بعيد (Azure Blob Storage).
  • 1 نسخة خارجية: نسخة في منطقة جغرافية مختلفة (Geo-Redundant Storage) للحماية من الكوارث الإقليمية.

تكوين RPO و RTO

يتم تحديد أهداف نقطة الاستعادة (RPO) وزمن الاستعادة (RTO) بناءً على تصنيف البيانات وأهميتها:

التصنيفRPORTOتكرار النسخالاحتفاظ
حرج (Tier 1)15 دقيقةساعة واحدةكل 15 دقيقة365 يومًا
مهم (Tier 2)ساعة واحدة4 ساعاتكل ساعة90 يومًا
عادي (Tier 3)24 ساعة24 ساعةيوميًا30 يومًا

جداول النسخ التلقائي

يتم تكوين جداول النسخ الاحتياطي التلقائي باستخدام Azure Backup Policy:

JSON — Backup Policy
{
  "policyName": "sbay-tier1-policy",
  "schedulePolicy": {
    "schedulePolicyType": "SimpleSchedulePolicy",
    "scheduleRunFrequency": "Hourly",
    "hourlySchedule": {
      "interval": 1,
      "scheduleWindowStartTime": "2025-01-01T00:00:00Z",
      "scheduleWindowDuration": 24
    }
  },
  "retentionPolicy": {
    "dailySchedule": { "retentionDuration": { "count": 30, "durationType": "Days" } },
    "weeklySchedule": { "retentionDuration": { "count": 12, "durationType": "Weeks" } },
    "monthlySchedule": { "retentionDuration": { "count": 12, "durationType": "Months" } },
    "yearlySchedule": { "retentionDuration": { "count": 1, "durationType": "Years" } }
  }
}

اختبار الاستعادة

نُجري اختبارات استعادة دورية لضمان فعالية النسخ الاحتياطية. يشمل بروتوكول الاختبار:

  • اختبار شهري: استعادة عينة عشوائية من الملفات والتحقق من سلامتها باستخدام تجزئات SHA-256.
  • اختبار ربع سنوي: استعادة كاملة لقاعدة بيانات في بيئة اختبار معزولة والتحقق من تطابق البيانات.
  • تمرين DR سنوي: محاكاة كاملة لسيناريو كارثة مع استعادة جميع الأنظمة في منطقة Azure بديلة.
تأكد من اختبار عملية الاستعادة بشكل دوري. النسخ الاحتياطية التي لم تُختبر لا يمكن الاعتماد عليها. نوصي بتوثيق نتائج كل اختبار استعادة في سجل مُشترك مع فريق العمليات.

شهادات SSL

تُعدّ شهادات SSL/TLS عنصرًا أساسيًا لتأمين الاتصالات بين العملاء والخوادم. تقدّم sbay خدمة إدارة شهادات SSL شاملة تشمل الإصدار والتثبيت والتجديد والمراقبة لجميع أنواع الشهادات.

أنواع الشهادات المدعومة

النوعالتحققالاستخداممدة الإصدار
DV (Domain Validated)تحقق من النطاق فقطمواقع ومدوناتدقائق
OV (Organization Validated)تحقق من المؤسسةمواقع تجارية1-3 أيام
EV (Extended Validation)تحقق موسّعمؤسسات مالية وحكومية3-7 أيام
Wildcard (*.domain.sa)DV أو OVنطاقات فرعية متعددةحسب النوع
SAN (Multi-Domain)DV أو OVنطاقات متعددةحسب النوع

دليل تثبيت شهادة SSL

يوضّح المثال التالي خطوات تثبيت شهادة SSL على خادم Nginx يعمل على Azure Container Apps:

Nginx Configuration
# /etc/nginx/conf.d/ssl-site.conf
server {
    listen 443 ssl http2;
    server_name example.sa www.example.sa;

    # مسار الشهادة والمفتاح
    ssl_certificate     /etc/ssl/certs/example.sa.crt;
    ssl_certificate_key /etc/ssl/private/example.sa.key;
    ssl_trusted_certificate /etc/ssl/certs/ca-chain.crt;

    # بروتوكولات وشفرات TLS
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384';
    ssl_prefer_server_ciphers on;

    # HSTS — إجبار HTTPS لمدة سنة
    add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;

    # OCSP Stapling
    ssl_stapling on;
    ssl_stapling_verify on;
    resolver 168.63.129.16 valid=300s;

    # تطبيق الموقع
    location / {
        proxy_pass http://localhost:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

# إعادة توجيه HTTP إلى HTTPS
server {
    listen 80;
    server_name example.sa www.example.sa;
    return 301 https://$host$request_uri;
}

التجديد التلقائي مع Let's Encrypt

للمواقع التي تستخدم شهادات Let's Encrypt المجانية، نوفّر تجديدًا تلقائيًا عبر Certbot:

Bash
# تثبيت Certbot
sudo apt-get install certbot python3-certbot-nginx

# إصدار شهادة جديدة
sudo certbot --nginx -d example.sa -d www.example.sa \
  --non-interactive --agree-tos \
  --email admin@example.sa

# التحقق من التجديد التلقائي
sudo certbot renew --dry-run

# مهمة cron للتجديد (تُضاف تلقائيًا)
# 0 0,12 * * * /usr/bin/certbot renew --quiet

Let's Encrypt مقابل الشهادات التجارية

يعتمد اختيار نوع الشهادة على طبيعة الموقع ومتطلبات العمل:

  • Let's Encrypt: مجانية، تجديد تلقائي كل 90 يومًا، DV فقط. مثالية للمدونات والمواقع الشخصية ومشاريع التطوير.
  • شهادات تجارية (DigiCert، Sectigo): مدفوعة، صلاحية سنة أو سنتين، تدعم OV و EV. ضرورية للمؤسسات المالية والحكومية التي تحتاج مستوى تحقق أعلى وضمان مالي.
نوصي بتفعيل Certificate Transparency (CT) Monitoring لمراقبة أي شهادات تُصدر باسم نطاقك دون إذنك. يمكنك استخدام خدمات مثل crt.sh أو إعداد تنبيهات عبر Google Certificate Transparency.

مراقبة الأداء

توفّر sbay منظومة مراقبة شاملة تجمع بين Azure Monitor و Application Insights و Log Analytics لتقديم رؤية كاملة لأداء التطبيقات والبنية التحتية. تتيح هذه المنظومة اكتشاف المشكلات قبل تأثيرها على المستخدمين النهائيين.

لوحات المراقبة

نُنشئ لوحات مراقبة مخصصة لكل عميل تشمل المؤشرات الرئيسية التالية:

  • مؤشرات التطبيق: زمن الاستجابة (P50, P95, P99)، معدل الأخطاء، عدد الطلبات في الثانية (RPS)، ومعدل نجاح الطلبات.
  • مؤشرات البنية التحتية: استخدام المعالج والذاكرة، أداء القرص (IOPS)، حركة الشبكة، وصحة الحاويات.
  • مؤشرات الأعمال: عدد المعاملات الناجحة، إيرادات الساعة، معدل التحويل، وتجربة المستخدم (Core Web Vitals).

تكوين التنبيهات

نُعدّ تنبيهات ذكية متعددة المستويات لضمان الاستجابة السريعة لأي مشكلة:

Bicep — Alert Rules
// alert-rules.bicep
resource highResponseTimeAlert 'Microsoft.Insights/metricAlerts@2018-03-01' = {
  name: 'alert-high-response-time'
  location: 'global'
  properties: {
    severity: 2
    enabled: true
    evaluationFrequency: 'PT1M'       // تقييم كل دقيقة
    windowSize: 'PT5M'               // نافذة 5 دقائق
    criteria: {
      'odata.type': 'Microsoft.Azure.Monitor.SingleResourceMultipleMetricCriteria'
      allOf: [
        {
          name: 'HighResponseTime'
          metricName: 'requests/duration'
          operator: 'GreaterThan'
          threshold: 3000            // 3 ثوانٍ
          timeAggregation: 'Average'
        }
      ]
    }
    actions: [
      { actionGroupId: actionGroup.id }
    ]
  }
}

resource errorRateAlert 'Microsoft.Insights/metricAlerts@2018-03-01' = {
  name: 'alert-high-error-rate'
  location: 'global'
  properties: {
    severity: 1                       // حرج
    enabled: true
    evaluationFrequency: 'PT1M'
    windowSize: 'PT5M'
    criteria: {
      'odata.type': 'Microsoft.Azure.Monitor.SingleResourceMultipleMetricCriteria'
      allOf: [
        {
          name: 'HighErrorRate'
          metricName: 'requests/failed'
          operator: 'GreaterThan'
          threshold: 5               // أكثر من 5%
          timeAggregation: 'Percentage'
        }
      ]
    }
  }
}

تتبع SLA

تلتزم sbay باتفاقيات مستوى خدمة (SLA) واضحة لجميع الخدمات المُدارة:

الخدمةSLA المستهدفالقياسالتعويض
التطبيقات الإنتاجية99.95%شهريرصيد خدمة
قواعد البيانات99.99%شهريرصيد خدمة
CDN والتخزين99.9%شهريرصيد خدمة
DNS100%شهريرصيد خدمة
فعّل Smart Detection في Application Insights للكشف التلقائي عن الأنماط غير الطبيعية مثل الارتفاع المفاجئ في زمن الاستجابة أو الانخفاض في حركة المرور. هذه الميزة تستخدم الذكاء الاصطناعي ولا تحتاج إلى تكوين يدوي.

منصة إدارة المحتوى (CMS)

تُقدّم sbay منصة إدارة محتوى مخصصة مبنية على أحدث تقنيات الويب، مُصمّمة خصيصًا لتلبية احتياجات المؤسسات العربية. تدعم المنصة المحتوى ثنائي الاتجاه (RTL/LTR) بشكل أصيل وتوفّر واجهة إدارة عربية بالكامل مع دعم متعدد اللغات.

المميزات الرئيسية

  • محرر مرئي (WYSIWYG): محرر نصوص غني يدعم RTL والتنسيق المتقدم وإدراج الوسائط والجداول. يعتمد على محرك TipTap مع إضافات مخصصة للمحتوى العربي.
  • إدارة الوسائط: مكتبة وسائط مركزية تدعم الصور (WebP, AVIF) والفيديو والمستندات مع تحسين تلقائي للحجم وتوليد صور مصغّرة.
  • نظام القوالب: قوالب قابلة للتخصيص مع مكوّنات جاهزة (Hero, Cards, Tabs, Accordions) تُنشأ بسحب وإفلات.
  • التعددية اللغوية: دعم كامل لإدارة المحتوى بلغات متعددة مع ربط الترجمات وتتبع حالة الترجمة لكل محتوى.

أدوار المستخدمين والصلاحيات

تعتمد المنصة على نظام أدوار مرن يتيح تحكّمًا دقيقًا في الوصول:

الدورالصلاحياتحالات الاستخدام
مدير النظامصلاحيات كاملة + إدارة المستخدمينفريق تقنية المعلومات
محرر أولإنشاء + تعديل + نشر + حذفرئيس التحرير
محررإنشاء + تعديل + إرسال للمراجعةكتّاب المحتوى
مراجعمراجعة + الموافقة أو الرفضفريق الجودة
مشاهدعرض فقطأصحاب المصلحة

واجهة برمجة التطبيقات (API)

توفّر المنصة واجهة RESTful API كاملة لإدارة المحتوى برمجيًا:

JavaScript — CMS API
// جلب قائمة المقالات مع التصفية
const response = await fetch('https://cms.sbay.sa/api/v1/articles', {
  method: 'GET',
  headers: {
    'Authorization': `Bearer ${apiToken}`,
    'Accept-Language': 'ar',
    'Content-Type': 'application/json'
  }
});

const articles = await response.json();

// إنشاء مقال جديد
const newArticle = await fetch('https://cms.sbay.sa/api/v1/articles', {
  method: 'POST',
  headers: {
    'Authorization': `Bearer ${apiToken}`,
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    title: 'عنوان المقال',
    slug: 'article-slug',
    content: 'محتوى المقال...',
    category_id: 5,
    status: 'draft',
    locale: 'ar'
  })
});
استخدم ميزة الإصدارات (Versioning) لتتبع جميع التعديلات على المحتوى. يمكنك الرجوع إلى أي إصدار سابق بنقرة واحدة. تحتفظ المنصة بآخر 50 إصدارًا لكل محتوى افتراضيًا.

تطوير المواقع

تتبنّى sbay منهجية تطوير حديثة تجمع بين الأداء العالي وتجربة المستخدم المتميزة. نبني مواقع سريعة وآمنة ومتوافقة مع معايير الوصول العالمية (WCAG 2.1) مع التركيز على تحسين تجربة المستخدم العربي.

المكدس التقني (Technology Stack)

نستخدم مجموعة مختارة من التقنيات الحديثة والمُثبتة:

  • الواجهة الأمامية (Frontend): HTML5 + CSS3 + JavaScript (ES2024). للمشاريع المعقدة نستخدم React أو Next.js مع TypeScript.
  • الواجهة الخلفية (Backend): .NET 8 (C#) أو Node.js حسب متطلبات المشروع. نستخدم ASP.NET Core Minimal APIs للخدمات المصغّرة.
  • قواعد البيانات: Azure SQL Database للبيانات العلائقية، Azure Cosmos DB للبيانات غير الهيكلية، Redis للتخزين المؤقت.
  • البنية التحتية: Azure Container Apps أو Azure App Service، مع CDN عالمي عبر Azure Front Door.

معايير التصميم المتجاوب

جميع مواقعنا تتبع نهج Mobile-First مع نقاط توقف محددة:

CSS — Responsive Breakpoints
/* sbay Responsive Design System */

/* Mobile First — Base styles (0-640px) */
.container {
  width: 100%;
  padding: 0 16px;
  margin: 0 auto;
}

/* Tablet (641px+) */
@media (min-width: 641px) {
  .container { padding: 0 24px; max-width: 768px; }
  .grid-2 { grid-template-columns: repeat(2, 1fr); }
}

/* Desktop (1025px+) */
@media (min-width: 1025px) {
  .container { padding: 0 40px; max-width: 1400px; }
  .grid-3 { grid-template-columns: repeat(3, 1fr); }
  .grid-4 { grid-template-columns: repeat(4, 1fr); }
}

/* Wide Desktop (1440px+) */
@media (min-width: 1440px) {
  .container { max-width: 1600px; }
}

معايير الوصول (Accessibility)

نلتزم بمعايير WCAG 2.1 المستوى AA كحد أدنى في جميع مشاريعنا. تشمل الممارسات الرئيسية:

  • نسبة التباين: الحد الأدنى 4.5:1 للنصوص العادية و3:1 للنصوص الكبيرة.
  • التنقل بلوحة المفاتيح: جميع العناصر التفاعلية قابلة للوصول عبر Tab و Enter و Escape.
  • قارئات الشاشة: استخدام سمات ARIA بشكل صحيح مع دعم كامل لقارئات الشاشة العربية.
  • النصوص البديلة: جميع الصور تحتوي على نص بديل وصفي باللغة العربية.

أداء الموقع

نستهدف الحصول على درجة 90+ في Google Lighthouse لجميع المحاور الأربعة. تشمل تقنيات التحسين:

  • تحميل كسول (Lazy Loading) للصور والمكونات أسفل الطي.
  • ضغط Brotli للموارد الثابتة مع تخزين مؤقت (CDN) لمدة 365 يومًا.
  • تحسين Core Web Vitals: LCP < 2.5s, FID < 100ms, CLS < 0.1.
  • تقسيم الحزم (Code Splitting) وتحميل الخطوط العربية بشكل أمثل عبر font-display: swap.

تصميم واجهة المستخدم (UI/UX)

يتبع فريق تصميم sbay منهجية تصميم محورها المستخدم (User-Centered Design) مع مراعاة خصوصيات الثقافة العربية وعادات الاستخدام المحلية. نعتمد على نظام تصميم موحّد (Brand Standard Model) يضمن التناسق عبر جميع المنتجات والمنصات.

مبادئ التصميم

تُوجّه خمسة مبادئ أساسية جميع قراراتنا التصميمية:

  1. البساطة (Simplicity): تقليل العناصر المرئية إلى الحد الأدنى الضروري. كل عنصر على الشاشة يجب أن يخدم غرضًا واضحًا.
  2. الوضوح (Clarity): استخدام تسلسل بصري واضح مع أحجام خطوط وألوان تميّز بين المحتوى الرئيسي والثانوي.
  3. الاتساق (Consistency): توحيد الأنماط والمكونات عبر جميع الصفحات والمنصات باستخدام Brand Standard Model.
  4. إمكانية الوصول (Accessibility): تصميم يعمل للجميع بغض النظر عن القدرات البدنية أو التقنية.
  5. الاستجابة (Responsiveness): تجربة ممتازة على جميع أحجام الشاشات من الهاتف إلى الشاشات الكبيرة.

نظام الألوان

يعتمد نظام الألوان على لوحة مدروسة تعكس الثقة والاحترافية:

CSS — Color System
/* sbay Brand Color System */
:root {
  /* Primary — يُستخدم للعناوين والعناصر الرئيسية */
  --brand-primary: #0A2463;     /* أزرق داكن — يرمز للثقة */

  /* Secondary — يُستخدم للروابط والعناصر التفاعلية */
  --brand-secondary: #3E92CC;   /* أزرق سماوي — يرمز للابتكار */

  /* Accent — يُستخدم لأزرار CTA والعناصر المهمة */
  --brand-accent: #D8315B;      /* وردي — يجذب الانتباه */

  /* Success — يُستخدم للحالات الإيجابية */
  --brand-success: #1E8449;     /* أخضر — يرمز للنجاح */
}

نهج Mobile-First

نبدأ التصميم دائمًا من الشاشات الصغيرة ونتوسع تدريجيًا. هذا النهج يضمن أن التجربة الأساسية محسّنة لأكثر من 85% من المستخدمين في المملكة العربية السعودية الذين يستخدمون الهواتف الذكية للوصول إلى الإنترنت.

  • مرحلة الهاتف (320-640px): تخطيط عمودي بسيط مع قوائم قابلة للطي وأحجام أهداف لمس لا تقل عن 44×44 بكسل.
  • مرحلة الجهاز اللوحي (641-1024px): شبكة من عمودين مع شريط جانبي قابل للطي.
  • مرحلة سطح المكتب (1025px+): تخطيط كامل مع شريط جانبي ثابت وشبكات متعددة الأعمدة.

أدوات التصميم

يستخدم فريقنا الأدوات التالية في سير العمل التصميمي:

  • Figma: لتصميم الواجهات والنماذج التفاعلية (Prototyping).
  • Storybook: لتوثيق مكونات التصميم وضمان التناسق بين التصميم والتطوير.
  • Hotjar / Microsoft Clarity: لتحليل سلوك المستخدمين وتحديد نقاط الاحتكاك.

أنظمة الدفع

تدعم sbay تكامل شامل مع جميع بوابات الدفع الرئيسية في المملكة العربية السعودية والمنطقة. نوفّر طبقة تجريد موحّدة (Unified Payment Layer) تتيح للتجار قبول المدفوعات عبر قنوات متعددة من خلال واجهة برمجة واحدة.

بوابات الدفع المدعومة

البوابةالطرق المدعومةالتكاملالرسوم
مدى (Mada)بطاقات مدى المحليةمباشر1.5% + 0.50 ر.س
Visa / MasterCardبطاقات ائتمان/خصم دوليةعبر Checkout.com2.9% + 1.00 ر.س
STC Payمحفظة رقميةAPI مباشر1.8%
Apple Payمحفظة Appleعبر Checkout.com2.5%
تمارا (Tamara)اشترِ الآن، ادفع لاحقًاAPI مباشر5-7%
تابي (Tabby)تقسيط بدون فوائدAPI مباشر5-8%

دليل التكامل

يوضّح المثال التالي كيفية إنشاء جلسة دفع باستخدام طبقة التجريد الموحّدة:

C# — Payment Integration
// إنشاء جلسة دفع عبر طبقة التجريد الموحّدة
public class PaymentController : ControllerBase
{
    private readonly IPaymentService _paymentService;

    [HttpPost("api/payments/create-session")]
    public async Task<IActionResult> CreateSession(
        [FromBody] CreatePaymentRequest request)
    {
        var session = await _paymentService.CreateSessionAsync(
            new PaymentSession
            {
                Amount = request.Amount,
                Currency = "SAR",
                CustomerEmail = request.Email,
                CustomerPhone = request.Phone,
                Description = request.Description,
                Locale = "ar",
                SuccessUrl = "https://store.example.sa/success",
                CancelUrl = "https://store.example.sa/cancel",
                AllowedMethods = new[]
                {
                    PaymentMethod.Mada,
                    PaymentMethod.Visa,
                    PaymentMethod.StcPay,
                    PaymentMethod.ApplePay
                },
                Metadata = new Dictionary<string, string>
                {
                    ["order_id"] = request.OrderId,
                    ["customer_id"] = request.CustomerId
                }
            });

        return Ok(new { session.Id, session.CheckoutUrl });
    }
}

معالجة Webhooks

يجب تكوين نقطة نهاية Webhook لتلقي إشعارات حالة الدفع:

C# — Webhook Handler
[HttpPost("api/payments/webhook")]
public async Task<IActionResult> HandleWebhook()
{
    var payload = await Request.ReadAsStringAsync();
    var signature = Request.Headers["X-Sbay-Signature"];

    // التحقق من صحة التوقيع
    if (!_paymentService.VerifySignature(payload, signature))
        return Unauthorized();

    var evt = JsonSerializer.Deserialize<PaymentEvent>(payload);

    switch (evt.Type)
    {
        case "payment.completed":
            await _orderService.MarkAsPaid(evt.OrderId);
            break;
        case "payment.failed":
            await _orderService.MarkAsFailed(evt.OrderId, evt.Error);
            break;
        case "payment.refunded":
            await _orderService.ProcessRefund(evt.OrderId, evt.Amount);
            break;
    }

    return Ok();
}
أمان الدفع: تأكد دائمًا من التحقق من توقيع Webhook قبل معالجة أي إشعار. لا تعتمد أبدًا على معلمات URL أو بيانات العميل لتأكيد حالة الدفع. جميع عمليات التحقق يجب أن تتم من جانب الخادم (Server-Side).

منصة التبرعات

منصة التبرعات من sbay حل متكامل مصمّم خصيصًا للجمعيات الخيرية والمؤسسات غير الربحية في المملكة العربية السعودية. تتوافق المنصة بالكامل مع اشتراطات المركز الوطني لتنمية القطاع غير الربحي ونظام جمع التبرعات الصادر من هيئة الزكاة والضريبة والجمارك.

دليل الإعداد

يمر إعداد منصة التبرعات بأربع مراحل أساسية:

  1. التسجيل والتحقق: إنشاء حساب المؤسسة وربطه بسجل المنشأة في وزارة الموارد البشرية. يشمل ذلك التحقق من رقم الترخيص ومعلومات المؤسسة.
  2. تكوين بوابة الدفع: ربط حساب بنكي معتمد (يجب أن يكون باسم الجمعية) وتفعيل طرق الدفع المطلوبة (مدى، فيزا، STC Pay).
  3. تصميم الحملات: إنشاء حملات تبرع مع تحديد الهدف المالي والمدة الزمنية والوصف والصور.
  4. النشر والمتابعة: نشر المنصة على النطاق المخصص وتفعيل لوحة المتابعة الحية.

تكامل بوابة الدفع

تدعم المنصة جميع طرق الدفع المعتمدة في المملكة مع ميزات خاصة بالتبرعات:

JSON — Campaign Configuration
{
  "campaign": {
    "name": "حملة إفطار صائم",
    "targetAmount": 500000,
    "currency": "SAR",
    "startDate": "2025-02-28",
    "endDate": "2025-04-01",
    "presetAmounts": [10, 50, 100, 500, 1000],
    "allowCustomAmount": true,
    "minimumAmount": 1,
    "recurringOptions": ["monthly", "quarterly", "yearly"],
    "taxDeductible": true,
    "receiptAutoSend": true,
    "paymentMethods": ["mada", "visa", "stc_pay", "apple_pay"]
  }
}

التقارير والامتثال

توفّر المنصة مجموعة شاملة من التقارير المطلوبة تنظيميًا:

  • تقرير التبرعات اليومي: ملخص لجميع التبرعات مع تفاصيل المتبرعين (مع مراعاة خصوصية البيانات) وطرق الدفع المستخدمة.
  • تقرير الالتزام الشرعي: توزيع التبرعات حسب الأوعية الشرعية (زكاة، صدقة، وقف) مع ضمان توجيه كل تبرع للمصرف المحدد.
  • تقرير الشفافية الربع سنوي: تقرير عام يُنشر للمتبرعين يوضّح كيفية صرف التبرعات مع صور ونتائج قابلة للقياس.
  • تقرير هيئة الزكاة: تقرير بالصيغة المطلوبة من الهيئة يشمل بيانات المتبرعين والمبالغ والمصارف لأغراض التدقيق.
وفقًا لنظام جمع التبرعات في المملكة، يجب أن تحصل المؤسسة على تصريح جمع تبرعات ساري المفعول من المنصة الوطنية للعمل الخيري (إحسان) أو من الجهة المشرفة المختصة قبل تفعيل ميزة جمع التبرعات عبر الإنترنت.

إدارة العضويات

نظام إدارة العضويات من sbay يوفّر حلاً متكاملاً لإدارة دورة حياة الأعضاء من التسجيل الأولي وحتى التجديد والأرشفة. يدعم النظام أنواعًا متعددة من العضويات مع قواعد تسعير مرنة وأتمتة كاملة لعمليات التجديد والتنبيه.

تسجيل الأعضاء

يمكن للأعضاء التسجيل عبر نموذج إلكتروني قابل للتخصيص يدعم:

  • التحقق من الهوية: تكامل مع نظام نفاذ (NAFATH) للتحقق من هوية الأعضاء السعوديين، أو التحقق عبر رقم الإقامة للمقيمين.
  • الحقول المخصصة: إضافة حقول مخصصة حسب احتياجات المؤسسة (التخصص، الخبرة، منطقة الإقامة).
  • الموافقات: سير عمل موافقة متعدد المستويات (تلقائي أو يدوي حسب نوع العضوية).
  • المستندات: رفع المستندات المطلوبة (صورة الهوية، شهادة مهنية) مع التحقق التلقائي من الصلاحية.

مستويات العضوية

يدعم النظام تعريف مستويات عضوية غير محدودة مع امتيازات متدرجة:

JSON — Membership Tiers
{
  "tiers": [
    {
      "id": "basic",
      "name": "عضوية أساسية",
      "price": 0,
      "duration": "yearly",
      "benefits": ["حضور الفعاليات العامة", "نشرة إخبارية شهرية"]
    },
    {
      "id": "professional",
      "name": "عضوية مهنية",
      "price": 500,
      "currency": "SAR",
      "duration": "yearly",
      "benefits": ["جميع مزايا الأساسية", "خصم 20% على الدورات", "شهادة عضوية رقمية"],
      "autoRenew": true,
      "reminderDays": [30, 14, 7, 1]
    },
    {
      "id": "gold",
      "name": "عضوية ذهبية",
      "price": 2000,
      "currency": "SAR",
      "duration": "yearly",
      "benefits": ["جميع مزايا المهنية", "مقعد في المجلس الاستشاري", "دعم أولوية"],
      "maxMembers": 100
    }
  ]
}

أتمتة التجديد

يوفّر النظام أتمتة كاملة لعملية تجديد العضويات:

  • تنبيهات مسبقة: إرسال تذكيرات عبر البريد الإلكتروني والرسائل النصية قبل انتهاء العضوية (30، 14، 7، 1 يومًا).
  • تجديد تلقائي: خصم المبلغ تلقائيًا من بطاقة الدفع المسجلة (مع موافقة العضو المسبقة).
  • فترة سماح: 15 يومًا بعد انتهاء العضوية يحتفظ فيها العضو بالوصول المحدود.
  • إعادة التفعيل: إمكانية إعادة تفعيل العضوية المنتهية خلال 90 يومًا دون فقدان السجل التاريخي.
فعّل ميزة لوحة العضو لتمكين الأعضاء من إدارة بياناتهم وتجديد عضوياتهم وعرض سجل مشاركاتهم ذاتيًا، مما يقلل العبء الإداري على فريق العمل.

البوابات الحكومية والتكامل

توفّر sbay خبرة متخصصة في التكامل مع البوابات والأنظمة الحكومية في المملكة العربية السعودية. نساعد المؤسسات في ربط أنظمتها الداخلية مع منصات الحكومة الرقمية لتقديم خدمات مُبسّطة ومتوافقة مع المتطلبات التنظيمية.

تكامل نظام نفاذ (NAFATH)

نفاذ هو نظام تسجيل الدخول الموحّد الوطني الذي يتيح التحقق من هوية المواطنين والمقيمين. يوفّر التكامل مع نفاذ مصادقة آمنة وموثوقة:

C# — NAFATH Integration
// تكوين خدمة نفاذ في Startup
services.AddAuthentication(options =>
{
    options.DefaultScheme = "Cookies";
    options.DefaultChallengeScheme = "Nafath";
})
.AddCookie("Cookies")
.AddOpenIdConnect("Nafath", options =>
{
    options.Authority = "https://iam.nafath.sa";
    options.ClientId = Configuration["Nafath:ClientId"];
    options.ClientSecret = Configuration["Nafath:ClientSecret"];
    options.ResponseType = "code";
    options.Scope.Add("openid");
    options.Scope.Add("profile");
    options.Scope.Add("national_id");
    options.SaveTokens = true;
    options.CallbackPath = "/auth/nafath-callback";
});

// استخدام بيانات نفاذ في Controller
[Authorize(AuthenticationSchemes = "Nafath")]
public async Task<IActionResult> Profile()
{
    var nationalId = User.FindFirst("national_id")?.Value;
    var fullName = User.FindFirst("name")?.Value;
    // ...
}

تكامل واجهة أبشر (Absher API)

يتيح تكامل أبشر الوصول إلى خدمات حكومية متنوعة عبر واجهة برمجية موحّدة. تشمل الخدمات المتاحة:

  • التحقق من الهوية: التحقق من صحة رقم الهوية الوطنية أو رقم الإقامة.
  • خدمات الجوازات: الاستعلام عن صلاحية جواز السفر وتأشيرات الخروج والعودة.
  • خدمات المرور: الاستعلام عن المخالفات المرورية وصلاحية رخصة القيادة.
  • خدمات الأحوال المدنية: التحقق من بيانات السجل المدني والحالة الاجتماعية.

الامتثال للمتطلبات الحكومية

نضمن توافق جميع حلولنا مع الأنظمة واللوائح التالية:

النظام / اللائحةالجهة المشرفةالمتطلبات الرئيسية
نظام حماية البيانات الشخصية (PDPL)SDAIAموافقة صريحة، حق الحذف، إشعار الاختراق
إطار الأمن السيبراني (NCA ECC)NCAحوكمة الأمن، إدارة المخاطر، إدارة الثغرات
Cloud First Policyهيئة الحكومة الرقميةأولوية السحابة، تصنيف البيانات، إقامة البيانات
معايير SAMAالبنك المركزيPCI DSS، اختبار الاختراق، تشفير البيانات
يتطلب تكامل نفاذ وأبشر الحصول على اعتماد رسمي من هيئة الحكومة الرقمية (DGA). يستغرق الاعتماد عادة 4-8 أسابيع ويشمل مراجعة أمنية شاملة لتطبيقك. تواصل مع فريق sbay لبدء عملية الاعتماد.

التحليلات المالية

توفّر منصة التحليلات المالية من sbay رؤية شاملة وفورية للأداء المالي للمؤسسة. تجمع المنصة البيانات من مصادر متعددة (بوابات الدفع، المحاسبة، العضويات، التبرعات) وتقدّمها في لوحات تحكم تفاعلية مع تقارير قابلة للتخصيص.

لوحة التحكم الرئيسية

تعرض لوحة التحكم المؤشرات المالية الرئيسية في الوقت الفعلي:

  • الإيرادات الإجمالية: إجمالي الإيرادات مع مقارنة بالفترة السابقة ونسبة التغيير.
  • التدفق النقدي: رسم بياني للتدفقات الواردة والصادرة مع توقعات مبنية على البيانات التاريخية.
  • أعلى المنتجات/الخدمات: ترتيب المنتجات والخدمات حسب الإيرادات مع معدل النمو.
  • معدل التحصيل: نسبة الفواتير المحصّلة مقابل الفواتير المستحقة.

أنواع التقارير

التقريرالتكرارالمحتوىالصيغ المتاحة
ملخص الإيراداتيومي / أسبوعي / شهريإيرادات، مصروفات، صافي الربحPDF, Excel, CSV
تقرير المعاملاتحسب الطلبتفاصيل كل معاملة ماليةPDF, Excel, CSV, JSON
تقرير الضريبةربع سنويضريبة القيمة المضافة المحصّلة والمدفوعةPDF, XML (ZATCA format)
تقرير التسويةشهريمطابقة بين بوابة الدفع والحساب البنكيPDF, Excel
توقعات ماليةربع سنويتوقعات الإيرادات والمصروفات بالذكاء الاصطناعيPDF, Excel

تصدير البيانات

تدعم المنصة تصدير البيانات بصيغ متعددة مع إمكانية الجدولة التلقائية:

JavaScript — Report API
// طلب تقرير مخصص عبر API
const report = await fetch('https://analytics.sbay.sa/api/v1/reports', {
  method: 'POST',
  headers: {
    'Authorization': `Bearer ${token}`,
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    type: 'revenue_summary',
    dateRange: {
      start: '2025-01-01',
      end: '2025-01-31'
    },
    groupBy: 'day',
    filters: {
      paymentMethod: ['mada', 'visa'],
      status: 'completed'
    },
    format: 'excel',
    locale: 'ar'
  })
});

const { downloadUrl, expiresAt } = await report.json();
// رابط التحميل صالح لمدة 24 ساعة

التكامل مع أنظمة المحاسبة

تتكامل المنصة مع أنظمة المحاسبة الشائعة في المملكة:

  • قيود (Qoyod): مزامنة تلقائية للفواتير والمدفوعات.
  • دفترة (Daftra): تصدير المعاملات بصيغة متوافقة.
  • Zoho Books: تكامل ثنائي الاتجاه عبر API.
  • SAP: موصّل مخصص للمؤسسات الكبيرة.
فعّل ميزة التقارير المجدولة لإرسال ملخص مالي يومي أو أسبوعي تلقائيًا عبر البريد الإلكتروني إلى الإدارة المالية. يمكنك تخصيص المحتوى والتنسيق والمستلمين من إعدادات لوحة التحكم.