الانتقال إلى المحتوى
View in the app

A better way to browse. Learn more.

مجموعة مستخدمي أوراكل العربية

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Adf Security Framework

Featured Replies

بتاريخ:

السلام عليكم

موضوع بشوفه دايما وخصوصا لل Forms Developer اللى بييتجهوا لل ADF بلاقى ان رغم مشروعهم بالكامل مبنى على ال ADF Technology الا ان عند تامين الابليكشن (عمل اللوجين وصلاحيات المستخدمين من ناحية كل مستخدم ايه اللى يشوفه ويقدر يعدل فيه وايه لا ) الاقى بيستخدم طريقه ال Forms من ناحية عمل جدول للمستخدمين وجدول لصلاحياتهم وميثود فى الابليكبشن موديول بتهندل الموضوع ده وهكذا ورغم ان الطريقه دى صحيحه ما دامت بتلبى الغرض وانا شرحتها قبل كده فى موضوع

من هنا الا ان من وجهة نظرى ما دام مشروعك ADF يبقى من المفضل (best practice)انك تستخدم ال ADF Security Framework اللى خصصت اوراكل فصل كامل فى الDocumentation بتاعتها تتكلم عنه علاوه على عشرات الفيديوهات فى الموضوع ده على ال ADF Insider



وهنا لازم تعرف ان الموضوع ده مش صعب ولا حاجه عشان كده عملت ابليكيشن بيوضح استخدام ال ADF Security مبنى على Hr Schema فيه Task flow خاص بالمستخدمين وآخر للادمين وكمان بيوضح عمل ال render وال Disable لبعض ال Components فى الصفحات بناء على المستخدم اللى عامل لوجين وبالطبع لا يوجد جداول فى الداتابيز للمستخدمين ولا صلاحياتهم لان مستخدمين النظام و ال Roles الخاصه بهم بيتم عملها على مستوى البرنامج نفسه وليس على مستوى قاعده البيانات



لتشغيل الابليكشن

بعد فك الضغط افتح الابليكيشن من على الجى ديف (النسخه اللى معمول عليها هى 11.1.1.4.0 ) وافتح ال Database Navigator وظبط الكونكشن الخاص بالبرنامج اللى اسمه hr على اعدادات الداتابيز عندك واعمل test واتاكد ان النتيجه success


2 اعمل رن للصفحه MainPage.jspx حتظهر لك الصفحه الرئيسيه وطبعا مفيش اى حاجه متنشطه معاك عشان انت لم تسجل الدخول بعد كما فى الصوره

852191193.jpg

3 قم بتسجيل الدخول ك tfox او ك bernst وال password هى welcome1 كما فى الصوره

509464333.jpg

(طبعا دول مستخدمين عادين للنظام وليس ادمين على النظام ) حتلاقى ان البوتون اللى اسمه تعديل بياناتى اتنشط معاك وتقدر تروح منه على fragment تعدل فيها بيانات اى مستخدم من اللى داخل بيهم



اضغط على تسجيل خروج واعد الدخول مره اخرى ولكن هذه المره قم بالدخول ك sking والباسورد ايضا welcome1 (طبعا ده الادمين الخاص بالنظام) حتلاقى ان tab تانيه ظهرت معاك اسمها مشاهدة الاحصائيات بتدخلك على fragment خاصة بالرسوم البيانيه اللى يشوفها المدير فقط كما فى الصوره


123318430.jpg

حمل الابليكيشن من هنا و paly with it و واى سؤال على اى خطوه حرحب به واتمنى انه يكون مفيد لمبتدئى ال ADF والمهتمين بموضوع السيكوريتى بوجه عام :D

  • الردود 31
  • المشاهدات 14.1k
  • البداية
  • اخر رد

أكثر المشاركين في هذا الموضوع

Most Popular Posts

  • سأقوم في هذه المقالة بتوضيح الطريقة الأصلح لتأمين الأنظمة من واقع الخبرة العملية التي لدينا وبتوضيح العديد من النقاط التي قد تخفى على البعض. مميزات ADF Security 1. تتكامل بشكل مباشر مع ADF 2. لا تحتاج

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

  • مقال جميل ولكنه اجد ان اكثره هو نظرى فقط لانك لو كنت بتستخدم ال ADF Security فعلا لاستطعت تنفيذ جميع هذه المتطلبات اللى كتبتها فى مقالك ولن تجد هذه الصعوبه البالغه التى تتحدث عنها عموما ساحاول الر

بتاريخ:

السلام عليكم ورحمة الله

الأخت الفاضلة / هالة سالم

دائما تأتينا بما هو جديد ومفيد للأخوة الأعضاء ... مع اسلوب وطريقة عرض سهلة ومتميزة

بارك الله فيك

جزاك الله خيرا

بتاريخ:

في الحقيقة أن سبب استخدام الجداول هو لكي يمكن للمستخدم أن يقوم بالتعديل في الصلاحيات وإضافة مجموعات جديدة دون الرجوع إلى المبرمج ، ولا تزال هذه النقطة من أكثر النقاط التي تجعلنا نبعد عن ADF Security Framework ، ولذلك إذا كان النظام (وهذا غالباً ما يكون) يحتاج إلى التعديل من المستخدم فلا تستخدم ADF Security Framework لأنها لن تلبي طلبات المستخدم خاصة إذا دخل Active Directory في الموضوع ولذلك أنصح الكل في أنظمتهم بالاعتماد على الجداول والبعد عن ADF Security Framework

بتاريخ:
  • كاتب الموضوع

مهندس امجد/ مهندس جبالى

الف شكر على الكلام الرقيق وان شاء الله احاول اعمل مواضع تانيه كلما سمح الوقت :D

الاخ / sd4it

