Kiel sekurigi araneaĵan aplikon uzanta JAAS?

JAAS

JAAS

Superrigardo: Sekureco estas unu el la ĉefaj flankoj en araneaĵaj aplikoj. Do la sukceso de araneaĵa apliko dependas sur la sekureca efektivigo ankaŭ. Kaj por misio kritikaj aplikoj, Sekureca flanko devas esti efektivigita kaj elprovita antaŭ ol ĝi iras en produktado. Pli fruaj tagoj, Sekurecaj flankoj estis simplaj sufiĉa kaj ellaborantoj kodas ilin sekvanta simplajn regulojn kaj validumadojn. Sed nuntempe pli da prizorgo devas esti prenita fari ĝin sekura apliko. En ĉi tiu artikolo ni diskutos malsamajn sekurecajn flankojn kaj iliajn efektivigajn detalojn.








Enkonduko: Java authentication kaj rajtiga servo (JAAS) Estas revolucio en sekureca domajno. Tio ĉi estas ĝenerale akceptita en ĉiuj java kaj J2EE entreprenaj aplikoj. JAAS estas resume java bazita authentication kaj rajtiga API. La API malkovras aron de fasadoj kaj konfiguracio por aplika uzo. Uzanta ĉi tiujn ĉefaĵojn, Ajna araneaĵa apliko povas esti sekurigita kaj fara produktado preta. Sed la uzo de JAAS aŭ ajna laŭmenda kapsulo dependas al la aplika postulo.

Priskribo: Antaŭ ol ni diskutas la detalojn, Ni devas scii pri la ujoj. Ujo povas esti difinita kiel medio (Softvara medio) En kiu aplikaj kuroj. Krom kuranta aplikojn, Ujo ankaŭ havas malsaman aliaj funkcioj sed ni diskutos tiujn en aparta artikolo. La termina ‘ujo’ Estas sinonima kun J2EE aplika servilo. Ĝi estas ankaŭ scii kiel J2EE ujo. Do la sekvanta demando estas, Kial ni devas ujo? Resume ujo provizas ĉiuj necesaj servoj postulita kuri la aplikon smoothly kaj funkcio konvene. Estas nombro de J2EE ujoj havebla en la merkato kaj ili provizas malsamajn nivelojn de subteno. Sed la ujo devas sekvi la J2EE specifo, Povas esti parte aŭ tute. Kiel tomcat estas araneaĵa ujo, Kiu nur efektivigas la servlet parto de la J2EE specifo. Kie kiel weblogic, Websphere, JBoss estas kompleta aplika servilo kiel ili sekvis la kompletan J2EE specifo.

Aplika Sekureco: En ĉi tiu artikolo ni plejparte koncentros sur aplika sekureco. Antaŭ ol ni movas antaŭen, Ni devus havi klaran komprenon pri la aplika sekureco. Aplika sekureco povas esti difinita kiel sekureca mekanismo efektivigita de la apliko ĝi mem fari ĝin sekura. La apliko ankaŭ povas preni la helpon de kadro aŭ aplika servilo ĉefaĵoj efektivigi ĝin sukcese. Post kiam efektiviganta la sekureco la apliko fariĝas sekura de ĝiaj uzantoj. Se ni konsideras de aplika perspektivo, Tiam ĝi estas la respondeco de la ellaboranto sekvi konvenajn paŝojn kaj decidi sur la sekurecaj efektivigaj detaloj. Estas multaj aliaj tipoj de sekurecaj efektivigoj ankaŭ kiel reta sekureco, JVMa sekureco, Aplika servilo sekureco kaj multaj pli. Sed nia amplekso de diskuto estas limigita al aplika sekureco flanko nur. Nia fokuso en ĉi tiu diskuto estos specife sur J2EE sekurecaj ĉefaĵoj kaj ĝiaj uzantoj. La aliro, authentication kaj rajtigo estos parto de aplika sekureco efektivigo. La java ĉefaĵa JAAS prizorgos de ĉiuj ĉi tiuj aferoj.

