إخفاء واجهة المستخدم

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

توضح الموضوعات التالية كيفية إخفاء قيم الحقل.

تحديد البيانات المطلوب إخفاؤها

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

لا يمكن إخفاء المفاتيح الأساسية. لا يمكن تكوين حقل محدد كمعرف فريد لصف للإخفاء. قد ينتج عن إخفاء حقل عبارة عن جزء من المفتاح الأساسي حدوث مشكلة عند محاولة تحديث السجل. ينطبق هذا القيد أيضًا على العناصر التي تعتبر جزءًا من "قائمة" في عمود XML في كائن الصيانة. يجب تحديد عنصر أو أكثر في القائمة كمعرف فريد للقائمة. رجاء التأكد من أن العناصر المحددة المطلوبة للإخفاء لا تحتوي على عنصر أو أكثر من عناصر المفاتيح الأساسية.

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

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

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

قم بتحديد نوع الحماية لكل حقل بمستويين من مستويات الترخيص:

  • 1 - يمكن الاطلاع على العنصر المخفي فقط

  • 2 - يمكن الاطلاع على العنصر غير المخفي فقط

قم بربط كل أنواع الحماية مع خدمة التطبيق التي تختارها. نوصي بربط كل نوع حماية موجهة للإخفاء بخدمة تطبيق واحدة (على سبيل المثال، CM_MASK) مما يسهل من منح صلاحية الوصول.

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

بعد تحديد مجموعات المستخدمين لكل نوع حماية، قم بربط كل مجموعة مستخدمين بخدمة التطبيق المحددة أعلاه. عند ربط مجموعة مستخدمين بخدمة التطبيق، يجب تحديد مستوى الترخيص لكل نوع حماية مرتبط بخدمة التطبيق. إذا كان يجب أن تظهر قيم حقل نوع الحماية غير مخفية لمستخدمي مجموعة مستخدمين محددة، قم بتعيين مستوى الترخيص إلى القيمة 2، وبخلاف ذلك قم بتعيين القيمة إلى 1.

ملاحظة: مسح ذاكرة التخزين المؤقت. تذكر أنه عند تغيير حقوق الوصول في أي وقت، يجب مسح ذاكرة التخزين المؤقت للحماية (عن طريق إدخال lushAll.jsp في عنوان URL الخاص بالتطبيق) إذا كنت تريد أن يسري التغيير على الفور.

تكوين خوارزمية الإخفاء

يجب إنشاء خوارزمية إخفاء البيانات الحساسة (باستخدام قيمة كيان الخوارزمية تكوين الميزة - إخفاء البيانات الحساسة) لكل توليفة مكونة من قواعد الإخفاء ونوع الحماية. تحدد هذه الخوارزميات ما إذا كان لمستخدم حقوق عرض حقل محدد غير مخفي أم لا، وإذا لم يكن للمستخدم حق العرض، تحدد الخوارزميات كيفية إخفاء الحقل.

توفر الحزمة الأساسية نوع الخوارزمية F1-MASK التي تم تخصيص المعاملات الخاصة بها لمعالجة معظم احتياجات الإخفاء. في حالة ما إذا كان من الممكن لمستخدمين محددين عرض البيانات غير المخفية، تقوم المعلمات بتسجيل خدمة التطبيق ونوع الحماية ومستوى الترخيص المحددين أعلاه ليتم استخدامهم في التقييم. بالإضافة إلى هذا، تتيح لك المعلمات إمكانية تكوين كمية البيانات المطلوب إخفاؤها وحرف الإخفاء المطلوب استخدامه. لمزيد من المعلومات، الرجاء الرجوع إلى وصف نوع الخوارزمية.

تحديد كيفية عرض الحقول

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

  • الحقل هو عنصر يتم استرجاعه عن طريق استدعاء كائن العمل أو خدمة الأعمال أو سكريبت الخدمة

  • يتم عرض الحقل في صفحة صيانة ثابتة (وبالتالي يتم استرجاعه عن طريق استدعاء خدمة الصفحة)

  • يتم عرض الحقل في صفحة بحث ثابتة (وبالتالي يتم استرجاعه عن طريق استدعاء خدمة البحث)

  • يتم تخزين الحقل كخاصية مخصصة

إنشاء تكوين الميزة لكل عنصر مخفي

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

إخفاء حقل كائن مستندًا إلى مخطط