لا يوجد مجال للمقارنه اصلا بين طريقة الصلاحيات فى الداتابيز وال ADF Security لانك يكفى انك تعرف ان اوراكل عملت ال ADF Security عشان تامن المواقع المعموله بال ADF يعنى هى دى طريقه التامين الاصليه فاهم قصدى (الطريقه الثانيه ليست خطا وانا سبق وان تكلمت عنها بالتفصيل ولكنها ليست الطريقه التى تدعمها اوراكل )

لأنها لن تلبي طلبات المستخدم خاصة إذا دخل Active Directory في الموضوع


لم افهم هذه النقطه لاننا بنعمل ديبلوى لابليكيشن فيه ADF Security enabled على weblogic Server بيستخدم ال Active Directory for authentication بدون اى مشكله وفيه ناس كتير اتكلمت عن الطريقه دى



شوف رغم اننى لا احب الكلام على مميزات ال ADF Security لانى باعتبرها هى الطريقه ال default اصلا فى التامين ولكن حمل البرنامج فى الرابط وقم مثلا بعمل run للابليكيشن موديول وشوف الماجيك لانك مش حتقدر تفتحه الا لو كنت authenticated فهل طريقه الصلاحيات اللى فى الداتابيز تقدر تامن الموديل وال Business Components اللى فيه زى ما تكنولوجيا اوراكل عملت ؟

موضوع انك تنصح ام لا تنصح فده قوله لاوراكل اللى عملت التكنولوجبا دى عشان تامن المواقع المعموله بال ADF وهى طبعا ادرى الناس بطرق تامينها

ملحوظه اخيره


ال ADF مبنيه بالكامل على ال J2EE عشان كده فى تامينها بتستخدم برضه نفس طريقه تامين ال J2ee يعنى انت بتستخدم طرق الويب فى عمل مشروعك وبعدين تستخدم طريقة الفورمز اللى هى اصلا Desktop Application فى تامينه ؟؟؟؟



شكرا على مرورك

بتاريخ:

سأقوم في هذه المقالة بتوضيح الطريقة الأصلح لتأمين الأنظمة من واقع الخبرة العملية التي لدينا وبتوضيح العديد من النقاط التي قد تخفى على البعض.
مميزات ADF Security
1. تتكامل بشكل مباشر مع ADF
2. لا تحتاج إلى كتابة أي كود تقريباً

من هنا قد يبدو للبعض أن استخدام ADF Security هو الطريقة الأمثل لتأمين الأنظمة ولكن هناك العديد من العيوب الموجودة فيه والتي لا تجعلنا نستخدمه في الأنظمة العملية خاصة عند وجود بعض المتطلبات الخاصة من العميل ، وفيما يلي مجموعة من العيوب والمتطلبات التي لا يمكن بناؤها أو تصبح أكثر صعوبة في ADF Security
عيوب ADF Security:
1. يحتاج العميل دائماً إلى وجود طريقة يقوم بتعريف المستخدمين والصلاحيات والمجموعات بمعنى أنه يريد إنشاء role جديد بنفسه ويحدد صلاحيات هذا الـ role وهذا لا يمكن في ADF Security الذي يعتمد على تعريف مجموعات النظام قبل بدايته وتكون مهمة المبرمج هي إنشاء هذه الصلاحيات وهذا لا يتفق مع المستخدم الذي لا يريد الرجوع للمبرمج لتعديل أي صلاحية وهذا يعتبر من أحد أهم العيوب
2. قابلنا أحد المتطلبات عند عميل وهي أن كلمة السر التي يستخدمها المستخدم مشفرة من خلال بعض packages الموجودة في قاعدة البيانات أوراكل وتتغير كلمة السر دورياً وبالتالي يجب عمل تشفير وفك التشفير لكلمة السر وهذا صعب في ADF Security
3. أحد المتطلبات الأخرى هو الربط مع Active Directory بحيث يقوم النظام بعرض الاسم الأول والثاني والقسم الذي ينتمي إليه المستخدم ، ليس هذا فحسب ، بل يجب أيضاً فلترة كافة البيانات بناء على القسم بحيث يتم عرض البيانات لهذا القسم فقط ، وهذا أيضاً أحد المتطلبات التي لا يمكن تنفيذها في ADF Security
4. يجب ملاحظة ان تامين النظام ليس وجود شاشة دخول للنظام ، فغالباً يكون هناك اكثر من نظام عند العميل ويريد ربط الأنظمة من خلال نظام الدخول الموحد Single Sign On مع ربط المستخدمين بـ Active Directory ، ولا تزال هناك مشكلة في web logic في هذه الجزئية
5. من النقاط الهامة هي عملية تأمين الملفات ، ففي نظام مثل نظام الأرشفة ، نحتاج إلى عمل تشفير للملفات المؤرشفة بحيث لا يطلع عليها أحد خاصة إذا استخدمنا التوقيع الإلكتروني وهذه الجزئية لا يمكن تنفيذها بـ ADF Security
6. من النقاط الهامة أيضاً والتي لا يشعر بها إلا من قابل هذا الموقف وهي كبر عدد المستخدمين ، ففي احد الأنظمة التي كنا نبنيها ، كان العدد الأولي للمستخدمين هو نصف مليون مستخدم (وهو عدد ليس بسيطاً) ، ويجب علينا تذكر أن ADF Security يقوم بتخزين ملفاته في ملفات xml وبالتالي عند زيادة عدد المستخدمين بدرجة كبيرة فإن استرجاع المستخدمين من قاعدة البيانات يصبح أسرع كثيراً من عملية الاسترجاع من ملفات xml
7. أيضاً السرية تعتمد بشكل كبير على سرية البيانات نفسها وعدم إمكانية اطلاع الشخص إلا على البيانات المصرح له بها ، وهذه الأمور تكون مطلوبة بشكل كبير في الجهات العسكرية وفي نظام الاتصالات الإدارية ، فمثلاً نريد إنشاء صلاحية تسمى سري وسري للغاية وعادي بحيث يطلع المستخدم على درجة السرية المحددة له وهذا كله يجب أن يتحكم فيه المستخدم ، وهذا أيضاً أسهل بكثير برمجياً
8. يتم تخزين المستخدمين من خلال web logic ، فإذا أحببنا نقل هذه البيانات إلى سيرفر جديد فنجد انفسنا في مشكلة خاصة غذا تم استخدام منتج Identity Manager من أوراكل
9. في العديد من الأنظمة المبنية في أوراكل فورم ، فنجد أنهم يقومون بتعريف المستخدمين في قاعدة البيانات (ولا أقصد هنا تخزينه في جدول) بل أقصد إنشاء مستخدم من خلال أمر create user بحيث أن اسم المستخدم وكلمة السر تكون هي database user وهذه الطريقة لم نجد لها مثيل في ADF Security
10. بعض العملاء يطلبون دعم النظام في Tom cat وفي web logic وهذا يتطلب تعريف المستخدمين في كلاهما في حين ان استخدام قاعدة البيانات يوفر طريقة موحدة لكلاهما

