Java autentifikatsiya va avtorizatsiya xizmati - Java Authentication and Authorization Service

Java autentifikatsiya va avtorizatsiya xizmati, yoki JAAS, "Jazz" deb talaffuz qilingan,[1] bo'ladi Java standartni amalga oshirish Tarmoqqa ulanadigan autentifikatsiya moduli (PAM) axborot xavfsizligi ramka.[2]JAAS kengaytirilgan kutubxona sifatida taqdim etildi Java platformasi, Standard Edition 1.3 va 1.4 versiyasida birlashtirilgan.[1]

JAAS o'zining asosiy maqsadi tashvishlarni ajratish mustaqil ravishda boshqarilishi uchun foydalanuvchi autentifikatsiyasi. Avvalgi esa autentifikatsiya mexanizmda kod qaerdan kelib chiqqanligi va ushbu kodni kim imzolaganligi to'g'risida ma'lumotlar mavjud edi, JAAS kodni kim boshqarishi to'g'risida marker qo'shadi. Tasdiqlash vektorlarini kengaytirish orqali JAAS autentifikatsiya qilishni talab qiladigan va Java dasturlari uchun xavfsizlik arxitekturasini kengaytiradi ruxsat modullar.

Ma'muriyat

Uchun tizim ma'muri, JAAS ikki turdan iborat konfiguratsiya fayli:

  • * .login.conf: sotuvchiga qanday ulanishni belgilaydi tizimga kirish modullarni ma'lum dasturlarga kiritish
  • * .siyosiy: qaysi shaxslarga (foydalanuvchilarga yoki dasturlarga) qaysi ruxsat berilganligini belgilaydi

Masalan, dasturda shunday bo'lishi mumkin login.conf foydalanuvchini tasdiqlash uchun har xil autentifikatsiya mexanizmlarini qanday ishlashini ko'rsatadigan fayl:

   PetShopApplication {com.sun.security.auth.module.LdapLoginModule etarli; com.foo.SmartcardLoginModule zarurligi; com.sun.security.auth.module.UnixLoginModule zarur debug = true; }

Ilova interfeysi

Ilovani ishlab chiquvchi uchun JAAS standart kutubxonadir:

  • identifikatsiya vakili (Asosiy ) va hisobga olish ma'lumotlari to'plami (Mavzu )
  • a tizimga kirish arizangizni chaqiradigan xizmat qo'ng'iroqlar foydalanuvchidan foydalanuvchi nomi va kabi narsalarni so'rash parol. Bu yangisini qaytaradi Mavzu
  • ma'mur tomonidan Mavzuga ruxsat berilganligini tekshiradigan xizmat.

Xavfsizlik tizimining integratsiyasi

Xavfsizlik tizimi integratori uchun JAAS interfeyslarni taqdim etadi:

  • dasturlarga o'zingizning shaxsiy ismingizni taqdim etish uchun
  • hisob ma'lumotlarini iplarga biriktirish uchun (Mavzu)
  • rivojlanish uchun tizimga kirish modullar. Sizning modulingiz chaqiradi qo'ng'iroqlar foydalanuvchini so'roq qilish, ularning javobini tekshiradi va hosil qiladi Mavzu.

Kirish modullari

Kirish modullari birinchi navbatda avtorizatsiya emas, balki autentifikatsiya bilan bog'liq va JAASning keng qo'llaniladigan komponentini tashkil qiladi. Amalga oshirish uchun kirish moduli talab qilinadi javax.security.auth.spi.LoginModule quyidagi usullarni belgilaydigan interfeys:

