Le schémaci-dessousreprésentel’architecturedugestionnaired’utilisateurs etdu moteur depersonnalisationassocié, ExtensibleUserManager:
Notez quesurleschéma:
v lesinformationsrelativesauxutilisateurs,auxgroupesetauxpropriétés correspondantessontaccessiblespar programmationà l’aidede l’APIcôté serveurviaRepositoryBlox.
v Pourlasécuritéetlapersonnalisation,DB2Alphabloxfournitdeuxsolutions prêtesà l’emploide gestiond’utilisateursbasésur référentielDB2Alphabloxou surLDAP:DB2AlphabloxRepository-basedUserManageretLDAP-basedUser Manager.
v Legestionnaired’utilisateurs basésurréférentielpardéfautlitetécritdes donnéesdansleréférentielDB2Alphablox.
v Legestionnaired’utilisateurs basésurLDAPprêtà l’emploin’effectuequedes opérationsdeLECTUREsurleserveurLDAP.
v L’APIExtensibleUserManagerpermetd’utiliserunautreréférentielexterne, par exempleNTLMou unEJBexistant(EnterpriseJavaBeans).
v Quelquesoitleréférentielutilisé (DB2Alphablox, LDAPouuneautresource externe),vouspouvezaccéder auxpropriétésutilisateurvial’API
RepositoryBlox.
Extensible User Manager
Remarque: Cettesections’appliqueuniquementàDB2Alphablox8.4(pasde priseenchargedanslaversion8.4.1).
Le moteurdepersonnalisation ExtensibleUserManagersetrouve aucoeurdeDB2 Alphablox. Ilpermet de:
v personnaliserlesfonctionsprêtes àl’emploid’authentificationet/ou d’autorisationdesutilisateurs,
v rattacherungestionnaire d’utilisateursexternepouraccéderauxinformations relativesaux utilisateursetauxgroupesprovenantd’autressourcessituéeshors duréférentielDB2Alphablox,ou
v utiliserd’autresparamètresdesécuritéqueceuxdel’API desécuritéJ2EE Le fonctionnementdesdeuximplémentationsdesécuritéetdepersonnalisation prêtes àl’emploiDB2Alphablox(DB2AlphabloxRepository-basedUser Manager etLDAP-basedUserManager) reposesurcemoteur.Pourutiliser legestionnaire d’utilisateurs basésurLDAP, uneprocéduredeconfigurationestnécessaire.Cette procédureestdécrite dans«LDAP-BasedUser Manager»,àlapage99.Pour implémenter lasécuritépersonnaliséeoupourpersonnaliserl’unedesdeux implémentationsde sécuritéprêtes àl’emploi,vouspouvezdévelopperExtensible UserManager.Voustrouverezdesinformations détailléessurledéveloppementde l’interfaceExtensibleUserManager dans«InterfacesExtensibleUserManager», à lapage103.
LDAP-Based User Manager
Remarque: Cettesections’appliqueuniquementàDB2Alphablox8.4(pasde priseenchargedanslaversion8.4.1).
DB2Alphabloxfournituneimplémentationprêteà l’emploid’ExtensibleUser Manager permettantd’utiliserunserveurd’annuaireLDAPpourreconnaîtreles utilisateurs,lesgroupesetlespropriétéspersonnalisées deDB2Alphablox: v DB2AlphabloxeffectueuniquementdesopérationsdeLECTUREsur leserveur
LDAP.
v Lesadministrateurspeuvent uniquementcréerdesutilisateursoudesgroupes DB2AlphabloxquisontdéjàdéfinissurleserveurLDAP.
v Lesadministrateursnepeuvent pasrenommernimodifierlesmembressur l’ongletAdministrationde lapaged’accueilDB2Alphablox.
v Lasuppressiond’utilisateurs oudegroupesvial’ongletAdministrationdela paged’accueildeDB2Alphabloxnesupprimepaslesélémentsduréférentiel sous-jacentetn’affectepasleserveurLDAP.
v L’utilisateur“admin”n’estplusdisponiblepar défautsaufs’ils’agitd’un utilisateurLDAP.
v L’utilisateur“guest”etlegroupe“public”sontdisponiblesmêmes’ilsn’existent pasdansLDAP.
Configuration de DB2 Alphablox de façon à utiliser LDAP-based User Manager
Remarque: Cettesections’appliqueuniquementàDB2Alphablox8.4(pasde priseenchargedanslaversion8.4.1).
LDAP-basedUserManager peutêtreutilisé aveclesserveursd’applications WebSphere, WebLogicetTomcat.Pour configurerDB2Alphabloxdefaçonà tirer profitde l’intégrationprêteà l’emploiavecvosserveurs d’annuaireLDAP, procédez commesuit :
1. Al’aidedelacommandede consoleTelnetExtUserManager,configurezle serveurdefaçonà cequ’ilutiliseLDAP, commedécritdans«Configurationdes propriétésdeLDAP-basedUserManager»,à lapage100.
2. Veillezà cequelavaleurde lapropriété deserveurautoCreateUserssoittrue à l’aidede lacommandedeconsoleTelnetsuivante:
set server autoCreateUsers true
Remarque: Lavaleur pardéfautdeautoCreateUsersest false.PourqueDB2 Alphabloxcréeautomatiquementlesutilisateursaprèsleur authentificationauprèsdu serveurLDAP,attribuezlavaleurtrue àlapropriété.
Remarque: Pourlegestionnaire d’utilisateursexterne, legroupe“public”et l’utilisateur“guest”doiventêtredéfinis (ilpeuts’agird’instances factices).
Spécifications supplémentairespourlesconfigurationsApacheTomcat 1. Créez legroupeAlphabloxAdministratorsurleserveurd’annuaireLDAP.
2. Ajoutezaumoinsunutilisateuraugroupe AlphabloxAdministratorouajoutez ungroupeexistantcontenantaumoinsunutilisateuraugroupe
AlphabloxAdministratordesorte qu’ilenconstitueunsous-groupe.
Configuration des propriétés de LDAP-based User Manager
Remarque: Cettesections’appliqueuniquementàDB2Alphablox8.4(pasde priseenchargedanslaversion8.4.1).
1. Etablissezuneconnexionde laconsoleTelnetsurDB2Alphablox.
Remarque: SivousaccédezàlaconsoleTelnetvial’ongletAdministrationde lapaged’accueilDB2Alphablox, redémarrezDB2Alphabloxafin quelesmodificationssoientprisesencharge.Suruneconsole Telnetstandard,iln’estpasnécessairede redémarrerDB2 Alphablox.
2. Entrezlacommandesuivante: ExtUserManager setToDefaults ldap
“<ldapProps>”
où<ldapProps> sontlespairespropriété-valeurséparéesparunpoint-virgule.
Par exemple:
“host:localhost;port:389:admin:cn=DirectoryManager;
password:password;debug:false;base:dc=alphablox,dc=com”
Remarque:Lesvaleursci-dessusdoiventêtresaisiessur uneseuleligne,sans retouràlaligne.
UnefoislacommandeExtUserManagerexécutée,DB2Alphabloxpassedu gestionnaire d’utilisateursDB2AlphabloxRepository-basedUserManager au gestionnaire d’utilisateursLDAP-basedUserManager.
Remarque:Cechangemententraîneladéconnexionde touslesutilisateurs connectés.
Le tableausuivant répertorietoutes lespropriétésobligatoiresetfacultativesqui peuvent êtredéfiniesdanslachaîne<ldapProps> :
Propriété Description Exemple
host Hôteduserveurd’annuaireLDAP host:localhost port Portduserveurd’annuaireLDAP port:389 admin Nomdel’utilisateuradministrateur
duserveurd’annuaireLDAP
admin:cn=Directory Manager
password Motdepassedel’administrateurdu serveurd’annuaireLDAP
password:MonMotDePasse
base Basederechercheduserveur d’annuaireLDAP
base:o=MonEntreprise.com
debug [Facultatif]Paramètredumodede débogage,lavaleurpardéfautétant false
debug:true
Conseil: Labase derechercheLDAP permetdedéfinirlepointde départde la recherche.Ellepointeverslenomdistinctifd’une entréedelahiérarchie d’annuaireafind’améliorerlesperformancesde larecherche.
Accès aux propriétés utilisateur personnalisées
Remarque: Cettesections’appliqueuniquementàDB2Alphablox8.4(pasde priseenchargedanslaversion8.4.1).
Vouspouvezdéfinirdespropriétésutilisateurpersonnaliséespourpersonnaliser davantage vosapplications.Après avoirdéfiniunepropriété utilisateur
personnalisée,vouspouvezluiattribuerunevaleurdifférentepourchaque utilisateur, puisaccéderparprogrammationauxvaleursdecettepropriétéàl’aide de l’APIdeRepositoryBlox.AvecLDAP-basedUser Managerouungestionnaire d’utilisateurs externe,DB2Alphabloxchargeuniquementlespropriétésutilisateur personnalisées marquéescommepropriétésexternes.
Vouspouvezdéfinirlespropriétésutilisateurpersonnaliséessur l’onglet
Administrationdelapaged’accueildeDB2Alphablox.Surlapagededéfinition despropriétéspersonnalisées,vérifiezquel’optionExternalPropertyest cochée.
Pour connaîtrelaprocédureendétail,voir«Définitionsdespropriétés personnalisées», àlapage82.Aprèsavoir marquélapropriété utilisateur
personnaliséecomme propriétéexterne,lorsque lesinformationssurlavaleurde la propriété utilisateurpersonnaliséesontdemandées(parunappel
RepositoryBlox.getUserProperty("maPropUtilisateurExterne"),parexemple),le gestionnaire d’utilisateursdeDB2Alphabloxrécupèrelavaleur danslasource externe.
Fonctionnement durant la phase d’exécution
Remarque: Cettesections’appliqueuniquementàDB2Alphablox8.4(pasde priseenchargedanslaversion8.4.1).
LDAP-basedUserManager fonctionnedelamanièresuivantedurantl’exécution : v DB2Alphabloxnecréepasautomatiquementlesgroupesdurantl’exécution.Les
administrateursdoiventenregistrerexplicitementlegroupeLDAP vial’onglet Administrationdelapaged’accueilde DB2Alphablox.
v DB2Alphabloxcréeautomatiquementlesutilisateurssiceux-ciontété correctementauthentifiésauprèsduserveurLDAPetsilavaleurtrueest attribuéeàlapropriétéde serveurautoCreateUsersviaunecommandeTelnet (voir«ConfigurationdeDB2Alphabloxde façonàutiliserLDAP-basedUser Manager»,à lapage99).
v DB2AlphabloxchargeuniquementlespropriétésutilisateuretgroupeLDAP définiescommepropriétéspersonnaliséesexternes.
Commande de console Telnet pour Extensible User Manager
LacommandeExtUserManagersurlaconsoleTelnetpermet d’indiqueràDB2 Alphabloxd’utiliseruneautreclassepourgérer lesutilisateurs etlesgroupesou d’utiliserun
Remarque: Cettesections’appliqueuniquementàDB2Alphablox8.4(pasde priseenchargedanslaversion8.4.1).
référentielexterne.
LasyntaxegénéraledelacommandeExtUserManagerestlasuivante: ExtUserManager <Propriété> <Valeur>
où Propriétépeutêtre:
Propriété Description Valeur
umclassname Nomdelaclassedegestionnaire
d’utilisateurs
Lavaleurdoitêtreunnomdeclasse validedisponibledanslecheminde classesquiimplémentel’interface IUserManager,sinonuneerreurse produit.Voir«Implémentations personnaliséespourlasécurité»,àla page104pourplusd’informations.
userclassname Nomdelaclassed’utilisateur Lavaleurdoitêtreunnomdeclasse validedisponibledanslecheminde classesquiimplémentel’interfaceIUser, sinonuneerreurseproduit.Voir
«Implémentationspersonnaliséespourla sécurité»,àlapage104pourplus d’informations.
groupclassname Nomdelaclassedegroupe Lavaleurdoitêtreunnomdeclasse validedisponibledanslecheminde classesquiimplémentel’interface IGroup,sinonuneerreurseproduit.Voir
«Implémentationspersonnaliséespourla sécurité»,àlapage104pourplus d’informations.
customstartupproperty Propriétéd’initialisation
personnaliséequelesdéveloppeurs peuventinsérerdanslecodepour lireunevaleurlorsdudémarrage dugestionnaired’utilisateurs.
Lavaleurdecettepropriété.
setToDefaults Référentielàutiliserpardéfaut Voirlasectionsuivanteintitulée
«Configurationduréférentielpar défaut»,àlapage103.
Remarque: Aprèsavoirdéfiniunenouvellepropriété d’initialisation,arrêtezpuis redémarrezDB2Alphablox.
Configuration du référentiel par défaut
Remarque: Cettesections’appliqueuniquementàDB2Alphablox8.4(pasde priseenchargedanslaversion8.4.1).
Pour configurertoutes lespropriétésde façonàutiliser legestionnaire d’utilisateurs LDAPpardéfaut, entrezlacommandeTelnetsuivante : ExtUserManager setToDefaults ldap <ldapProps>
où ldapPropsestunepropriétécontenant touteslesinformationsnécessaires àla connexion àLDAP.Il n’estpasnécessairederedémarrer DB2Alphablox, maistous lesutilisateursconnectés serontdéconnectés.Pourconnaîtrelaprocéduredétaillée de laconfigurationrequisepourutiliser ungestionnaired’utilisateursLDAPainsi quelasyntaxede lapropriétéldapprops,voir«LDAP-BasedUserManager»,à la page99.
Pour réinitialisertouteslespropriétésdefaçonà utiliserlegestionnaire
d’utilisateurs DB2AlphabloxRepository-basedUserManagerpar défaut,entrezla commandeTelnetsuivante.
ExtUserManager setToDefaults repository
Cettecommandeindiqueaugestionnaire d’utilisateursdes’arrêterpuisde redémarrer afinde récupérerlesinformationsutilisateurlesplusrécentessurle référentielDB2Alphablox.Iln’est pasnécessairede redémarrerDB2Alphablox, mais touslesutilisateursconnectés serontdéconnectés.
Suppression d’utilisateurs et de groupes ne se trouvant plus dans le référentiel d’utilisateurs externe
Remarque: Cettesections’appliqueuniquementàDB2Alphablox8.4(pasde priseenchargedanslaversion8.4.1).
Lacommandesuivanteindiqueà ExtensibleUserManagerdesupprimerdu référentiellesutilisateursetlesgroupesquinesetrouventplusdansles référentielsd’utilisateurs externes(parexempleLDAPouNTLM): ExtUserManager clean
Interfaces Extensible User Manager
Remarque: Cettesections’appliqueuniquementàDB2Alphablox8.4(pasde priseenchargedanslaversion8.4.1).
L’infrastructure d’ExtensibleUserManagercomportetrois interfacesprincipales : IUserManager,IUser etIGroup.Le tableauci-dessousrépertorielafonctionetles méthodesde chaqueinterface.Ilrépertorieégalementlaclasse quiimplémente chaque interfaceparticulière.
Interface Description Classed’implémentation IUserManager Personnechargéedelacréationetde
larecherchedesutilisateursetdes groupesdurantl’exécution.
AbstractUserManager
IUser Miseenplaced’unevueenlecture seulepourunutilisateurdu référentielsous-jacentdestinéeà l’authentification,l’autorisationetaux propriétésutilisateur.
AbstractUser
IGroup Miseenplaced’unevueenlecture seuledestinéeauxinformations relativesauxmembresetaux propriétésdegroupeduréférentiel sous-jacent
AbstractGroup
Lesinterfacesetlesclassesd’implémentationsetrouventdanslemodule
com.alphablox.personalization.LadocumentationJavadoc relativeà cemodule est disponibledanslerépertoiresuivant :
<db2alphablox_dir>/system/documentation/javadoc/blox/index.html
où <db2alphablox_dir>est lerépertoire danslequel estinstalléDB2Alphablox.
Implémentations personnalisées pour la sécurité
Remarque: Cettesections’appliqueuniquementàDB2Alphablox8.4(pasde priseenchargedanslaversion8.4.1).
Extensible UserManagercomportetroispropriétésDB2Alphabloxpermettant d’identifier l’utilisateur,legroupe etlaclasse degestionnaired’utilisateurs à utiliser pourl’authentificationetl’autorisation :
v umclassname
Lavaleur pardéfautpourlegestionnaire d’utilisateursDB2Alphablox Repository-basedUserManager est
com.alphablox.personalization.repository.RepUserManager.Lavaleur par défautpourlegestionnaired’utilisateurs LDAP-basedUser Managerest com.alphablox.personalization.ldap.LDAPUserManager .
v userclassname
Lavaleur pardéfautdecettepropriétépourlegestionnaired’utilisateursDB2 AlphabloxRepository-basedUserManagerest
com.alphablox.personalization.repository.RepUser.Lavaleurpar défautpour legestionnaired’utilisateurs LDAP-basedUserManagerest
com.alphablox.personalization.ldap.LDAPUser.
v groupclassname
Lavaleur pardéfautdecettepropriétépourlegestionnaired’utilisateursDB2 AlphabloxRepository-basedUserManagerest
com.alphablox.personalization.repository.RepGroup.Lavaleur pardéfaut pourlegestionnaire d’utilisateursLDAP-basedUserManagerest
com.alphablox.personalization.ldap.LDAPGroup.
Vouspouvezécrireuneclasse personnaliséed’utilisateur,degroupe oude gestionnaire d’utilisateurs,puisdéfinirlanouvellevaleur decespropriétésDB2
Alphabloxà l’aidede lacommandeTelnetExtUserManagerdefaçonà lesfaire pointer versvotre classed’utilisateur,degroupeou degestionnaired’utilisateurs.
Le tableausuivant indiquelaclasseàdévelopperpourpersonnaliserunepartieou l’ensembleduschémadesécuritéprêtàl’emploi.
Objectif Solution
Authentificationouautorisationavec legestionnaired’utilisateursDB2 AlphabloxRepository-basedUser Managerpardéfaut
ExtensiondelaclasseAlphabloxUser
Authentificationouautorisationavec legestionnaired’utilisateurs
LDAP-basedUserManager
ExtensiondelaclasseldapUser
Connexionunique ImplémentationdelaméthodegetPassword()dans laclasseAlphabloxUser
Lecturedespropriétés
utilisateurs/groupesdansunautre référentielqueDB2Alphabloxou LDAP
ExtensiondelaclasseAlphabloxUserou AlphabloxGroup
Lecturedesinformationsrelativesaux membresdegroupesdynamiques dansunautreréférentielqueDB2 AlphabloxouLDAP
ExtensiondelaclasseAlphabloxUserou AlphabloxGroup
PriseenchargeNTLM ImplémentationcomplètedesinterfacesExtensible UserManager
Remarque: AfinqueDB2Alphabloxutilisevosclasses,vousdevez ajouterle répertoirede cesclassesauchemindeclassesdeDB2Alphabloxdéfini danslefichierde traitementpar lotsde l’initialisation.Pourplusde détailssurlamanièrededéfinirlechemindeclasses, voir«Définition duchemindeclasses»,à lapage75.
Connexion unique
Remarque: Cettesections’appliqueuniquementàDB2Alphablox8.4(pasde priseenchargedanslaversion8.4.1).
Pour implémenterlaconnexionuniquelorsquelessourcesdedonnées DB2
Alphabloxsontconfiguréespourutiliserlesnoms d’utilisateuretlesmotsde passe DB2Alphablox, vouspouvez utiliserlaméthode getPassword()danslaclasse AlphabloxUser pourobtenirlemotdepasse codéenbase64.Letableausuivant présente lessolutionsdeconnexion uniquedansdifférentessituations:
Gestionnaire d’utilisateurs
Sourcesde donnéesavec
LDAP? Méthoded’authentification LDAP-basedUser
Manager
Oui AuthentificationDB2Alphabloxstandard(au niveaudunavigateur):aucuneactionrequise LDAP-basedUser
Manager
Non UtilisezgetPassword()
Autreréférentiel Indifférent UtilisezgetPassword()
Exemples de sécurité personnalisée
Remarque: Cettesections’appliqueuniquementàDB2Alphablox8.4(pasde priseenchargedanslaversion8.4.1).
Voicitrois exemplesd’extensiond’Extensible UserManagerpourpersonnaliserla sécurité. Chacundesexemplesmontre:
v commentétendrelaclasse d’utilisateur,de groupeoudegestionnaire
d’utilisateurspardéfaututiliséeparlegestionnaired’utilisateursDB2Alphablox Repository-basedUserManager pardéfaut,puis
v définirlenomdelanouvelleclasse àl’aidedelacommandeTelnet ExtUserManager.
Pour obtenirunexempled’implémentationcomplèted’ungestionnaire
d’utilisateurs externe,voirl’exemple degestionnaired’utilisateurs (SimpleUser Manager) danslerépertoiresuivant :
<db2alphablox_dir>/system/documentation/admin/Examples/
Lesfichiers sourceJavasontfournis.