أرجو أن أكون قد وضحت الموضوع بشكل متكامل خاصة أن أننا وجدنا العديد من مبرمجي ADF لا ينتبهون لهذه النقاط ، وأحببنا في هذه المقالة توضيح الأمر بشكل موسع حتى يصبح المبرمجون على معرفة بالطريقة الأصلح.
وأخيراً أذكر وجهة نظري (وهي ليست وجهة نظر شخصية بل جاءت من الأنظمة العديدة التي نبنيها) وهي أن ADF Security قد يصلح في الأنظمة البسيطة والتي لا تحتاج إلى تغيير هيكلي في السرية ولا تحتاج إلى ربط مع Active Directory أو web service ، أما الأنظمة الواقعية التي نراها فالأفضل هو استخدام قاعدة البيانات.
ملحوظة: لا تهتم كثيراً بما تقوله الكتب وما تقوله أوراكل ، فيجب عليك التجربة والمقارنة حتى تصل للنتيجة وهي تلبية متطلبات العميل بشكل كامل ومريح له وللعلم فقط فهناك العديد من النقاط الموجودة في ADF والتي يرفضها المستخدمون وبالتالي يجب عليك تغيير الطريقة الافتراضية والبحث عن طرق أخرى
أرجو أن اكون قد أفدت وشكراً

بتاريخ:

متابع للنقاش

بتاريخ:
  • كاتب الموضوع

مقال جميل ولكنه اجد ان اكثره هو نظرى فقط لانك لو كنت بتستخدم ال ADF Security فعلا لاستطعت تنفيذ جميع هذه المتطلبات اللى كتبتها فى مقالك ولن تجد هذه الصعوبه البالغه التى تتحدث عنها

عموما ساحاول الرد على جميع الاجزاء اللى كتبتها

لا تحتاج إلى كتابة أي كود تقريباً


من قال ان استخدام ال ADF Security لا يتضمن اى اكواد انه Framework كامل اكواد جافا و XML و EL expressions انت عندك Bean كامله فى الابليكيشن بتهندل اللوجين كله علاوه على ملف ال jazn-data.xml اللى فيه المستخدمين وصلاحياتهم و EL اللى بنعمل بيه الrender وال Disable بناء على ال expression دى واشياء تانيه كتير لا مجال هنا للحديث عنها نظرا لكثرتها



يحتاج العميل دائماً إلى وجود طريقة يقوم بتعريف المستخدمين والصلاحيات والمجموعات بمعنى أنه يريد إنشاء role جديد بنفسه ويحدد صلاحيات هذا الـ role وهذا لا يمكن في ADF Security الذي يعتمد على تعريف مجموعات النظام قبل بدايته


ليس الامر صعبا الى هذا الحد لانك لو كنت استخدمت ال ADF Security فعلا حتعرف ان فى حاجه اسمها SQL authenticator provider على الويب لوجيك ومعناها انك بتقول للويب لوجيك انه ياخد ال Authentication Provider بتاعه من ناحية المستخدمين وال Roles بتاعتهم من جداول فى الداتابيز والطريقه دى طبعا متوافقه تماما مع ال ADF Security اقره عنها وحتشوف الماجيك فعلا



أحد المتطلبات الأخرى هو الربط مع Active Directory


لا اعرف اين المشكله فى عمل ذلك ايضا يمكن عمل ديبلوى لابليكيشن بيستخدم ADF Security على ويب لوجيك بيستخدم authentication provider مثل ال active Directory او حتى ال LDAP ولا يستخدم ال DefaultAuthenticator العادى حاول تجرب عمل ذلك وتقول المشكله بتبقى فين بالظبط لانى بصراحه مش فاهمه اين الصعوبه



يجب ملاحظة ان تامين النظام ليس وجود شاشة دخول للنظام


من قال ان اللوجين شاشه فقط لو كنت شوفت المثال حتلاقى ان التامين لجميع ال Task Flows وال fragments واى حاجه ليها page Definition لان من المعروف طبعا ان اى page Definition سواء كان ال Page Definition ده لصفحه او لاى method Call اعنى هنا ( create , insert,commit,ie)حيبقى محمى automatically عن طريق ال ADF Security عشان كده محتاج انك تديله anonymous or authenticated role عشان يبقى متشاف ومتاح عندك فى الموقع بتاعك



من ناحية التشفير فلا يوجد اى مشكله لان نظام ال LDap سيرفر بيقوم بتشفير الباسورد من نفسه

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


لا يمكن تنفيذها في ال ADF Security :)