Izoh: A Mavzu tizimga kirishga urinayotgan foydalanuvchi.

  • boshlash: Kirish modulini ishga tushirish uchun kod, odatda tegishli maydonlarga o'tgan parametrlarni saqlash orqali Sinf.
  • tizimga kirish: An orqali berilgan ishonch yorliqlarini tekshiring Ob'ekt amalga oshiradigan javax.security.auth.Callback interfeysi (masalan, ma'lumotlar bazasini tekshiring). Ushbu usul foydalanuvchidan login va parolni so'rashi yoki ilgari olingan ma'lumotlarni ishlatishi mumkin. Shuni ta'kidlash kerakki, agar yaroqsiz ma'lumotlar taqdim etilsa, u holda a javax.security.auth.login.FailedLoginException tashlanishi kerak (yolg'onni qaytarishdan ko'ra, bu kirish modulini e'tiborsiz qoldirish kerakligini bildiradi, bu esa autentifikatsiyani muvaffaqiyatli bajarishga imkon beradi).
  • majburiyat: Mavzu identifikatori tasdiqlangan, shuning uchun ushbu usuldagi kod Asosiy va Guruhlar muvaffaqiyatli tasdiqlangan mavzu uchun (rollar). Ushbu usul korporativ dasturlarda ehtiyotkorlik bilan yozilishi kerak, chunki Java EE dastur serverlari ko'pincha o'rtasidagi munosabatlarni kutishadi Asosiy va Guruh ma'lum bir tarzda o'rnatilishi kerak bo'lgan ob'ektlar. Ushbu usul a ni tashlashi kerak javax.security.auth.login.FailedLoginException agar autentifikatsiya bajarilmasa (masalan, foydalanuvchi noto'g'ri kirish yoki parolni ko'rsatgan bo'lsa).
  • bekor qilish: Agar autentifikatsiya jarayonining o'zi bajarilmasa, chaqiriladi. Agar bu usul "false" qiymatini qaytarsa, bu Kirish Moduli e'tiborga olinmaydi.
  • chiqish: Chiqish paytida bajarilishi kerak bo'lgan kod (masalan, o'chirib tashlashi mumkin Asosiy dan Mavzu yoki veb-sessiyani bekor qilishi mumkin).

Kirish modullari ma'lum bir SSO protokoli / ramkasi (masalan, kirish) (SSO) bilan ta'minlanishi mumkin. SAML, OpenID va SPNEGO ), qo'shimcha xavfsizlik belgilarining mavjudligini tekshirishi mumkin (masalan, USB token) va boshqalar. N-darajali dasturda, Kirish modullari mijoz tomonida ham, server tomonida ham bo'lishi mumkin.

LoginModule (javax.security.auth.spi.LoginModule)

Kirish modullari ushbu interfeysni amalga oshirish orqali yoziladi; ular autentifikatsiya qilish uchun haqiqiy kodni o'z ichiga oladi. U foydalanuvchi ma'lumotlarini tasdiqlash uchun turli xil mexanizmlardan foydalanishi mumkin. Kod ma'lumotlar bazasidan parolni olishi va uni modulga berilgan parol bilan taqqoslashi mumkin.

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

Kirish konteksti JAAS ramkasining asosiy qismidir, u sub'ekt yaratish orqali autentifikatsiya jarayonini boshlaydi. Autentifikatsiya jarayoni davom etar ekan, mavzu turli xil printsiplar va keyingi ishlov berish uchun ishonch yorliqlari bilan to'ldiriladi.

Mavzu (javax.security.auth.Subject)

Sub'ekt autentifikatsiya qilishni talab qiladigan bitta foydalanuvchi, shaxs yoki tizimni anglatadi, boshqacha qilib aytganda, mijoz.

Asosiy (java.security.Principal)

Direktor mavzuning yuzini anglatadi. U mavzuning xususiyatlarini yoki xususiyatlarini qamrab oladi. Mavzu bir nechta direktorlardan iborat bo'lishi mumkin.

Ishonch yorliqlari

Ishonch yorliqlari ko'rib chiqilayotgan mavzuga oid ma'lumotlardan boshqa narsa emas. Ular hisob raqamlari, parollar, sertifikatlar va boshqalar bo'lishi mumkin. Ma'lumotlar ma'lumotlari muhim ma'lumotlarni ifodalaganligi sababli, boshqa interfeyslar to'g'ri va ishonchli hisob ma'lumotlarini yaratish uchun foydali bo'lishi mumkin - javax.security.auth.Destroyable va javax.security.auth.Refreshable. Foydalanuvchining muvaffaqiyatli autentifikatsiyasidan so'ng siz mavzuni ba'zi muhim xizmatlarni bajarishi mumkin bo'lgan maxfiy identifikatorni (hisobga olish ma'lumotlari ko'rinishida) to'ldirasiz, lekin ma'lum vaqtdan keyin hisobga olish ma'lumotlarini olib tashlash kerak deb taxmin qiling. Bunday holda, birini amalga oshirishni xohlashi mumkin Yo'q qilish mumkin interfeys. Qayta tiklanadigan ishonch yorlig'i faqat amal qilish muddati cheklangan bo'lsa foydali bo'lishi mumkin.

Shuningdek qarang

Adabiyotlar

  1. ^ a b Teodor J. Shrader; Bryus A. Boy; Entoni J. Nadalin. Java va Internet xavfsizligi. p. 152.
  2. ^ "Java autentifikatsiya va avtorizatsiya xizmati (JAAS) ma'lumotnomasi". oracle.com. Oracle korporatsiyasi. Arxivlandi asl nusxasi 2012 yil 26 sentyabrda. Olingan 22 may 2012.

Tashqi havolalar