Aplika Sekureco Funkcioj: Kiel ni estas diskutantaj la aplikan sekurecon, Ni unue prenos rigardi la sekvantan kvin ĉefaj funkcioj kiu estas ĝenerale konsiderita dum la efektivigo.

  • Authentication (Uzita aŭtentikigi la uzanton)
  • Rajtigo (Kontroli kion ensalutis uzanton povas fari)
  • Registriĝo (Registri novan uzanton)
  • Konta daŭrigado (Kiu inkluzivas kreanta, Ĝisdatiganta ktp)
  • Konto forigas aŭ inactivate (Tio ĉi estas por uzanta forigo)

En ĝenerala ĉiuj aplikoj ne sekvas ĉiuj la supraj punktoj. Ili povus efektivigi sub aro de la funkcia OR ili povus elekti kelkaj de ili kiel por ilia bezono. Sed ĉi tiuj estas la bazaj fundamentaj funkcioj kiu devas esti konsiderita dum aplika sekureco efektivigo.

JAAS Authentication: Java Authentication kaj Rajtiga Servo (JAAS) Estas norma kadro por aŭtentikiganta ajnajn uzantojn de ajna apliko. La apliko povas esti entreprena apliko, araneaĵa apliko aŭ ajna aŭtonoma apliko. La plej grava parto estas la konfiguracio registras uzita en JAASa kadro. La konfiguracia dosiero specifas la efektivigon de aro de normaj fasadoj kaj ĉi tiuj estas vokita aŭtentikigi la uzanton. En JAASa kadro, La credential konscio kaj ĝia authentication okazas en la efektivigo de tiuj normaj JAASaj fasadoj. Ĝi inkluzivas la sekvantajn fasadojn.

  • Callback fasado
  • CallbackHandler
  • LoginModule

La funkcioj de Callback fasadoj estas repreni la uzanton credentials kaj la funkcio de LoginModule estas konfirmi credentials de uzanto kaj permesi ĝin al ensaluta aŭ redirekti al ensaluta nesukcesa mesaĝo paĝo.

La efektivigo de JAAS estas malsama por aŭtonoma kaj aliaj aplikoj. En tipa aŭtonoma apliko, La Callback prizorganta fasado reprenas la credentials kaj LoginModule fasado aŭtentikigas la credentials. Kaj la uzantaj detaloj estas ĝenerale entenita en persista vendejo kiel datumaro, loka dosiera sistemo aŭ LDAPa adresaro. Sed kiam la apliko estas deplojiĝita en ujo tiam la mekanismo estas iom malsama. La JAASa kadro devas komuniki kun la ujo akiri ĝiajn servojn rilatita al authentication kaj rajtigo. La JAAS LoginModule estas skribita kun la uzo de ujo specifa APIs. La ujo specifa APIs estas priresponda por aŭtentikigi credentials. La ujo specifa APIs elfaras la sekvantan du taskoj

  • Credential Konscio
  • Credential Authentication

La JAASa kadro komunikas kun la ujo specifa APIs kun ununura metoda voko kaj pasas la uzantajn detalojn. Post kiam kiu la ripozo de la laboro estas elfarita de la ujo. Sed ĉi tiu efektivigo varias de unu ujo al alia.

Ni devas kompreni tiun JAAS estas kadro kiu subtenas authentication kaj rajtigan mekanismon. Estas multo de aliaj kadroj kiu faras tion ĉi aŭtomate. Sed en JAAS, La ellaboranto devas skribi ujon specifa kodo voki ujon APIs. Do la laŭmenda JAASa kodo devas esti skribita efektivigi authentication kaj rajtigan procezon. Nuntempe kelkaj ujoj havas JAASan efektivigon subteno kaj ĝi estas konstruita en. Sed ankoraŭ la ellaboranto devas skribi kodon efektivigi JAAS tute.








En la sekvanta ekzemplo ni vidos norman JAASan ujon authentication. La CallbackHandler pritraktas la uzantan enigon kaj tiam la anso () Metodo elfaras la realan taskon.

Listing1: Ekzempla kodo montranta la efektivigon

[Kodo]

Prezenti com.Techalpine.Jaas;

Importi java.Io.IOException;