اين الصعوبه فيها اصلا ؟؟ يمكن عملها فى ال ADF Security بطريقه سهله للغاية والدليل ان الابليكيشن اللى انا عاملاه فى الموضوع بقوم بنفس المتطلبات تقريبا وبيعرض بيانات المستخدم اللى عامل لوجين فقط ومش بس كده كمان بفلتر جدول الموظفين اللى فى الداتابيز عشان يسمح بعرض بيانات المستخدم اللى عامل لوجين وكمان يسمح بالتعديل فى بياناته فقط وملقتش اى صعوبه فى عمل كده(حمل الابليكيشن وشوف انا عاملاها ازاى )



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


بالعكس هذه النقطه يمكن عملها بمنتهى السهوله من خلال ال ADF Security بانك حتنشا ثلاثه roles مثلا لسرى وسرى للغايه وعادى وتعمل assign لكل user من على النظام عندك على ال roles دى مثلا ال user ده فى ال role الل اسمه secret وال user التانى فى ال role اللى اسمه very Secret وتامن الصفحات والفراجمنتس والتاسك فلو يعنى الفراجمنتس ده او الصفحه دى يشوفها اى حد فى جروب secret والتانيه يشوفها اللى فى جروب very secret والحكايه دى انا عاملاها بالكامل فى الابليكيشن بتاعى حمله وشوف الطريقه بالظبط



من النقاط الهامة هي عملية تأمين الملفات


لا توجد اى مشكله ايضا لان الحكايه دى بيتم عملها عن طريق عمل تعديل فى ال security settings فى ملف ال web.xml وبتامن الملفات دى عن طريق ال Security Constraints وتحدد الملفات دى حتبقى accessible لمين

من النقاط الهامة أيضاً والتي لا يشعر بها إلا من قابل هذا الموقف وهي كبر عدد المستخدمين ، ففي احد الأنظمة التي كنا نبنيها ، كان العدد الأولي للمستخدمين هو نصف مليون مستخدم (وهو عدد ليس بسيطاً)


بالعكس باه ال ADF Security Framework معموله اصلا لل large Applications اللى عدد مستخدمى النظام فيها ضخم اما البرامج الصغيره فدى ممكن نستخدم فيها ال Database Authentication واول مره اعرف ان الداتابيز ممكن تبقى اسرع وافضل من ملفات الXML اللى بتبقى على السيرفر نفسه



يتم تخزين المستخدمين من خلال web logic ، فإذا أحببنا نقل هذه البيانات إلى سيرفر جديد فنجد انفسنا في مشكلة

برضه مش فاهمه اين المشكله لان فى ال earlier version من الجى ديف كنا بننقل manually ال security permissions من ال jazn-data.xml الى الابليكيشن سيرفر لكن حاليا الحكايه دى بتتهندل automatically وال permission دى بيحصلها direct Deployment من على الجى ديفيلوبر الى السيرفر فاين المشكله ؟؟



بعض العملاء يطلبون دعم النظام في Tom cat وفي web logic


كيف يتم دعم نظام معمول بال ADF على تومكات وهو ليس J2ee Application server ؟

وعلى فكره اناكنت الى وقت قريب جدا بستخدم طريقة الصلاحيات فى الداتابيز ولكن ال ADF Security لبت الغرض واكثر

بعض الملاحظات على مقالك

رغم كبر مقالك الا انك لم تجاوبنى على سؤالى الاهم واللى حعيده دلوقتى تانى

فهل طريقه الصلاحيات اللى فى الداتابيز تقدر تامن الموديل وال Business Components اللى فيه زى ما تكنولوجيا اوراكل عملت ؟


صدقنى عدم استخدامك لل ADF Security بيحرمك من مميزات كتير فى ال ADF ولا يمكن استخدامها الا بعد تطبيق ال ADF Security ومثال صغير مثلا القدره على حفظ ال Customozation اللى بيعملها اليوزر على Components معينه فى الرن تايم يعنى مثلا يوزر حابب يغير ترتيب اعمده الجداول على الصفحه او يعمل بعض التعديلات على اشكال ال Components اللى بتظهر له وعاوزين نخزن ال preferences دى بحيث انه مش كل مره يدخل الموقع يعملها تانى دى بتم بمنتهى السهوله عن طريق ال ADF Security و عمل Enable User Customizations Across Sessions ازاى انت حتقدر تعملها عن طريق الداتابيز ? اتمنى انك تجاوبنى على سؤالى هذا ايضا

:D



اخيرا بما ان اغلب الانظمه المبنيه على ال ADF بتستخدم ال ADF Security لعملية التامين عشان كده عملت الابليكيشن ده اللى بيستخدم الطريقه دى from A to Z وده عشان ابسطها لكثير من الناس التى لا تعرف كيفية استخدامها وبتسال عليها كتير جدا وانا قبل كده شرحت طريقه التامين باستخدام الصلاحيات فى الداتابيز بالكامل فى موضوع من هنا

بمعنى انى اتكلمت على الطريقتين وحسيب للاخرين مطلق الحريه فى اختيار واستخدام الطريقه اللى تناسبهم و شايفينها اصلح فى مشاريعهم فالرجاء عدم تقرير ما هى الطريقه الاصلح بوجهة نظر شخصية او اعطاء الناس راى مسبق بعدم استخدام اى طريقه بدون ما يجربوا ويحكموا بنفسهم

بتاريخ:

دعيني أوضح أكثر المتطلبات بشكل دقيق:
يريد المستخدم إضافة role جديد ويريد تحديد صلاحيات هذا الـ role بأن له صلاحية على الشاشة رقم 1 ورقم 2 ورقم 3 ، وهذا يعني انه لا توجد صلاحيات مخزنة من قبل ، أيضاً تتضمن صلاحية الـ role ان للمستخدم حق الإضافة والتعديل والحذف في بعض الشاشات وليس له صلاحية في الشاشات الأخرى ، فهل هذه الإمكانية موجودة في ADF Security؟ كما أنه يجب عمل ذلك بدون عمل restart للـ web logic لأن المستخدم لا يعرف ذلك

