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

ASF subversion and git services commented on QPID-8566:
-------------------------------------------------------

Commit 58b1b3e961c4259956d084bc130ba4bc23fdb468 in qpid-broker-j's branch 
refs/heads/main from Daniil Kirilyuk
[ https://gitbox.apache.org/repos/asf?p=qpid-broker-j.git;h=58b1b3e ]

QPID-8566: [Broker-J] Implement composite authentication provider (#118)

Co-authored-by: aw924 <daniil.kiril...@deutsche-boerse.com>

> [Broker-J] Implement composite authentication provider
> ------------------------------------------------------
>
>                 Key: QPID-8566
>                 URL: https://issues.apache.org/jira/browse/QPID-8566
>             Project: Qpid
>          Issue Type: Improvement
>          Components: Broker-J
>    Affects Versions: qpid-java-broker-8.0.6
>            Reporter: Daniil Kirilyuk
>            Priority: Minor
>
> To make it possible to perform authentication either against the local
>  file-based database of users or against LDAP, as [suggested 
> |https://lists.apache.org/thread.html/r3b66d33c03e10ded626d020eecdfdf3f661dd12e2d54f0619abe4d03%40%3Cusers.qpid.apache.org%3E]in
>  Qpid mailing list, new composite authentication provider should be 
> developed. It should contain list of delegate authentication providers, which 
> will be assessed one by one during authentication process until first 
> successful authentication or until all authentication attempts fail. 
> Supported delegate types could be implementations of 
> UsernamePasswordAuthenticationProvider (MD5AuthenticationProvider, 
> PlainAuthenticationProvider, SimpleLDAPAuthenticationManager, 
> ScramSHA1AuthenticationManager and ScramSHA256AuthenticationManager).
> As composite authentication manager will work with several user data sources 
> and should support SASL interactions, it will be limited to authenticate 
> client against first delegate containing authenticated username. I.e. when 
> there are several delegates with users having same usernames but different 
> passwords, it will be possible to authenticate client against the first 
> delegate with the matching username.
> Composite authentication provider should have property - "delegates", which 
> will contain comma separated list of delegate authentication provider names.
> Each delegate authentication provider has its own supported SASL mechanisms:
> MD5 => ["PLAIN", "CRAM-MD5-HASHED", "CRAM-MD5-HEX"]
> Plain => ["PLAIN", "CRAM-MD5", "SCRAM-SHA-1", "SCRAM-SHA-256"]
> SCRAM-SHA-1 => ["SCRAM-SHA-1"]
> SCRAM-SHA-256 => ["SCRAM-SHA-256"]
> SimpleLDAP => ["PLAIN"]
> Composite authentication providers will expose available SASL mechanisms of 
> all configured delegates, but it should be considered, that depending on the 
> delegate types configured, authentication process may require client to use 
> "amqp.saslMechanisms" property for authentication.
> Example:
> Composite provider has 2 delegates: SCRAM-SHA-256 (contains user 
> "scram-user") and SimpleLDAP (contains user "ldap-user"). When client 
> establishes connection, most secure SASL mechanism is chosen, it will be 
> SCRAM-SHA-256, meaning that scram-user will be able to authenticate and 
> ldap-user will fail. To make possible for ldap-user to authenticate against 
> SimpleLDAP provider, it would be necessary for client to specify 
> "amqp.saslMechanisms=PLAIN" for ignoring SCRAM-SHA-256 mechanism and 
> authenticate using PLAIN mechanism.
> Another limitation is the possible name collision: when two delegate 
> providers contain users with same names (but different passwords), it will be 
> possible to authenticate only for the user defined in the delegate coming 
> first in the list.
> Example:
> Composite provider has 2 delegates: Plain (contains user "test-user" with 
> password "password1") and SCRAM-SHA-256 (contains user with same username 
> "test-user" and different password "password2"). When test-user will try to 
> authenticate using "password2" credential, it will fail (although username / 
> password is correct in SCRAM-SHA-256 provider).
> When using composite provider it should be avoided to configure users with 
> same usernames in delegate providers. Usernames should be unique for all 
> composite authentication provider delegates.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org
For additional commands, e-mail: dev-h...@qpid.apache.org

Reply via email to