خدمة المصادقة والتفويض في جافا

خدمة المصادقة والتفويض في جافا ( JAAS) ، والتي تُنطق "جاز"، [ 1 ] هي تطبيق جافا لإطار عمل أمان المعلومات القياسي لوحدة المصادقة القابلة للتوصيل (PAM) . [ 2 ] تم تقديم JAAS كمكتبة إضافية لمنصة جافا، الإصدار القياسي 1.3، وتم دمجها في الإصدار 1.4. [ 1 ]

يهدف نظام JAAS بشكل أساسي إلى فصل مهام مصادقة المستخدم بحيث يمكن إدارتها بشكل مستقل. فبينما كانت آلية المصادقة السابقة تتضمن معلومات حول مصدر الكود ومن قام بتوقيعه، يضيف JAAS مؤشرًا حول من يقوم بتشغيل الكود. ومن خلال توسيع نطاق التحقق، يعزز JAAS بنية الأمان لتطبيقات Java التي تتطلب وحدات المصادقة والترخيص .

إدارة

بالنسبة لمسؤول النظام ، يتكون JAAS من نوعين من ملفات التكوين :

  • *.login.conf: يحدد كيفية دمج وحدات تسجيل الدخول التي يوفرها المورد في تطبيقات معينة
  • *.policy: يحدد أي الهويات (المستخدمين أو البرامج) يتم منحها أي الأذونات

على سبيل المثال، قد يحتوي أحد التطبيقات على ملف login.conf الذي يشير إلى كيفية تشغيل آليات المصادقة المختلفة لمصادقة المستخدم:

 تطبيق متجر الحيوانات الأليفة { com.sun.security.auth.module.LdapLoginModule كافٍ؛ com.foo.SmartcardLoginModule مطلوب؛ com.sun.security.auth.module.UnixLoginModule required debug=true; }

واجهة التطبيق

بالنسبة لمطور التطبيقات، تُعد JAAS مكتبة قياسية توفر ما يلي:

تكامل نظام الأمان

توفر JAAS واجهات لمكامل أنظمة الأمن:

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

وحدات تسجيل الدخول

تُعنى وحدات تسجيل الدخول بشكل أساسي بالمصادقة لا بالتفويض، وهي تُشكّل مكونًا شائع الاستخدام في JAAS. [ 3 ] يلزم وجود وحدة تسجيل دخول لتنفيذ javax.security.auth.spi.LoginModuleالواجهة، التي تُحدد الطرق التالية:

ملاحظة: A Subjectهو المستخدم الذي يحاول تسجيل الدخول.

  • التهيئة: رمز لتهيئة وحدة تسجيل الدخول، عادةً عن طريق تخزين المعلمات التي تم تمريرها في الحقول المناسبة من Class.
  • تسجيل الدخول: يتم التحقق من بيانات الاعتماد المُقدمة عبر واجهة Objectبرمجة التطبيقات javax.security.auth.Callback(مثل التحقق من قاعدة البيانات). قد تطلب هذه الطريقة من المستخدم إدخال اسم المستخدم وكلمة المرور، أو قد تستخدم البيانات التي تم الحصول عليها مسبقًا. في حال إدخال بيانات اعتماد غير صالحة، javax.security.auth.login.FailedLoginExceptionيجب طرح استثناء (بدلاً من إرجاع القيمة false، التي تشير إلى تجاهل وحدة تسجيل الدخول هذه، مما قد يسمح بنجاح عملية المصادقة).
  • تأكيد: تم التحقق من هوية المستخدم، لذا يقوم الكود في هذه الطريقة بإعداد الأدوار Principalوالصلاحيات Groupsللمستخدم الذي تم التحقق من هويته بنجاح. يجب كتابة هذه الطريقة بعناية في تطبيقات المؤسسات، حيث تتوقع خوادم تطبيقات Java EE غالبًا أن تكون العلاقات بين Principalالكائنات Groupمُهيأة بطريقة معينة. يجب أن تُصدر هذه الطريقة استثناءً javax.security.auth.login.FailedLoginExceptionفي حال فشل المصادقة (على سبيل المثال، إذا أدخل المستخدم اسم مستخدم أو كلمة مرور غير صحيحة).
  • إجهاض: يتم استدعاؤه في حال فشل عملية المصادقة نفسها. إذا أعادت هذه الطريقة القيمة خطأ، فسيتم تجاهل وحدة تسجيل الدخول هذه.
  • تسجيل الخروج: الكود الذي يجب تنفيذه عند تسجيل الخروج (على سبيل المثال، يمكن إزالة Principalمن Subjectأو يمكن إبطال جلسة الويب).