يريد المستخدم تعريف مستخدم جديد ويريد إمكانية إيقافه عن العمل ، كما يريد تحديد مدة معينة لصلاحية دخول المستخدم بحيث يسمح له النظام بالدخول في وقت معين
يتم تحديده من قبل المستخدم

لا تزال عملية الربط مع Active Directory فيها مشكلة مع web logic ولا تعمل بطريقة سليمة

كيف يمكن عمل Single Sign On باستخدام ADF Security ، فالتأمين هنا أقصد به تأمين منظمة الأنظمة ككل وليس مجرد شاشات النظام أو عملياته

بالنسبة لتأمين البيانات ، كيف سيتم الحصول على بيانات القسم من Active Directory واستخدامها في النظام

بالنسبة للعمليات سري وسري للغاية وعادي ، فإن المستخدم هو الذي يقوم بتعريف مستوى درجات السرية لديه ولا نعرفها من البداية وأيضاً تختلف درجات السرية من عميل إلى أخر

تأمين الملفات ليس مجرد من يستطيع أن يراها أم لا ، فالمستخدم يريد عمل تشفير للملف نفسه بحيث أنه إذا حصل أي شخص على الملف وأراد فتحه فيطلب منه ملف pdf كلمة السر

هل يمكن أن يحمل ملف xml بيانات نصف مليون مستخدم؟ إن الملف أصلاً إذا أردنا فتحه فإنه يستغرق دقائق ، فما بالنا بالبحث فيه؟ أيضاً إذا رأينا مواقع مثل فيس بوك التي بها أكثر من نصف مليار مستخدم فنجد ان ملف xml لا يتحمل مثل هذا الكم من البيانات ولكن قاعدة البيانات توفر indexing التي تجعل عملية البحث أسرع ولا مشكلة في مليارات البيانات

إن الشركات المنتجة لمنتجات ERP تبحث عن توم كات لأنه مجاني وبالتالي تقل التكلفة على العميل ومن المعروف أن JDeveloper أصبح يدعم توم كات كما هو واضح من الرابط التالي
http://blogs.oracle.com/dana/entry/how_to_deploy_a_11g_adf_applic_1
وكما هو واضح فهو شرح من اوراكل نفسها على دعم توم كات

طبعاً يمكن تأمين النظام من خلال قاعدة البيانات بطريقة اقوى من ADF Security وكما ذكرت فإن العديد من المتطلبات لا يمكن تنفيذها من خلال ADF Security ونقابل بشكل مستمر مثل هذه المتطلبات ، ولقد ذكرت بعضها ولكن هناك أكثر من ذلك

عملية تخزين الـ preferences تتم من خلال Oracle MDS ولا تشترط استخدام ADF Security

كما ذكرت هذه ليست وجهة نظر شخصية بل هي من خلال احتكاكنا المستمر مع أقوى الأنظمة وننقلها لكل مبرمج ، وبالطبع من حق كل شخص ان يقوم بالتجربة كما ذكرت لاختيار الأصلح ولتحقيق وتلبية متطلبات العميل

بتاريخ:

ايه ده انا جيت بعد الموضوع ما سخن ما علينا sd4it والمهندسه هاله كفوا ووفوا

لو تفتكر يا بشمهندس مصطفي " sd4it " انا كنت سالتك مره عليها لو تفتكر تدريب " MOE " وقلت لي انها مش بتلبي احتياجات كتير محتاجينها زي ما بتلبيها تامين عن طريق الداتا بيز
صراحه ما اقتنعتش بس لما اطحنا شويه عرفت فعلا انها مش بتغطي احتياجات كتير " خصوصا لما تعمل ترقيه من انظمه قديمه بالديفيلوبر لل جي ديف " ويا سلام لما يكون عندك مثلا سيسيتم للسيكيورتي يعني كل اليوزر لكل السيستمز الي عندك بتعدي عليه يعني بتاع مثلا مليون مستخدم للانظمه كلها و رولز بتنضاف و رولز بتتحذف وخصوصا لو الرول مبنيه علي بيسنز معين لاشخاص معينه ولسيستم معين وشروط لما تتوفر اتوماتيك تنضاف له وخصوصا البرامج الحكوميه والعسكريه منها
المهم راي البسيط المتواضع جمب رايكو الداتا بيز سيكيورتي ما زالت هي الافضل في التامين للابليكشن الكبيره المعقده الي بتكون الصلاحيات فيها " مكلكعه " وخصوصا لما يدخل فيها بيزنس واليوزر الي هو الي يتحكم فيها بمرونه اكبر

الايه دي اف سيكيورتي لذيذ بس مش هياخد مكان الداتابيز سيكيورتي في البرامج ذات الصلاحيات المعقده ببساطه

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

بتاريخ:

الأخ xizoaziz:
إن فائدة مثل هذه المنتديات هو في تبادل الخبرات ، وكما ذكرت أنت أنك لم تكن مقتنعاً بما ذكرته لك حتى جربت في بيئة كبيرة ومن هنا بدأت تشعر بالمشكلة ، ولذلك نحن نعطي الخبرة التي مررنا بها حتى يستفيد منها الناس ، وهذا لا يمنع الاطلاع على ADF Security للمعرفة.
أؤكد لك أننا قابلنا أكثر من عشرين متطلب مختلف للسرية وكلها لا يمكن تنفيذها بـ ADF Security.
عموماً مشاركة الخبرات العملية في منتهى الأهمية خاصة من المبرمجين في بيئات عمل فعلية وكبيرة

بتاريخ:

