Skip to content

Commit 336c499

Browse files
authored
Merge pull request CactuseSecurity#4098 from tpurschke/fix/v8/ldap-conf
v8 fix revert changes to ldap.conf
2 parents 760f011 + da21d7a commit 336c499

11 files changed

Lines changed: 247 additions & 147 deletions

File tree

inventory/group_vars/all.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,7 @@ ldap_manager_pwd_file: "{{ fworch_secrets_dir }}/ldap_manager_pwd"
9494
middleware_hostname: "127.0.0.1"
9595
ldif_changetype: add
9696
middleware_service_name: "{{ product_name }}-middleware"
97+
openldap_server_enable_ssl: true
9798

9899
# middleware web server
99100
middleware_web_listener_port: 8888

roles/middleware/tasks/main.yml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,8 @@
106106
server_uri: "{{ openldap_url }}"
107107
bind_dn: "{{ openldap_superuser_dn }}"
108108
bind_pw: "{{ ldap_manager_pwd }}"
109+
validate_certs: "{{ openldap_server_enable_ssl | ternary(false, omit) }}"
110+
ca_path: "{{ openldap_server_enable_ssl | ternary(openldap_server_cert, omit) }}"
109111
when: installation_mode == 'new'
110112

111113
- name: set importer user password randomly
@@ -139,6 +141,8 @@
139141
server_uri: "{{ openldap_url }}"
140142
bind_dn: "{{ openldap_superuser_dn }}"
141143
bind_pw: "{{ ldap_manager_pwd }}"
144+
validate_certs: "{{ openldap_server_enable_ssl | ternary(false, omit) }}"
145+
ca_path: "{{ openldap_server_enable_ssl | ternary(openldap_server_cert, omit) }}"
142146
when: installation_mode == 'new'
143147

144148
- name: Set {{ openldap_readonly_user_name }} password in ldap
@@ -148,6 +152,8 @@
148152
server_uri: "{{ openldap_url }}"
149153
bind_dn: "{{ openldap_superuser_dn }}"
150154
bind_pw: "{{ ldap_manager_pwd }}"
155+
validate_certs: "{{ openldap_server_enable_ssl | ternary(false, omit) }}"
156+
ca_path: "{{ openldap_server_enable_ssl | ternary(openldap_server_cert, omit) }}"
151157
when: installation_mode == "new"
152158

153159
- name: Set "{{ openldap_writer_name }}" password in ldap
@@ -157,6 +163,8 @@
157163
server_uri: "{{ openldap_url }}"
158164
bind_dn: "{{ openldap_superuser_dn }}"
159165
bind_pw: "{{ ldap_manager_pwd }}"
166+
validate_certs: "{{ openldap_server_enable_ssl | ternary(false, omit) }}"
167+
ca_path: "{{ openldap_server_enable_ssl | ternary(openldap_server_cert, omit) }}"
160168
when: installation_mode == "new"
161169

162170
- name: Set {{ audit_user }} password in ldap
@@ -166,6 +174,8 @@
166174
server_uri: "{{ openldap_url }}"
167175
bind_dn: "{{ openldap_superuser_dn }}"
168176
bind_pw: "{{ ldap_manager_pwd }}"
177+
validate_certs: "{{ openldap_server_enable_ssl | ternary(false, omit) }}"
178+
ca_path: "{{ openldap_server_enable_ssl | ternary(openldap_server_cert, omit) }}"
169179
when: audit_user is defined and auditor_initial_pwd is defined and installation_mode=='new'
170180

171181
- name: insert admin tenant0 to database

roles/middleware/tasks/set_initial_ldap_tree.yml

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,19 @@
22
set_fact:
33
ldif_changetype: add
44

5+
- name: build ldap tls options
6+
set_fact:
7+
ldap_tls_opts: >-
8+
{% if openldap_server_enable_ssl | default(false) -%}
9+
-o TLS_REQCERT=never{% if openldap_server_cert is defined %} -o TLS_CACERT={{ openldap_server_cert }}{% endif %}
10+
{%- endif %}
11+
ldap_cmd_url: >-
12+
{% if openldap_server_enable_ssl | default(false) -%}
13+
ldaps://{{ openldap_server }}:{{ openldap_port | default(636) }}
14+
{%- else -%}
15+
ldap://{{ openldap_server }}:{{ (openldap_port | default(389) | int == 636) | ternary(389, openldap_port | default(389)) }}
16+
{%- endif %}
17+
518
- name: copy the ldif templates to system
619
template:
720
src: "{{ item }}"
@@ -14,7 +27,7 @@
1427
become: true
1528

1629
- name: add tree
17-
command: "ldapmodify -H {{ openldap_url }} -D {{ openldap_superuser_dn }} -w {{ ldap_manager_pwd }} -x -f {{ middleware_ldif_dir }}/tree_{{ item }}.ldif"
30+
command: "ldapmodify {{ ldap_tls_opts }} -H {{ ldap_cmd_url }} -D {{ openldap_superuser_dn }} -w {{ ldap_manager_pwd }} -x -f {{ middleware_ldif_dir }}/tree_{{ item }}.ldif"
1831
loop:
1932
- level_0
2033
- level_1

