Thanks for you answer Francesco
I finished implementing that feature yesterday but on the layer on top of 
syncope (based on Spring Sec too with some UserDetailsChecker).
I need to look further at what I could to in the syncope securitycontext.xml 
(didn't have time for the moment alas, we're approaching a delivery date).
Cheers,Adrian
    Le jeudi 14 septembre 2017 à 09:59:15 UTC+2, Francesco Chicchiriccò 
<ilgro...@apache.org> a écrit :  
 
  Hi Adrian,
 the authentication and authorization process in Syncope (which already 
includes some account lockout mechanism, defined via password policies) is 
implemented via Spring Security.
 
 The definitions are in
 
https://github.com/apache/syncope/blob/2_0_X/core/spring/src/main/resources/securityContext.xml
 
 You might want to take a look there for your investigations.
 
 Regards.
 
 On 11/09/2017 17:26, Adrian Gonzalez wrote:
  
  Hello, 
   I'd need to implement :  - user account lockout   - password expiration 
  User account lockout needs to work like this : - when user has made more than 
<nbOfFailedAuthenticationAttempts> in the last <lockoutPeriod>, then the 
user-account will be temporarily locked.   the account is automatically 
unlocked after this <lockoutPeriod> (if no failed authentication attempt has 
been made in between, otherwise, it's prolongated). 
  Password expiration needs to work like this: - when the lastPwdChange is more 
than <passwordExpiration> then the user needs to change his password before 
being able to login. 
  Both user account (enabled, lockoutPeriod, failedAttempts) and password 
expiration settings are specific for each tenant (1 user belonging to each 
tenant)
  As tenants are dynamic, we're not using Syncope domains for that.  
  I can implement both of those feature in my own authentication layer (a 
wrapper around syncope REST API). 
  But I'd like to know if it's possible to implement that inside syncope 
(perhaps it would be cleaner). 
  I looked at LogicActions, AccountRuleConf and creating a PasswordPolicy for 
each of my tenants, but I don't think it will work.  - I cannot compute the 
lastFailedLoginDatelastFailedLogin date (i.e. to check if the account must 
still be locked).
   - once a user is suspended, I cannot automatically reactivate it once 
lockoutPeriod has passed (perhaps adding a quartz job, but seems overweight). - 
I don't know if the current authentication is a success or a failure (to update 
the lastFailedLoginDate) 
  Perhaps I'm missing something like pre/post authentication hooks that are 
able to update the current user and know the status of the current 
authentication ?   
  Thanks, Adrian  
 -- 
Francesco Chicchiriccò

Tirasa - Open Source Excellence
http://www.tirasa.net/

Member at The Apache Software Foundation
Syncope, Cocoon, Olingo, CXF, OpenJPA, PonyMail
http://home.apache.org/~ilgrosso/
   

Reply via email to