Securitate |
|
|
![]() |
|
Configurare şi rulare | Note tehnice | Javadoc | Construire cu Ant |
Localizarea codului sursă |
O introducere în JAAS |
Examinarea notelor despre codare |
Examinarea setărilor de securitate necesare |
Localizaţi codul sursă în
Utilizatorii z/OS: Codul sursă pentru exemple nu este furnizat pe platforma z/OS, deoarece aplicaţiile exemplu nu sunt construite pe platforma z/OS.
Java Authentication and Authorization Service (JAAS) este o metodă de securitate. Autentificarea este identificarea unei entităţi. Autorizarea este procesul prin care se verifică dacă un utilizator are acces la resurse sau informaţii protejate şi se realizează numai o autentificare realizată cu succes. JAAS face parte din Specificaţia J2EE 1.3. WebSphere Application Server suportă JAAS şi integrează JAAS în cadrul său de lucru general pentru securitate.
Clasele şi interfeţele JAAS cheie sunt:
Pentru programare şi utilizare în JAAS, consultaţi specificaţia pe situl Web IBM developerWorks şi derulaţi în jos pentru a găsi documentaţia JAAS corespunzătoare platformei dumneavoastră. Consultaţi fişierul login.html din fişierul JaasDocs.jar pentru detalii privind dezvoltarea modulelor de logare JAAS.
Pentru informaţii detaliate privind dezvoltarea JAAS pentru WebSphere Application Server, consultaţi
Centrul de
informare WebSphere Application Server. Faceţi clic pe
Securitate > Dezvoltarea aplicaţiilor securizate >
Dezvoltarea cu Java Authentication and Authorization Service pentru
logare programatică.
Exemplul JAAS Login demonstrează cum se utilizează pe partea de server standardul Java Authentication and Authorization Service (JAAS) şi extensiile JAAS pentru ca WebSphere Application Server să autentifice un utilizator real pentru runtime-ul de securitate WebSphere Application Server. Sunt încorporate următoarele tehnologii:
Exemplul JAAS Login face parte din pachetul TechnologySamples.ear. Exemplul conţine un modul Web (JAASLoginWeb.war) şi un modul Enterprise JavaBeans (EJB) (JAASLoginEJB.jar).
Clasa SampleBean este un bean enterprise sesiune fără menţinere de stare care constă din fişierele SampleBean.java, SampleBeanHome.java şi SampleBeanBean.java. Această clasă invocă metoda getCallerPrincipal furnizată şi returnează identitatea de securitate a apelantului bean-ului enterprise.
Fişierul JAASLoginServlet.java citeşte ID-ul de utilizator şi parola din cerere, apoi realizează serviciul JAAS pe partea de server. Rularea exemplului implică paşii următori:
- Creaţi un context de logare.
- Transmiteţi numele unei intrări din fişierul configuraţiei logării JAAS către constructorul LoginContext.
Pentru WebSphere Application Server, exemplul utilizează configuraţia de logare JAAS implicită, WSLogin. Puteţi găsi această configuraţie predefinită în pagina de consolă administrativă. Faceţi clic pe Securitate > Configuraţie JAAS > Configuraţie logare aplicaţie. Fişierul local cu configuraţia de logare JAAS pentru serverul de aplicaţii este setat în fişierul rădăcină_profil/properties/wsjass.conf sau wsjass_client.conf.- Transmiteţi o instanţă callback handler WebSphere Application Server, com.ibm.websphere.security.auth.callback.WSCallbackHandlerImpl, către constructorul LoginContext, pentru strângerea sau procesarea datelor de autentificare.
- Realizaţi autentificarea prin apelarea metodei de logare a contextului de logare.
Dacă logarea eşuează şi apare o eroare LoginException, puteţi utiliza o metodă determineCause pentru a găsi cauza rădăcină a excepţiei.
Subiectul autentificat cu configuraţia de logare JAAS conţine un com.ibm.websphere.security.auth.WSPrincipal şi un com.ibm.websphere.security.auth.WSCredential. Dacă subiectul autentificat este transmis în metoda com.ibm.websphere.security.auth.WSSubject.doAS sau alte metode doAs, runtime-ul de securitate poate realiza verificările de autorizare pentru resursele J2EE pe baza subiectului.
- Dacă logarea reuşeşte, creaţi o instanţă a clasei care implementează interfaţa java.security.PrivilegedExceptionAction şi transmiteţi-o metodei com.ibm.websphere.security.auth.WSSubject.doAs. Clasa care implementează PrivilegedExceptionAction conţine codul care realizează accesul EJB.
- Realizaţi o delogare.
Examinaţi exemplul următor:
try { // creare context login folosind WebSphere Application Server // callback handler wscbh = new WSCallbackHandlerImpl(username, password); lc = new javax.security.auth.login.LoginContext("WSLogin", wscbh); } catch (LoginException le) { ....... } ...... try { // perform login lc.login(); } catch (LoginException le) { ...... } // obţinere obiect autentificat javax.security.auth.Subject userSubject = lc.getSubject(); ...... // apelare o resursă J2EE folosind subiectul autentificat; // extragere informaţii de identificare secuuritate despre // apelantul benului enterprise. ejbMessage = (String)com.ibm.websphere.security.auth.WSSubject .doAs(userSubject, new java.security.PrivilegedExceptionAction() {.....}); ...... try { lc.logout(); } catch (LoginException le) { ...... }
Exemplul necesită să definiţi resursele EJB securizate. Când instalaţi exemplul, toate setările de
securitate sunt deja configurate. Puteţi să utilizaţi RAD (Rational Application Developer) pentru
a configura setările de securitate pentru acest exemplu. Paşii următori vă arată cum sunt definite în
RAD setările de securitate necesare:
grant codeBase "file:JAASLoginWeb.war" { permission javax.security.auth.AuthPermission "createLoginContext"; permission javax.security.auth.AuthPermission "doAs"; }; grant codeBase "file:JAASLoginEJB.jar" { permission java.security.SecurityPermission "printIdentity"; }; |
Setările de securitate necesare pentru acest exemplu sunt acum definite. Pentru informaţii suplimentare privind securitatea WebSphere Application Server, consultaţi Centrul de informare WebSphere Application Server.