بالنسبة للبيانات التي يتم الوصول إليها من خلال استدعاء كائن مستند إلى مخطط ومعروض في مخطط واجهة المستخدم، يجب أن يشير الحقل المطلوب إخفاؤه إلى اسم حقل بيانات التعريف في تحديد المخطط: field="fld_name"، alg="algorithm name"

إذا كان العنصر يشير إلى الحقل mdField بالمخطط، يعد ذلك هو الحقل المستخدم في تحديد قاعدة إخفاء البيانات. في حالة عدم وجود مرجع للحقل mdField ووجود مرجع للحقل mapField، يعد ذلك هو الحقل المستخدم في تحديد قاعدة إخفاء البيانات. على سبيل المثال، إذا أردت إخفاء بيانات رقم بطاقة ائتمانية، دعنا نفترض أنه قد تم تحديد الحقل في المخطط كالتالي:

<creditCard mdField="CCNBR" mapField="EXT_ACCT_ID"/>

وفي هذه الحالة، يجب أن تكون قيمة الخيار عبارة عن field="CCNBR"، alg="algorithm name". ولا يتم إخفاء البيانات كنتيجة لقيمة الخيار field="EXT_ACCT_​ID"، alg="algorithm name".

ويمكن أيضًا تحديد عبارة "where". ويكون ذلك مفيدًا في حالة البيانات التي توجد في قائمة يلزم فيها إخفاء نوع محدد من البيانات: field="fld_name"، alg="algorithm name"، where="fld_name='value'"

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

<personIDs type="list" mapChild=CI_PER_ID">
  <isPrimaryId mapField="PRIM_SW"/>
  <idType mapField="ID_TYPE_CD"/>
  <personIdNumber mapField="PER_ID_NBR"/>
</personIds>

وقد تبدو قيمة الخيار كالتالي: field="PER_​D_​NBR"، alg="algorithm name"، where="ID_​YPE_CD='SSN'"

