Skip to content

Commit 391742f

Browse files
committed
Implement LDAP credentials validation via HTTP API
See discussion rabbitmq#14244 Follow-up to rabbitmq#14414 Cherry-picked from 9a4cb9c and then modified to move validation API endpoint to a separate plugin, `rabbitmq_auth_backend_ldap_management`. These changes will allow a user to make an HTTP API request to... ``` /api/ldap/validate/simple-bind ``` ...with an appropriate JSON body, and the plugin will attempt a connection to the specified LDAP server using the provided credentials. This allows validation that a connection can be made to an LDAP server from a RabbitMQ cluster environment.
1 parent a7db990 commit 391742f

File tree

26 files changed

+902
-733
lines changed

26 files changed

+902
-733
lines changed

.github/workflows/test-make-tests.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,7 @@ jobs:
8888
- rabbitmq_auth_backend_cache
8989
- rabbitmq_auth_backend_http
9090
- rabbitmq_auth_backend_ldap
91+
- rabbitmq_auth_backend_ldap_management
9192
- rabbitmq_auth_backend_oauth2
9293
- rabbitmq_auth_mechanism_ssl
9394
- rabbitmq_aws

.github/workflows/test-make-type-check.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ jobs:
2929
- rabbitmq_auth_backend_cache
3030
- rabbitmq_auth_backend_http
3131
- rabbitmq_auth_backend_ldap
32+
- rabbitmq_auth_backend_ldap_management
3233
- rabbitmq_auth_backend_oauth2
3334
- rabbitmq_auth_mechanism_ssl
3435
- rabbitmq_aws

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ elvis
3939
!/deps/rabbitmq_auth_backend_http/
4040
!/deps/rabbitmq_auth_backend_internal_loopback/
4141
!/deps/rabbitmq_auth_backend_ldap/
42+
!/deps/rabbitmq_auth_backend_ldap_management/
4243
!/deps/rabbitmq_auth_backend_oauth2/
4344
!/deps/rabbitmq_auth_mechanism_ssl/
4445
!/deps/rabbitmq_aws/

Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -524,6 +524,7 @@ TIER1_PLUGINS := \
524524
rabbitmq_auth_backend_http \
525525
rabbitmq_auth_backend_internal_loopback \
526526
rabbitmq_auth_backend_ldap \
527+
rabbitmq_auth_backend_ldap_management \
527528
rabbitmq_auth_backend_oauth2 \
528529
rabbitmq_auth_mechanism_ssl \
529530
rabbitmq_aws \

deps/rabbitmq_auth_backend_ldap/Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ define PROJECT_APP_EXTRA_KEYS
3535
endef
3636

3737
LOCAL_DEPS = eldap public_key
38-
DEPS = rabbit_common rabbit rabbitmq_management
38+
DEPS = rabbit_common rabbit
3939
TEST_DEPS = ct_helper rabbitmq_ct_helpers rabbitmq_ct_client_helpers amqp_client
4040
dep_ct_helper = git https://github.com/extend/ct_helper.git master
4141

deps/rabbitmq_auth_backend_ldap/test/system_SUITE.erl

Lines changed: 13 additions & 595 deletions
Large diffs are not rendered by default.

deps/rabbitmq_auth_backend_ldap/test/system_SUITE_data/init-slapd.sh

Lines changed: 0 additions & 136 deletions
This file was deleted.
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../../../rabbitmq_ct_helpers/tools/init-slapd.sh
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../../../rabbitmq_ct_helpers/tools/ldif
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
PROJECT = rabbitmq_auth_backend_ldap_management
2+
PROJECT_DESCRIPTION = Management extension for the LDAP plugin
3+
4+
define PROJECT_APP_EXTRA_KEYS
5+
{broker_version_requirements, []}
6+
endef
7+
8+
DEPS = rabbit_common rabbit rabbitmq_management rabbitmq_auth_backend_ldap
9+
TEST_DEPS = rabbitmq_ct_helpers rabbitmq_ct_client_helpers
10+
11+
DEP_EARLY_PLUGINS = rabbit_common/mk/rabbitmq-early-plugin.mk
12+
DEP_PLUGINS = rabbit_common/mk/rabbitmq-plugin.mk
13+
14+
include ../../rabbitmq-components.mk
15+
include ../../erlang.mk

0 commit comments

Comments
 (0)