يمكن لوحدات تسجيل الدخول توفير تسجيل دخول موحد (SSO) عبر بروتوكول/إطار عمل SSO معين (مثل SAML و OpenID و SPNEGO )، ويمكنها التحقق من وجود رموز أمان الأجهزة (مثل رمز USB)، وما إلى ذلك. في تطبيق متعدد الطبقات، LoginModulesيمكن أن يكون موجودًا على كل من جانب العميل وجانب الخادم.

وحدة تسجيل الدخول ( javax.security.auth.spi.LoginModule)

تُكتب وحدات تسجيل الدخول بتطبيق هذه الواجهة؛ فهي تحتوي على الشيفرة البرمجية الفعلية للمصادقة. ويمكنها استخدام آليات متنوعة للتحقق من بيانات اعتماد المستخدم. ويمكن للشيفرة استرجاع كلمة المرور من قاعدة البيانات ومقارنتها بكلمة المرور المُدخلة إلى الوحدة.

LoginContext ( javax.security.auth.login.LoginContext)

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

موضوع ( javax.security.auth.Subject)

يمثل الموضوع مستخدمًا واحدًا أو كيانًا أو نظامًا - بمعنى آخر، عميلًا - يطلب المصادقة.

رئيسي ( java.security.Principal)

يمثل المبدأ وجه الموضوع، فهو يجسد سماته أو خصائصه. ويمكن أن يحتوي الموضوع على عدة مبادئ.

أوراق اعتماد

بيانات الاعتماد ليست سوى معلومات تتعلق بالجهة المعنية. قد تكون أرقام حسابات، أو كلمات مرور، أو شهادات، وما إلى ذلك. ولأن بيانات الاعتماد تمثل معلومات هامة، فإن واجهات برمجة التطبيقات الإضافية قد تكون مفيدة لإنشاء بيانات اعتماد سليمة وآمنة javax.security.auth.Destroyable. javax.security.auth.Refreshableلنفترض أنه بعد التحقق الناجح من هوية المستخدم، يتم تزويد الجهة المعنية بمعرف سري (على شكل بيانات اعتماد) يمكّنها من تنفيذ بعض الخدمات الحيوية، ولكن يجب إزالة بيانات الاعتماد بعد فترة زمنية محددة. في هذه الحالة، قد يكون من المفيد تطبيق واجهة برمجة التطبيقات Destroyable. Refreshableقد تكون هذه الواجهة مفيدة إذا كانت بيانات الاعتماد صالحة لفترة زمنية محدودة.

انظر أيضاً

مراجع

  1. 1 2 ثيودور ج. شريدر؛ بروس أ. ريتش؛ أنتوني ج. نادالين (2000). جافا وأمن الإنترنت . iUniverse. ص.  152. ردمك 9780595135004.
  2. "دليل مرجعي لخدمة المصادقة والتفويض في جافا (JAAS)" . oracle.com . شركة أوراكل . مؤرشف من الأصل في 6 يونيو 2012. تم الاطلاع عليه في 22 مايو 2012 .
  3. ^ بهاتاشارجي ، راهول (أبريل 2008). "برنامج JAS التعليمي" . javaranch.com . 7 (1).