رجاء ملاحظة النقاط الهامة التالية عند إخفاء البيانات المستندة إلى مخطط:

  • تحديد قيود الحقل 'where' على الرغم من أن الاستخدام الرئيسي لعبارة 'where' للعناصر الموجهة للمخطط هو إخفاء بعض العناصر في القائمة على أساس 'النوع'، ومن الممكن أيضًا إخفاء حقل واحد في المخطط على أساس قيمة حقل آخر. على سبيل المثال، إذا قام عميل ما بإرسال نموذج تسجيل يحدد نوع معرف وقيمة معرف. على الرغم من أن هذه البيانات ليست مدرجة في قائمة، قد لا تزال ترغب من خلال النسخة المعدلة أن تقوم بإخفاء قيمة المعرف فقط إذا كان نوع المعرف هو "SSN". يمكن من خلال إطار العمل أن يتم إخفاء عنصر في المخطط استنادًا إلى عبارة 'where' وذلك إذا كان العنصر الموجود في عبارة 'where' هو في الأساس "فرع" بالمخطط.

    • إذا كان العنصر المطلوب إخفاؤه موجودًا في قائمة، فيجب أن يتواجد العنصر بعبارة 'where' بنفس القائمة.

    • إذا كان العنصر المطلوب إخفاؤه مرتبطًا بعمود حقيقي في جدول، فيجب أن يكون العنصر بعبارة 'where' هو أيضًا مرتبطًا بعمود حقيقي في الجدول.

    • في حالة ما إذا كان العنصر المطلوب إخفاؤه مرتبطًا بعمود XML في الجدول كعنصر مفرد، يجب أن يكون العنصر في جملة "WHERE" مرتبطًا بنفس عمود XML كعنصر مفرد.

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

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

      <personSSN mapXML=BO_DATA_AREA mdField=PER_ID_NBR/>
    • أن يقوم مخطط واحد بتسجيل معرف الشخص ونوع المعرف المقابل ويجب إخفاؤه بواسطة الخوارزمية CM_​SSN_​MASK إذا كان النوع هو "SSN" ويتم إخفاؤه بالخوارزمية CM_​FEIN_​MASK إذا كان النوع هو "FEIN".

      <personIdType mapXML=BO_DATA_AREA mdField=ID_TYPE_CD/>
      <personId mapXML=BO_DATA_AREA mdField=PER_ID_NBR/>
    • أن يقوم مخطط واحد بتسجيل معرف الشخص ونوع المعرف المقابل ويكون له نفس قواعد الإخفاء مثل المخطط السابق، ولكن يتم استخدام اسم حقل مختلف لرمز نوع المعرف. (قد يحدث هذا السيناريو عند الرغبة على سبيل المثال في تغيير تسمية نوع المعرف بواجهة المستخدم في هذا المخطط.)

      <personIdType mapXML=BO_DATA_AREA mdField=CM_ID_TYPE/>
      <personId mapXML=BO_DATA_AREA mdField=PER_ID_NBR/>

    بالنسبة لهذا السيناريو، قد تبدو خيارات الميزة كما يلي:

    1. field="PER_​ID_​NBR"، alg="CM_​SSN_​MASK"

    2. field="PER_​ID_​NBR"، alg="CM_​SSN_​MASK"، where="ID_​TYPE_​CD='SSN'"

    3. field="PER_​ID_​NBR"، alg="CM_​FEIN_​MASK"، where="ID_​TYPE_​CD='FEIN'"

    4. field="PER_​ID_​NBR"، alg="CM_​SSN_​MASK"، where="CM_​ID_​TYPE='SSN'"

    5. field="PER_​ID_​NBR"، alg="CM_​FEIN_​MASK"، where="CM_​ID_​TYPE='FEIN'"

    حيث أنه في كل مخطط، سوف يبحث النظام أولاً عما إذا كان العنصر يتم تطبيقه على أي خيار من خيارات الإخفاء. ثم يبحث عن 5 خيارات لإخفاء الحقل PER_​ID_​NBR. بعد ذلك، يتم تحديد أي عناصر فرعية تتطابق مع عبارة 'where'.
    • إذا تطابق أكثر من عنصر فرعي مع عبارة 'where'، يحدث خطأ في وقت التشغيل. على سبيل المثال، إذا كان للمخطط عنصر يشير إلى "mdField=ID_​TYPE_​CD" وعنصر يشير إلى "mdField=CM_​ID_​TYPE"، فيعتبر ذلك خطأ. بالإضافة إلى ذلك، إذا كان هناك العديد من العناصر التي تشير إلى mdField=ID_​TYPE_​CD"، فيعتبر ذلك خطأ.

    • إذا تطابق عنصر فرعي واحد فقط مع عبارة 'where'، تتم مقارنة قيمة العنصر مع القيم المحددة في عبارة 'where'. وفي حالة وجود تطابق مع القيمة، يتم تطبيق خوارزمية الإخفاء الملائمة. أما إذا لم يوجد تطابق (على سبيل المثال، إذا كان نوع معرف الشخص هو "LICENSE") يتم عرض العنصر كما هو.

    • إذا لم يوجد عنصر فرعي يطابق عبارة 'where' بينما يوجد خيار ميزة بدون عبارة 'where' (الخيار 1 أعلاه)، فيتم حينئذ تطبيق خوارزمية الإخفاء الخاصة بالخيار بدون عبارة 'where'.

  • تغيير القيمة في عبارة 'where'. في حالة وجود بعض المستخدمين بالنسخة المعدلة لديك تتوافر لهم إمكانية تغيير السجلات حيث تكون بعض البيانات مخفية على أساس شرط ما، يوصى بتصميم واجهة المستخدم لإعادة تعيين القيمة المخفية عندما تتغير القيمة في عبارة 'where'. على سبيل المثال، إذا تم منع أحد الأشخاص من عرض رقم التأمين الاجتماعي لشخص آخر، ولكن يُسمح للمستخدم بعمل تحديثات بسجل الشخص، فيجب أن يؤدي تغيير قيمة نوع معرف الشخص إلى إعادة تعيين رقم معرف الشخص. يضمن ذلك ألا يقوم الشخص بـ 'إلغاء إخفاء' رقم التأمين الاجتماعي ببساطة بواسطة تغيير نوع المعرف.

السجلات التي تمت صيانتها في صيانة الصفحة

بالنسبة للبيانات التي يتم الوصول إليها من خلال استدعاء خدمة صيانة الصفحة، حدد اسم الجدول واسم الحقل الذي توجد به البيانات: table="table_​name"، field="fld_​name"، alg="algorithm name"

على سبيل المثال، إذا تم عرض سجل الشخص ومجموعة المعرفات الخاصة به وصيانتها بصيانة الصفحة، فيجب أن تكون قيمة الخيار table="CI_​PER_​ID"، field="PER_​ID_​NBR"، alg="algorithm name"

ويمكن تحديد عبارة "where": table="table_​name"، field="fld_​name"، where="fld_​name='value'"، alg="algorithm name"