الأخت هالة:
لقد اطلعت على المثال الذي قمت به وهو يحتوي على جهد مشكور عليه ، ولكن لي بعض الملاحظات:
1. من المفترض كتابة الرسائل باللغة العربية في الكود عن طريق unicode لأنه لو تم فتح الكود في JDeveloper يحتوي على encoding مختلف فلن تظهر الرسالة بشكل سليم
2. إذا كانت هناك وظيفة في النظام للأدمين بحيث يستطيع التعديل في بيانات كافة الموظفين فلن يمكن استخدام editEmployee
3. الاسم editEmployee لا يتوافق مع قواعد تسمية الجافا حيث يبدأ اول حرف capital
4. تم إنشاء class كامل اسمه commitMessage بغرض إظهار رسالة نجاح ، وعملياً ليس هذا هو المكان المناسب لوضع الرسالة لأن هذا معناه أنه يجب استدعاء هذا الـ class من كافة أزرار الحفظ في النظام والتي يمكن أن تكون بالمئات والأفضل هو عمل override للدالة afterCommit() بحيث يتم إظهار الرسالة مع كل وظيفة حفظ

عدا ذلك فالمثال جميل ويحتوي على العديد من الأفكار الجيدة

بتاريخ:
  • كاتب الموضوع

اولا انت لسه برضه مجاوبتنيش على سؤالى الاهم ازاى تقدر تامن الابليكيشن موديول بتاعك وال Business Components اللى فيه باستخدام ال DataBase Authentication زى ما ال ADF Security عملت ؟؟



عموما اوكيه مفيش مشكله ححاول برضه ارد على استفساراتك اللى شايفاها خرجت من نطاق الديفيلوبر الى الادمين بشكل كبير

يريد المستخدم إضافة role جديد ويريد تحديد صلاحيات هذا الـ role بأن له صلاحية على الشاشة رقم 1 ورقم 2 ورقم 3


باستخدام ال SQL Authentication provider السيرفر بيقره ال role من جداول فى الداتابيز هى دى ال enterprise Role اللى بتبقى بالنسبه له وعلى فكره انا ملاحظه ان لديك خلط بيين مفهوم ال JAAS وبين مفهوم ال Security Provider وهو ده سبب الجدال الاصلى اللى بيخلينا ندور فى دايره مغلقه

ال ADF Security عى عباره عن JAAS Package وظيفتها انها تكونكت على ال Security Provider وتتاكد ان اليوزر ده authenticated وكمان انه authorized او ليه ال permission انه يعمل التاسك ده موضوع اى security Provider انت ناوى تستخدم دى مشكلتك انت وليس مشكلة ال ADF Security




وهذا يعني انه لا توجد صلاحيات مخزنة من قبل ، أيضاً تتضمن صلاحية الـ role ان للمستخدم حق الإضافة والتعديل والحذف في بعض الشاشات وليس له صلاحية في الشاشات الأخرى


اولا انا حاسه انك بتتكلم على desktop Application وليس على تصميم موقع بمعنى انك مش ناوى تخلى الديفيلوبر يعمل اى تامين عليه لانك حتى لو ناوى تستخدم ال DataBase Authentication


فى عملية التامين لازم برضه تخلى ال Developer يامن التاسك فلو والصفحات وال Components على ضوء الصلاحيات اللى عنده بحيث يبقى مفيش مشكله لو اليوزر اضاف مستخدم جديد ويعمله assign على صلاحيه موجوده فعلا فى الداتابيز لكن يعمل صلاحية جديده يبقى لازم برضه الديفيلوبر يتدخل تانى فى الموضوع عشان يعمل تامين للصفحات والComponents اللى فيها على ضوء الصلاحية الجديده



لا تزال عملية الربط مع Active Directory فيها مشكلة مع web logic


ما هى المشكله؟؟؟

كيف يمكن عمل Single Sign On باستخدام ADF Security


شوف رغم ان الموضوع ده موضوع ادمين وليس ديفيلوبر الا ان طبعا يمكن عمل SSO باستخدام ال ADF Security لانك ساعتها بتعمل mapping بين ال Application roles اللى انت عاملها فى ال Jazn_data.xml File مع ال Oracle Internet Directory Groups على السبرفر وساعتها تقدر تستخدم SSO عشان تعمل Authentication لليوزر



تأمين الملفات ليس مجرد من يستطيع أن يراها أم لا ، فالمستخدم يريد عمل تشفير للملف نفسه


ايه اللى دخل موضوع ال JAAS Authentication بعملية تشفير الملف نفسه هى وظيفتها الملف ده حيبقى accessible لمين وغير accessible لمين اما موضوع التشفير فبيتم بطرق تانيه ملهاش علاقه بموضوع ال Authenication وبرضه يمكن عملها فى التطوير

هل يمكن أن يحمل ملف xml بيانات نصف مليون مستخدم؟ إن الملف أصلاً إذا أردنا فتحه فإنه يستغرق دقائق


موضوع تخزين ال security groups او system users على السيرفر امر معروف وهو مهيأ اصلا عن طريق العديد من ال Security Providers زى ال LDAP او حتى ال OID انه يخزن بيانات اكتر من كده بكتير فازاى تقول ان الداتابيز ممكن تبقى افضل ومتنساش ان ال OID هى برضه داتابيز

عملية تخزين الـ preferences تتم من خلال Oracle MDS ولا تشترط استخدام ADF Security


ازاى يعنى تقدر تستخدم ال persistence across sessions من غير ما يكون مطبق بمشروعك ال ADF Security ؟ اصلا تعدلات اليوزر بيتم تخزينها فى ملف اعتقد اسمه persistence store فى الويب لوجيك دومين

اوراكل لم ولن تدعم التومكات كسيرفر يمكن عمل ديبلوى لل ADF عليه وهذه الوثيقه موجوده من فتره وهى ليست official documentation ولكن مجرد محاوله التومكات اصلا هو ويب سيرفر وليس Application Server فكيف يتم عمل ديبلوى عليه لل EJB مثلا او يتوافق مع الJNDI او او .........