Importi javax.Sekureco.Auth.Callback.UnsupportedCallbackException;

Importi javax.Sekureco.Auth.Callback.Callback;

Importi javax.Sekureco.Auth.Callback.CallbackHandler;

Publika klaso TACallbackHandler efektivigas CallbackHandler

{

// Difini bazajn uzantajn detalojn kiel uzanta nomo kaj pasvorto

Privata Ŝnuro uname;

Privata Ŝnuro pwd;

// Voki constructor kun uzanta nomo kaj pasvorto

Publika TACallbackHandler(Laĉi uname, Laĉi pwd)

{

Tio ĉi.Uname = uname;

Tio ĉi.Pwd = pwd;

}

// Ĉi tiu metodo estas uzita elfari la realan taskon

Publika malplena anso(Callback[] Callbacks) Ĵetas IOException,

UnsupportedCallbackException

{

// Skribi aplikon sepcific efektiviga kodo

}

// Getter metodo akiri uzantan nomon

Publika Ŝnuro getUname()

{

Revena uname;

}

// Getter metodo akiri pasvorton

Publika Ŝnuro getPword()

{

Revena pwd;

}

}

En la sekvanta ekzemplo ni rigardos en la ensaluta kapsulo kaj ĝia efektivigo

Listing2: Provi montranta ensalutan kapsulon

Prezenti com.Techalpine.Jaas;

Importi java.Util.Mapo;

Importi javax.Sekureco.Auth.Temo;

Importi javax.Sekureco.Auth.Ensaluto.LoginException;

Importi javax.Sekureco.Auth.Callback.CallbackHandler;

Importi javax.Sekureco.Auth.Spi.LoginModule;

Publika klaso TALLoginModule efektivigas LoginModule {

// Difini variables

Privata Temo sub;

Privata CallbackHandler handlr;

Privata Mapo shrState;

Privata Mapo elektas;

// Initialize la variables

Publika malplena initialize(Submetata sub, CallbackHandler handlr,

Mapi shrState, Mapo elektas)

{

Tio ĉi.Sub = sub;

Tio ĉi.Handlr = handlr;

Tio ĉi.ShrState = shrState;

Tio ĉi.Elektas = elektas;

}

// Aŭtentikigi uzanton en ensaluta kapsulo

Publika boolea ensaluto() Ĵetas LoginException

{

MrBOOLCallbackHandler handlr = (MrBOOLCallbackHandler) Tio ĉi.Handlr;

// Aŭtentikigi la uzanton

Revena ContainerAuthMethod.Aŭtentikigas

(

Handlr.GetUname(),

Handlr.GetPword()

);

}

// Fari la operacion

Publika boolea fari() Ĵetas LoginException

{

Revena vera;

}

// Haltigi la operacion

Publika boolea haltigi() Ĵetas LoginException

{

Revena ContainerAuthMethod.Logout(Handlr.GetUsername(),

Handlr.GetPassword());

}

// Logout de la apliko

Publika boolea logout() Ĵetas LoginException

{

Revena ContainerAuthenticationMethod.Logout(Handlr.GetUsername(),

Handlr.GetPassword());

}

}








Konkludo: Antaŭ ol konkludanta nian diskuton sur sekureco kaj JAASa efektivigo, Ni devas kompreni ke elektanta konvenan sekurecan kadran/ kapsulon dependas al la aplika postulo. Se estas bezono por laŭmenda authentication tiam kelkaj tempaj ellaborantoj uzas laŭmendajn kapsulojn (Sen uzanta JAAS aŭ iu ajn aliaj solvoj havebla en la merkato). Sed kiel ni diris ke JAAS provizas la tutan kadron, Ni akiras vole haveblan strukturon. La laboro de la ellaboranto estas kodi la laŭmendan parton nur kiu varias de unu apliko al alia.

Etikedita sur: ,
============================================= ============================================== Buy best TechAlpine Books on Amazon
============================================== ---------------------------------------------------------------- electrician ct chestnutelectric
error

Enjoy this blog? Please spread the word :)

Follow by Email
LinkedIn
LinkedIn
Share