عمليات OmniUDM
OmniUDM هي وظيفة إدارة البيانات الموحدة (UDM) في نواة Omnitouch 5G. تقدم هوية المشترك وبيانات الاشتراك وبيانات السياق لبقية النواة من خلال خدمات Nudm القياسية، مما يدعم جميع البيانات الموثوقة في مستودع البيانات الموحد (OmniUDR) عبر nudr-dr.
دور 3GPP ومراجع المواصفات
| الجانب | المرجع |
|---|---|
| الدور الوظيفي لـ UDM في 5GC | TS 23.501 |
| خدمات Nudm (SDM / UEAU / UECM) | TS 29.503 |
| Nudr_DataRepository (المستهلكة) | TS 29.504 |
| مخططات إخفاء وحماية SUCI / SUPI | TS 33.501 §6.12 وملحق C |
| هيكل وترميز SUCI / SUPI | TS 23.003 §2.2B |
| مصادقة 5G-AKA وهرمية المفتاح | TS 33.501 §6.1.3، ملحق A |
| ترميز الهوية المتنقلة (SUCI/MSIN BCD) | TS 24.501 |
الواجهات و��قاط نهاية SBI
تقوم OmniUDM بتسجيل الخدمات التالية مع NRF وتقدمها على مستمع SBI (sbi_scheme://sbi_addr:sbi_port):
| الخدمة | الإصدار | الغرض |
|---|---|---|
nudm-sdm | v2 | إدارة بيانات المشترك |
nudm-ueau | v1 | توليد متجه مصادقة UE |
nudm-uecm | v1 | إدارة سياق UE (تسجيل AMF/SMF) |
تُقرأ جميع بيانات المشترك والسياق الموثوقة من / تُكتب إلى OmniUDR عبر nudr-dr/v2 (مسار أساسي .../nudr-dr/v2/subscription-data/{ueId}/...). جميع أجسام الطلب/الاستجابة هي JSON. يتم إرجاع الأخطاء كـ application/problem+json ProblemDetails.
Nudm_UEAuthentication (nudm-ueau/v1)
| الطريقة | المسار | الوصف |
|---|---|---|
| POST | /{supiOrSuci}/security-information/generate-auth-data | توليد متجه مصادقة 5G-AKA. يقبل SUPI أو SUCI؛ يقوم بإلغاء إخفاء SUCI أولاً. يتطلب servingNetworkName و ausfInstanceId |
| POST | /{supi}/auth-events | تسجيل حدث نتيجة المصادقة. يتطلب nfInstanceId و success و timeStamp و authType و servingNetworkName |
| PUT | /{supi}/auth-events/{authEventId} | تحديث / إزالة حدث المصادقة (جسم AuthEvent، authRemovalInd=true يمسحه) |
Nudm_UECM (nudm-uecm/v1)
| الطريقة | المسار | الوصف |
|---|---|---|
| PUT | /{supi}/registrations/amf-3gpp-access | AMF يسجل الوصول 3GPP لـ UE |
| PATCH | /{supi}/registrations/amf-3gpp-access | تحديث معلمات التسجيل 3GPP المخزنة لـ AMF (دمج التصحيح) |
| GET | /{supi}/registrations/amf-3gpp-access | استرجاع التسجيل 3GPP المخزن لـ AMF |
| PUT | /{supi}/registrations/amf-non-3gpp-access | AMF يسجل الوصول غير 3GPP لـ UE |
| GET | /{supi}/registrations/amf-non-3gpp-access | استرجاع التسجيل غير 3GPP المخزن لـ AMF |
| PUT | /{supi}/registrations/smf-registrations/{pduSessionId} | SMF يسجل سياق جلسة PDU |
| DELETE | /{supi}/registrations/smf-registrations/{pduSessionId} | SMF يلغي تسجيل سياق جلسة PDU |
Nudm_SDM (nudm-sdm/v2)
| الطريقة | المسار | الوصف |
|---|---|---|
| GET | /{supi} | GetDataSets - استرجاع مجموعات بيانات متعددة تم اختيارها بواسطة معلمة الاستعلام الإلزامية dataset-names (مفصولة بفواصل AM و SM و SMF_SEL و UEC_SMF) |
| GET | /{supi}/am-data | بيانات اشتراك الوصول والتنقل (استعلام plmn-id اختياري) |
| GET | /{supi}/sm-data | بيانات اشتراك إدارة الجلسة (استعلام plmn-id اختياري) |
| GET | /{supi}/smf-select-data | بيانات اشتراك اختيار SMF (استعلام plmn-id اختياري) |
| GET | /{supi}/nssai | بيانات اشتراك اختيار شريحة الشبكة |
| GET | /{supi}/ue-context-in-smf-data | سياق UE في SMF (جلسات PDU النشطة): انظر الملاحظة أدناه |
| POST | /{supi}/sdm-subscriptions | الاشتراك في إشعارات تغيير البيانات. يتطلب nfInstanceId و callbackReference و monitoredResourceUris |
| GET | /{supi}/sdm-subscriptions/{subscriptionId} | استرجاع اشتراك SDM المخزن |
| PATCH | /{supi}/sdm-subscriptions/{subscriptionId} | تعديل اشتراك SDM (دمج التصحيح) |
| DELETE | /{supi}/sdm-subscriptions/{subscriptionId} | إزالة اشتراك SDM |
إخفاء SUCI / SUPI
لحماية هوية المشترك الدائمة عبر الهواء، يرسل UE SUCI (معرف مشترك مخفي) بدلاً من SUPI (معرف مشترك دائم، أي imsi-<IMSI>). عندما يطلب AUSF من OmniUDM توليد متجه مصادقة لـ SUCI، يقوم OmniUDM بإلغاء إخفاء SUCI إلى SUPI قبل أن يتمكن من البحث عن بيانات المشترك في UDR.
يدعم OmniUDM المخططات الثلاثة للحماية المحددة في TS 33.501 §6.12 / ملحق C:
| المخطط | الاسم | المنحنى / التشفير | يتطلب مفتاح HNET؟ |
|---|---|---|---|
| 0 | مخطط فارغ | لا شيء - MSIN في نص واضح | لا |
| 1 | ملف ECIES A | Curve25519 (X25519) + AES-128-CTR + HMAC-SHA-256 | نعم |
| 2 | ملف ECIES B | secp256r1 / P-256 + AES-128-CTR + HMAC-SHA-256 | نعم |
بالنسبة لـ المخطط الفارغ، يتم حمل MSIN في النص الواضح؛ يتم فك ترميز BCD من مخرجات المخطط لإعادة بناء IMSI (وفقًا لـ TS 24.501 - يتم ترميز أرقام MSIN بتشفير BCD، وليس hex). بالنسبة لـ الملف A وملف B، يقوم إلغاء الإخفاء بإجراء ECDH مؤقت-ثابت ضد المفتاح الخاص للشبكة المنزلية للمشغل، ويستخرج مفاتيح التشفير/MAC (ANSI-X9.63-KDF مع SHA-256)، ويتحقق من MAC، ويفك تشفير MSIN المخفي، ويف�� ترميز BCD لإعادة بناء IMSI.
يتم تحميل المفاتيح الخاصة للشبكة المنزلية للملف A/B من دليل hnet_key_dir. يتم توثيق تسمية الملفات والترميزات ومتطلبات الأمان وتحديث الذاكرة المؤقتة في التكوين → مفاتيح الشبكة المنزلية (hnet_key_dir).
الإجراءات الرئيسية
إلغاء إخفاء SUCI وتوليد متجه المصادقة
يطلب AUSF متجه مصادقة؛ يقوم OmniUDM بحل الهوية (يتم إلغاء إخفاء SUCI إذا لزم الأمر)، ويطلب متجهًا من HSS عبر UDR، ثم يستخرج مفاتيح 5G منها. تظل Ki/OPc وإدارة SQN وأي إعادة مزامنة في HSS خلف UDR - يتحقق OmniUDM من أن HSS AUTN يحمل بت الفصل 5G (بت AMF 0، TS 33.501 §6.1.3.2، مأخوذ من AMF المخصص للمشترك) ويستخرج XRES* و KAUSF من xres و ck و ik المعادة. يتم إرسال resynchronizationInfo المقدم من AUSF إلى HSS عبر UDR.
تُرجع حالات فشل إلغاء الإخفاء HTTP 403 (فشل إلغاء إخفاء SUCI)، وتُرجع مخططات الحماية غير المدعومة HTTP 501، ويُرجع المشترك المفقود أو المعطل HTTP 404 (USER_NOT_FOUND)، وتُرجع متجهات HSS غير الصالحة (بما في ذلك AUTN بدون بت الفصل) أو فشل توليد متجه HSS HTTP 500.
تسجيل حدث نتيجة المصادقة
بعد أن يكمل AUSF المصادقة، يسجل النتيجة. يقوم OmniUDM بتخزين الحدث ضد سياق UE ويعيد Location للحدث الذي تم إنشاؤه؛ يمكن لـ AUSF لاحقًا PUT حدث AuthEvent مع authRemovalInd=true لمسحه (204 لا محتوى).
جلب بيانات المشترك SDM (sm-data)
بعد التسجيل، يقوم AMF/SMF بجلب بيانات الاشتراك. يقوم OmniUDM بتمرير الطلب إلى UDR، مضيفًا PLMN الخادم، ويعيد استجابة UDR. بالنسبة لـ sm-data، يتم لف كائن UDR واحد في مصفوفة وفقًا لـ TS 29.503 SmSubsData.
تتبع تدفقات am-data و smf-select-data و GetDataSets (GET /{supi}) نفس نمط التمرير ضد UDR. يقوم GetDataSets بتجميع فقط مجموعات البيانات المطلوبة التي يمكنه حلها، متجاوزًا أي منها يحدث خطأ. يتم اشتقاق nssai من استجابة UDR am-data (انظر أدناه).
UE-context-in-SMF يعيد سياق جلسة PDU الحية.
GET /{supi}/ue-context-in-smf-dataومجموعة بياناتUEC_SMFفي GetDataSets تعيد سياقات جلسات PDU النشطة لـ UE كما أبلغ عنها SMF عبر إجراء تسجيل SMF Nudm_UECM. يتم إسقاط كل تسجيل SMF مخزن في خريطةpduSessions(مفتاحها هو معرف جلسة PDU) وفقًا لـ TS 29.503. تكون الخريطة فارغة ({"pduSessions": {}}) فقط عندما لا يحمل UE أي تسجيلات SMF حقيقية.
جلب NSSAI مع تراجع افتراضي
GET /{supi}/nssai يجلب am-data من UDR ويستخرج nssai المضمن. إذا أعاد UDR am-data بدون nssai، أو فشل بحث UDR، يعيد OmniUDM تراجع default_nssai القابل للتكوين حتى يتلقى AMF دائمًا قائمة الشرائح.
يجب أن يتطابق تراجع default_nssai مع الشرائح التي تقدمها الشبكة فعليًا - يتم رفض المشترك الذي تم عرض شريحة له لم يتم تكوين AMF لخدمتها برمز 5GMM #62. انظر التكوين → مفاتيح الضبط الاختيارية.
إشعارات تغيير SDM
يتم إعلام المشتركين الذين لديهم اشتراك SDM نشط بالتغييرات اللاحقة: يقوم OmniUDM بإرسال ModificationNotification إلى callbackReference لكل اشتراك (بشكل غير متزامن) عندما تتغير الموارد المراقبة. يمكن أيضًا تشغيل ��شعار يدويًا لمشترك عبر واجهة إدارة/OAM API.
تسجيل AMF لـ UECM والتنقل
عندما يقوم UE بالتسجيل، يقوم AMF بتسجيل نفسه لذلك UE في OmniUDM. إذا تم تسجيل AMF مختلف سابقًا، يقوم OmniUDM بإخطار deregCallbackUri لـ AMF القديم حتى يتمكن من تحرير UE، ثم يحتفظ بالتسجيل الجديد في UDR.
يتم التحقق من IEs الإلزامية وفقًا لـ TS 29.503: يتطلب تسجيل AMF 3GPP amfInstanceId و deregCallbackUri و guami و ratType؛ يتطلب تسجيل SMF smfInstanceId و pduSessionId و singleNssai و plmnId، ويجب أن يتطابق جسم pduSessionId مع المسار (يؤدي عدم التطابق إلى إرجاع MANDATORY_IE_INCORRECT). تؤدي IEs المفقودة إلى إرجاع HTTP 400.