وكما ذكرت فإن العديد من المتطلبات لا يمكن تنفيذها من خلال ADF Security ونقابل بشكل مستمر مثل هذه المتطلبات ، ولقد ذكرت بعضها ولكن هناك أكثر من ذلك

زى ما انت بتقول بعض المميزات اللى بتديهالك ال Database فى مميزات تانى كتير متقدرش تعملها غير باستخدام ال ADF Security ولا تعطيها لك ال DataBase authentication


الDifferent Permissions على صفحه واحده بمعنى ان الكل يبقى شايف الصفحه دى بس درجه التحكم فى الصفحه وال Components اللى فيها بتختلف حسب المستخدم اللى عامل لوجين

التكامل بتاعها مع ال ADF بيديك العديد من المميزات لدرجه التحكم فى attribute معين على انتيتى معينه وتقوله دى يبقى updatable لمين ويبقى read only لمين هل ال DataBase Security بتديلك ده

موضوع ال anonymous Role بحيث انك تخلى صفحات معينه يقدر يشوفها الزائر ولا تتطلب منه عملية الدخول

عموما اجد ان التحدى الاكبر هو تطبيق عملية ال Authentication and authorization على جميع البيئات المختلفه وبالطبع فلا اتصور ان جميع من استخدموا ال ADF Security لم تواجههم اى من تلك المشاكل واخيرا فللمطور مطلق الحريه فى استخدام اى طريقه يشاء

لى عوده على ملاحظاتك على المثال ولكن لما اروح باه لانى حاليا بعمل المشاركه دى وانا فى الشغل :D
بتاريخ:
  • كاتب الموضوع

من ناحية ملاحظاتك على المثال

الفراجمنتس اللى اسمها Edit Employee بتتيح لكل موظف انه يعدل فى بياناته هو لو عاوز الادمين يعدل فى بيانات جميع الموظفين فمبنتهى البساطه حتعمل فراجمنتس تانيه فيها جدول الموظفين بالكامل وتكون متاحه ومتشافه للادمين بس بحيث انه اول ما يضغط على اى row وبوتون edit حتوديه برضه على نفس الفراجمنتس اللى اسمها Edit Employee عشان يعدل فى بيانات الموظف ده بحيث ان ال property listener ياخد الاى دى بتاعه فى الحاله دى من رقم الموظف اللى فى الجدول فاين المشكله وعلى فكره كنت ناوى اضيف الحكاية دى للابليكيشن ولكن لقيت انها سهلة اوى وبتتعمل كتير يعنى الفراجمنتس واحده مين باه يدخل يعدل دى انت اللى بتظبطها



من ناحية رساله الحفظ فبالطبع يمكن اظهار تلك الرساله بعشرات الطرق ولكن هنا ان عامله الكلاس دى عشان اوضح كيفيه اظهار رسايل لليوزر بشكل عام عن طريق الباكينج بين لانى بتسال فيها كتير


من ناحية الcapital وال small فده اسم ال Fragment وليس اسم كلاس جافا وعموما البرنامج ده غرضه تعليمى فانا لا انوى طرحه للبيع مثلا حتى اهتم بموضوع الCapital وال Small

بتاريخ:

الله ينور
إيه الحلاوة دى

بتاريخ:

الأخت هالة:
أرى أنه لم تصل إليك المتطلبات بالشكل الصحيح ولذلك دعيني أقول لك أن كل ما يفعله ADF Security يمكن تنفيذه من خلال قاعدة البيانات على الوب وليس على Desktop إطلاقاً ولكن العكس غير صحيح ، بمعنى أنه توجد العديد من النقاط التي لا يمكن فعلها من خلال ADF Security ، ولذلك بدلاً من طرح نقاط كثيرة وعدم فهمها ، فدعينا نطرح الموضوعات نقطة نقطة.
أحد العملاء طلب منا تنفيذ الصلاحية كالتالي:
قام العميل بتقسيم المستخدمين إلى مناطق بحيث أن كل منطقة لها مدى IP Address خاص بها والمطلوب هو التحقق من المستخدم كالتالي
يقوم النظام بأخذ اسم المستخدم وكلمة السر ويقوم بمعرفة IP Address الخاص بالمستخدم ، فإذا كان المستخدم غير موجود فيقوم بإظهار رسالة خطأ ، اما إذا كان المستخدم موجوداً ولكن IP Address الخاص به ليس ضمن النطاق المحدد للمنطقة فيعطيه رسالة خطأ مختلفة تبين له أن المنطقة التي دخل بها ليس لها صلاحية على النظام.
وبالطبع فإن النطاقات والمناطق موجودة في جدول خاص بها ، فالسؤال هنا: كيف يمكن تنفيذ ذلك من خلال ADF Security مع العلم أن الحالة التي ذكرتها هى حالة فعلية وواقعية وليست من اختراعنا ، فبالفعل قمنا بتنفيذ هذا الأمر.
الرد على هذه النقطة تحديداً سيكون له فائدة مزدوجة ، فإن كان ADF Security على استطاعة أن يقوم بتنفيذ ذلك ، فستكون إضافة لنا أن نعرف كيف ، أما إذا لم يكن على استطاعة فستكونين استفدت من حالة من الحالات المعقدة في السرية والغير معتادة.
أرجو توضيح مدى الإمكانية حتى ننتقل إلى حالات أخرى أكثر تعقيداً بحيث نعرف مدى إمكانيات ADF Security
شكراً على المناقشة المفيدة

بتاريخ:
  • كاتب الموضوع
أرى أنه لم تصل إليك المتطلبات بالشكل الصحيح ولذلك دعيني أقول لك أن كل ما يفعله ADF Security يمكن تنفيذه من خلال قاعدة البيانات على الوب وليس على Desktop إطلاقاً ولكن العكس غير صحيح



