[ 
https://issues.apache.org/jira/browse/QPID-7198?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15395289#comment-15395289
 ] 

Lorenz Quack commented on QPID-7198:
------------------------------------

Keith, after reflection I did some more changes:
 * I moved the caching logic into a class of its own 
({{AuthenticationResultCacher}})and got rid of {{CryptoUtil}}.
 * I added the remote address of the ConnectionPrincipal into the hash so that 
a second authentication result with the same credentials but a different remote 
IP will not hit the cache.
 * I applied multiple (4096 by default) rounds of hashing to make a brute force 
attack a bit more difficult. Note that after discussion with Rob we felt it was 
not necessary to add Salt to the hash for the following reasons: 
 ** The cache should never be exposed and if an attacker has access to the 
memory they can intercept the password much easier.
 ** A Salt would only really work with LDAP where it can be associated with the 
username but would not work with OAuth2 where all we have is a access_token
 * I merged your error handling simplification into the new code.
 * I updated the documentation you introduced.

> LDAP and OAUTH2 Authentication Providers should cache authentication results 
> for a short period
> -----------------------------------------------------------------------------------------------
>
>                 Key: QPID-7198
>                 URL: https://issues.apache.org/jira/browse/QPID-7198
>             Project: Qpid
>          Issue Type: Improvement
>          Components: Java Broker
>            Reporter: Keith Wall
>            Assignee: Lorenz Quack
>             Fix For: qpid-java-6.1
>
>         Attachments: 
> 0001-QPID-7198-Java-Broker-WIP-Make-LDAP-and-OAUTH2-Authe.patch
>
>
> The OAUTH2 and LDAP authentication providers should be changed to cache 
> authentication results for a short (configurable) period.  If the same 
> authentication provider receives the same credentials again (i.e. matching 
> username and password in the case of LDAP), it should reuse the cached 
> authentication result.   The cached authentication result should expire 
> automatically.  Negative authentication results should be cached too.
> This will serve to reduce load on authentication backends (such as 
> Directories).  It will be especially useful when the REST API to used for 
> programmatically monitoring the Broker which otherwise may create an 
> excessive load on the backend.
> The authentication provider must not retain the user passwords in clear.  The 
> size of the cache should be constrained.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to