|
Ez a szócikk vagy szakasz lektorálásra, tartalmi javításokra szorul. A felmerült kifogásokat a szócikk vitalapja részletezi (vagy extrém esetben a szócikk szövegében elhelyezett, kikommentelt szövegrészek). Ha nincs indoklás a vitalapon (vagy szerkesztési módban a szövegközben), bátran távolítsd el a sablont! Csak akkor tedd a lap tetejére ezt a sablont, ha az egész cikk megszövegezése hibás. Ha nem, az adott szakaszba tedd, így segítve a lektorok munkáját! |
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
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
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
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
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
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
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
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