ارى انك بتاكد ان كل ما يفعله ال ADF Security Framework يمكن فعله من خلال الداتابيز اذا كان هذا صحيحا فلماذا لم ترد على اسئلتى السابقه اللى سالت فيها على اشياء يمكن فعلها من خلال ال ADF Security Framework ولا يمكن فعلها من خلال الداتابيز عموما هذه هى الاسئله اذا حبيت تجاوب عليها



ازاى تقدر تامن الابليكيشن موديول بتاعك وال Business Components اللى فيه باستخدام ال DataBase Authentication زى ما ال ADF Security عملت ؟؟

ازاى تقدر تعمل الDifferent Permissions على صفحه واحده بمعنى ان الكل يبقى شايف الصفحه دى بس درجه التحكم فى الصفحه وال Components اللى فيها بتختلف حسب المستخدم اللى عامل لوجين

موضوع ال anonymous Role بحيث انك تخلى صفحات معينه يقدر يشوفها الزائر ولا تتطلب منه عملية الدخول

اعتقد ان الاستفاده لازم تبقى متبادله بمعنى انك برضه تجاوب على اسئلتى عشان اقدر انا استفيد منها

عموما حجاوبك على سؤالك ده وان كنت بعيده اصلا عن سيناريو العمل من ناحية الجداول اللى فى الداتابيز عشان اقدر افيدك اكتر من كده

اولا حفترض ان فى جدول فى الداتابيز فيه اسماء المستخدمين والمناطق وال IP address بتاعتهم طبعا فيه فيو اوبجكت اساسى اسمه UserInfo بياخد اسم المستخدم اللى عمل لوجين وبيطلع كل بياناته الخاصه بيه وبعدين بتعمل فيو اوبجكت تانى مبنى على الانتيتى او الجدول بتاع المناطق بتاخد اتنين Bind Variables اللى هو اسم المستخدم وال IP address بتاعه وبتقوله لو طلع داتا معنى كده ان اليوزر ده تبع المنطقه دى ولو مطلعش يبقى مش تبعها ( طبعا اسماء المستخدمين فى ملف ال jazn_data.xml متوافقه مع اسمائهم او الاى دى بتاعهم فى جدول المناطق)

طبعا دى اول فكره تخطر على بالى بالطبع لو شوفت الداتابيز او متطلبات العمل حقدر اقول افكار اكثر

اخيرا كنت اتمنى الاستمرار فى هذه المناقشه المفيده ولكن نظرا لانشغالى الشديد هذه الايام وظروف عملى فمش حقدر استمر فيها لان ورانا شغل كتير ومثل تلك المناقشات تحتاج الى اوقات فراغ كبيره

ومن ناحية الاسئله اللى انا طرحتها وانت لسه مردتش عليها فبالطبع ليك مطلق الحريه فى ذلك وان كنت اجد ان الرد عليها حيكون مفيد جدا لجميع قارئى الموضوع :D

بتاريخ:

إن IP Address للمستخدم ليس موجوداً بشكل صريح في قاعدة البيانات حيث يتوافر فقط مدى IP Address لأن المستخدم قد يستخدم أي جهاز في المنطقة وبالتالي لا يمكن عمل Query خاصة أن ال IP Address يكون مخزناً على الصورة 192.168.1.1 إلى 192.168.1.100 مثلاً وبالتالي يجب المقارنة برمجياً.
وهذا يعتبر متطلب بسيط بالنسبة للمتطلبات الأخرى ويمكنك التفكير في هذه المشكلة.
بالنسبة لسؤالك فإننا نفعله بضغطة زر باستخدام أدواتنا وبشكل ديناميكي تماماً ، وما تعتقدين أنه صعب بقاعدة البيانات فبالعكس كل ما ذكرتيه وأكثر من ذلك نقوم بعمله لأن المتطلبات التي ذكرتيها هي أبسط المتطلبات ، وحالياً نحن نحضر فيديوهات مصورة صوت وصورة لتوضيح قوة أدواتنا وسيكون فيها جزء كبير للصلاحيات وعملية SSO بإذن الله.
عموماً عندما يكون لديك الوقت الكافي فيمكنك التفكير في المتطلب الذي ذكرته لك ويمكنني أن أعطي لك حوالي 20 متطلب مختلف للسرية بحيث تتصورين تعقيد عملية السرية وأنها ليست بالأسلوب المباشر الموجود في ADF Security

  • بعد 1 سنة...
بتاريخ:

تعريف الadf ومكوناته

  • بعد 4 أسابيع...
بتاريخ:

موضوع رائع 

ألف شكر

sooooooooooooooo thanks

بتاريخ:

ارجو مساعدتي :

بدأت بواجهة login ثم عند أضافة صفحة جديدة لعرض Departments  البيانات في ال ADF Form لا تظهر. أرجو شرح كيفية عرض البيانات الي جانب كيفية وضع ال security عليها. و شكرا.

  • بعد 1 سنة...
بتاريخ:

ياريت شرح البرنامج استاذه هاله و كتابه خطوات الشرح او فيديو 

وجزاكي الله خيرا

بتاريخ:

الاخت hala salim السلام عليكم ورحمه الله ، اولا: اشكرك واشكر كل من ساهم فى هذا المنتدى ونفع الامه.

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

 

بتاريخ:

يجب ألا تكتب امتداد الصفحة  (.jsf) في اللينك

  • بعد 4 شهور...
بتاريخ:

السلام عليكم موضوع جميل ..احتاج مساعده في موضوع الصلاحيات ع DataBase

انضم إلى المناقشة

يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.

زائر
أضف رد على هذا الموضوع...

برجاء الإنتباه

بإستخدامك للموقع فأنت تتعهد بالموافقة على هذه البنود: سياسة الخصوصية

Account

Navigation

البحث

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

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.