Java Authorization Contract for Containers

A Wikipédiából, a szabad enciklopédiából

A Java Authorization Contract for Containers (angol rövidítéssel Java ACC) specifikáció egy megállapodást definiál a Java EE alkalmazásszerver és egy autorizációs házirend szolgáltató között. Minden Java EE konténer támogatja ezt a megállapodást.

Áttekintés[szerkesztés]

A Java ACC specifikáció (JSR-115) új java.security.Permission osztályokat definiál, melyek megfelelnek a Java 2 Platform, Enterprise Edition (J2EE) autorizációs modellnek. A Java ACC specifikáció definiálja a konténer hozzáférhetőségi döntések kötését az ezen engedély osztályok példányainak operandusaihoz. Definiálja a házirend(policy) szolgáltatók szemantikáját, akik alkalmazzák az új engedély osztályokat, hogy teljesítsék a J2EE autorizációs követelményeit, köztük a következőket (beleértve a szerepek létrehozását és használatát):

  • Szerepek definiálása, mint engedélyek nevezett kollekciója
  • Szerepeknek megfelelő engedélyek megadása a megbízónak
  • Annak meghatározása hogy egy megbízó megkapta-e egy szerephez tartozó engedélyt
  • Az azonosítók definíciója a szerep leképezésekhez, mely összeköti az applikációbeli azonosítókat az applikáció hatáskörű szerep nevekhez

Részletek[szerkesztés]

A JACC része a Java EE specifikációnak és egy szerep alapú modell segítségével definiál egy módszert a szervletek és az ejb konténerek számára a web erőforrások és konténerek biztosításához. A Java EE konténerek a kliens azonossága alapján szűkítik a kliens hozzáférést az ott definiált erőforrásokra és szolgáltatásokra.

JACC megállapodások ezt a funkcionalitást erősítik szerepek definiálásával, melyek engedélyek kollekciója és a java.security.Permission osztály alosztályai. Továbbá JACC megállapodások a konténerek számára biztosítanak egy eszközt hozzáférérési döntések meghozatalára ezen engedélyekkel dolgozva, valamint definiál egy mechanizmust mellyel autorizáció szolgáltatók telepítve és konfigurálva lesznek a konténerek általi használathoz.

JACC megállapodások a következő előnyöket biztosítják:

  • A biztonsági, adminisztrációt és döntéshozatal felelősségét áthelyezi a konténertől a biztonsági szolgáltatóhoz
  • Elérhetővé teszi egy közös házirend használatát különböző biztonsági rendszerek között
  • Külső autorizációs szolgáltatók számára lehetővé teszi hogy bekapcsolódjanak az alkalmazás szerverekbe szabványos interfészeken keresztül a házirendek konfigurálásához és hozzáférhetőségi döntések meghozatalához.
  • segítségével konténereket integrálni a Java EE rendszer integrátorok meglévő autorizációs házirend infrastruktúrájába
  • Lehetővé teszi a fejlesztők számára, hogy használják a Java EE standard biztonsági infrastruktúráját, de a biztonságot adó szolgáltatók transzparensen csatolhatók legyenek a Java EE alkalmazásszerverükbe.

Korábbi definíciók problémáit orvosolja:

  • Minden hozzáférhetőségi döntést az alkalmazás szerver hozott, kivéve ha szabadalmazott interfészeket használnak külső pluginekhez
  • Nem volt szabvány az alkalmazás szerverek és az autorizációs szolgáltatók integrálására. Nem volt szabványos reprezentálása az alkalmazás biztonsági házirendjeinek (szerepkörök, erőforrások, erőforrások - szerepek leképezés) és nem volt szabványos interfész a hozzáférhetőségi döntésekhez (deklaratív vagy programbeli)

A Java ACC specifikáció definiálja a konténerek használatához az autorizáció szolgáltatók telepítését és konfigurálását oly módon hogy a konténerek engedélyezési döntéshozatalában használatra kerülnek. A specifikáció definiálja azon interfészeket melyeket a szolgáltatónak elérhetővé kell tennie, hogy a konténer telepítő eszközök számára lehetővé tegye a szerepeknek megfelelő engedély kollekciók készítését és menedzselését.

Megállapodás részei[szerkesztés]

Egy megállapodás három részre oszlik:

  • A szolgáltató konfigurációs megállapodása
  • A házirend konfigurációs megállapodása
  • A házirend döntő és végrehajtó megállapodása

Szolgáltató konfigurációs megállapodása[szerkesztés]

A szolgáltató konfigurációs megállapodása definiálja a szolgáltatókkal és konténerekkel szembeni elvárásokat oly módon, hogy házirend szolgáltatók integrálhatóak legyenek a konténerekkel.

A házirend konfigurációs megállapodása[szerkesztés]

A házirend konfigurációs megállapodása definiálja a konténerek telepítő eszközök és szolgáltatók közti interakciókat oly módon, hogy támogassa a deklaratív Java EE autorizációs házirend fordítását a Java SE házirend szolgáltatóbeli házirend állításokra.

A házirend döntő és végrehajtó megállapodása[szerkesztés]

A házirend döntő és végrehajtó megállapodása definiálja az interakciókat konténer házirend végrehajtó pontok és a szolgáltatók között, akik a Java EE konténerek által igényelt házirend döntéseket implementálják.

Verziótörténet[szerkesztés]

A JACC a Java EE része és az 1.4-es verzió óta együtt jelennek meg. Íme az összefüggés a két specifikáció között:

  • J2EE 1.4 (2003. november 11.) - JACC 1.0
  • Java EE 5 (2006. május 11.) - JACC 1.1
  • Java EE 6 (2009. december 10.) - JACC 1.4
  • Java EE 7 (2013. június 12.) - JACC 1.5

További információk[szerkesztés]