roles/middleware/tasks/upgrade/5.4.1.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,3 +21,5 @@
2121
server_uri: "{{ openldap_url }}"
2222
bind_dn: "{{ openldap_superuser_dn }}"
2323
bind_pw: "{{ ldap_manager_pwd }}"
24+
validate_certs: "{{ openldap_server_enable_ssl | ternary(false, omit) }}"
25+
ca_path: "{{ openldap_server_enable_ssl | ternary(openldap_server_cert, omit) }}"

roles/middleware/tasks/upgrade_modify_routine.yml

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,32 +7,45 @@
77
group: "{{ fworch_group }}"
88
become: true
99

10+
- name: build ldap tls options
11+
set_fact:
12+
ldap_tls_opts: >-
13+
{% if openldap_server_enable_ssl | default(false) -%}
14+
-o TLS_REQCERT=never{% if openldap_server_cert is defined %} -o TLS_CACERT={{ openldap_server_cert }}{% endif %}
15+
{%- endif %}
16+
ldap_cmd_url: >-
17+
{% if openldap_server_enable_ssl | default(false) -%}
18+
ldaps://{{ openldap_server }}:{{ openldap_port | default(636) }}
19+
{%- else -%}
20+
ldap://{{ openldap_server }}:{{ (openldap_port | default(389) | int == 636) | ternary(389, openldap_port | default(389)) }}
21+
{%- endif %}
22+
1023
- name: determine distinguished name and changetype
1124
set_fact:
1225
distinguished_name: "{{ item.splitlines()[0] }}"
1326
changetype: "{{ item.split('changetype: ')[1].splitlines()[0] }}"
1427

1528
- name: test if distinguished name exists
1629
# error code 32, when searchbase not existing
17-
command: "ldapsearch -H {{ openldap_url }} -D {{ openldap_superuser_dn }} -w {{ ldap_manager_pwd }} -b {{ distinguished_name }}"
30+
command: "ldapsearch {{ ldap_tls_opts }} -H {{ ldap_cmd_url }} -D {{ openldap_superuser_dn }} -w {{ ldap_manager_pwd }} -b {{ distinguished_name }}"
1831
#become: true
1932
register: search_existence
2033
failed_when: (search_existence.rc != 0) and (search_existence.rc != 32)
2134

2235
- name: add ldap entry if not existing
23-
command: "ldapmodify -H {{ openldap_url }} -D {{ openldap_superuser_dn }} -w {{ ldap_manager_pwd }} -x -f {{ middleware_ldif_dir }}/{{ outer_item }}_{{ item.split(',')[0] }}.ldif"
36+
command: "ldapmodify {{ ldap_tls_opts }} -H {{ ldap_cmd_url }} -D {{ openldap_superuser_dn }} -w {{ ldap_manager_pwd }} -x -f {{ middleware_ldif_dir }}/{{ outer_item }}_{{ item.split(',')[0] }}.ldif"
2437
when: (changetype == 'add') and (search_existence.stdout.split('result:')[1].splitlines()[0] is match('.*No such object'))
2538
#become: true
2639

2740
- name: delete ldap entry if existing
2841
# dont delete in case numEntries > 1, otherwise ldap nodes are disconected
29-
command: "ldapmodify -H {{ openldap_url }} -D {{ openldap_superuser_dn }} -w {{ ldap_manager_pwd }} -x -f {{ middleware_ldif_dir }}/{{ outer_item }}_{{ item.split(',')[0] }}.ldif"
42+
command: "ldapmodify {{ ldap_tls_opts }} -H {{ ldap_cmd_url }} -D {{ openldap_superuser_dn }} -w {{ ldap_manager_pwd }} -x -f {{ middleware_ldif_dir }}/{{ outer_item }}_{{ item.split(',')[0] }}.ldif"
3043
when: (changetype == 'delete') and (search_existence.stdout.split('# numEntries:')[1].splitlines()[0] is match('\s1'))
3144
#become: true
3245

3346
- name: modify ldap entry if existing
3447
# error code 20, when attribute already exists
35-
command: "ldapmodify -H {{ openldap_url }} -D {{ openldap_superuser_dn }} -w {{ ldap_manager_pwd }} -x -f {{ middleware_ldif_dir }}/{{ outer_item }}_{{ item.split(',')[0] }}.ldif"
48+
command: "ldapmodify {{ ldap_tls_opts }} -H {{ ldap_cmd_url }} -D {{ openldap_superuser_dn }} -w {{ ldap_manager_pwd }} -x -f {{ middleware_ldif_dir }}/{{ outer_item }}_{{ item.split(',')[0] }}.ldif"
3649
register: modify_out
3750
when: (changetype == 'modify') and (search_existence.stdout.split('# numEntries:')[1].splitlines()[0] is match('\s1'))
3851
#become: true

0 commit comments

Comments
 (0)