حيث يكون ذلك مفيدًا في حالة البيانات التي توجد في جدول فرعي حيث يلزم إخفاء نوع محدد من البيانات. كما في حالة المثال على معرف الشخص، table="CI_​PER_​ID"، field="PER_​ID_​NBR"، alg="algorithm name"، where="ID_​TYPE_​CD='SSN'"

بيانات الخاصية

بالنسبة للبيانات التي يتم تخزينها كخاصية، قم ببساطة بتحديد نوع الخاصية: CHAR_​TYPE_​CD='char type'، alg="algorithm name"

يلزم تحديد ذلك مرة واحدة فقط بغض النظر عن كيان الخاصية الذي يوجد به نوع الخاصية. ولاحظ أنه يتم فقط دعم الخواص المخصصة.

إخفاء الحقول في نطاقات المستكشف أو سلاسل المعلومات

في نطاقات المستكشف، يتم عادة استرجاع البيانات باستخدام SQL مباشرة من قاعدة البيانات. ولا يتم تطبيق أي إخفاء للبيانات آليًا في هذه الحالة. وإذا كانت هناك بيانات يجب إخفاؤها في نتائج نطاق المستكشف، يجب تطبيق إخفاء البيانات بواسطة استدعاء خدمة الأعمال.

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

يوفر النظام خدمتي أعمال يتم استدعاؤهما لتحديد ما إذا كانت قواعد الإخفاء يلزم تطبيقها على حقل محدد.

  • F1-TableFieldMask. إخفاء حقل الجدول. يتم من خلال خدمة الأعمال هذه استلام اسم جدول واسم حقل وقيمة حقل واحد أو أكثر. وفي حالة تطبيق الإخفاء يتم رجوع القيمة المُخفاة.

  • F1-SchemaFieldMask. إخفاء حقل المخطط. يتم من خلال خدمة الأعمال هذه استلام اسم مخطط ونوع مخطط والمسار X وقيمة الحقل. وفي حالة تطبيق الإخفاء يتم رجوع القيمة المُخفاة.

نتائج خدمة البحث

بالنسبة للبيانات المعروضة في صفحة بحث "ثابتة"، يتم استرجاعها عبر استدعاء خدمة البحث. قم بتحديد اسم البحث والحقل المناسب المطلوب إخفاؤه بالإضافة إلى خوارزمية الإخفاء. على سبيل المثال: search="SearchServiceName"، field="PER_​ID_​NBR"، where="ID_​TYPE_​CD='SSN'"، alg="algorithm name"

للبحث عن اسم خدمة البحث، قم ببدء تشغيل البحث المعني، ثم انقر على زر الماوس الأيمن في منطقة الترشيح واختر فحص. بحث عن "serviceName". ستجد اسم الخدمة قد تم سرده. للبحث عن اسم الحقل المطلوب إخفاؤه، ابحث عن "معلومات عنصر واجهة المستخدم". يجب أن يكون هناك نتيجتان، نتيجة لمنطقة الترشيح والأخرى لمنطقة النتائج. تحتوي منطقة النتائج هذه على النص "SEARCH_​RESULTS" كبادئة لكل حقل. أسماء الحقل هي تلك التي تلي x$. لا تقم بالإشارة إلى x$ عند تحديد اسم الحقل. لاحظ أن جملة "where" يمكن تطبيقها فقط على الحقول التي تمثل جزءًا من نتائج البحث.

معلومات إضافية حول الإخفاء

توفر النقاط التالية معلومات إضافية لمساعدتك في تكوين الإخفاء:

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

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

  • يمكن أن تطلب بعض الأنظمة الخارجية معلومات باستدعاء خدمة عن طريق خدمة ويب. الرجاء مراعاة أن بعض طلبات خدمة الويب تتطلب إخفاء البيانات وبعضها لا يتطلب ذلك. على سبيل المثال، يحتاج أي طلب من نظام خارجي لمزامنة معلومات الشخص عدم إخفاء رقم التأمين الاجتماعي للشخص؛ بينما يحتاج طلب تطبيق الخدمة الذاتية عبر الويب لاسترجاع معلومات نفس الشخص لأغراض العرض إلى إخفاء رقم التأمين الاجتماعي للشخص. ولتنفيذ هذا النوع من المتطلبات، يجب ربط مستخدمين مختلفين بكل نوع من نوعي الطلبات ويجب أن ينتمي هؤلاء المستخدمين لمجموعات مستخدمين منفصلة بحقوق وصول مختلفة.

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