@@ -36,6 +36,12 @@ configuration of the chosen group provider must be included in the same file.
36
36
Defaults to ` keep ` .
37
37
:::
38
38
39
+ ## Integration with access control
40
+
41
+ Groups resolved by the group provider are passed to Trino’s system access
42
+ control engine. Access control rules can reference these group names to grant
43
+ or restrict permissions.
44
+
39
45
(file-group-provider)=
40
46
## File group provider
41
47
@@ -80,13 +86,12 @@ group_name:user_1,user_2,user_3
80
86
## LDAP group provider
81
87
82
88
The LDAP group provider resolves user group memberships from configuration
83
- retrieved from an LDAP server.
84
- This allows access rules to be defined based on LDAP groups instead of
85
- individual users.
89
+ retrieved from an LDAP server. This allows access rules to be defined based on
90
+ LDAP groups instead of individual users.
86
91
87
92
### Configuration
88
93
89
- Enable LDAP group provider by creating an ` etc/group-provider.properties ` file
94
+ Enable LDAP group provider by creating an ` etc/group-provider.properties ` file
90
95
on the coordinator and add further configuration for the LDAP server
91
96
connections and other information as detailed in the following sections.
92
97
@@ -99,52 +104,54 @@ group-provider.name=ldap
99
104
:header-rows: 1
100
105
* - Property name
101
106
- Description
102
- * - ` ldap.url `
103
- - LDAP server URI. For example, ` ldap://host:389 ` or ` ldaps://host:636 ` .
104
- * - ` ldap.allow-insecure `
105
- - Allow insecure connection to the LDAP server.
106
- * - ` ldap.ssl.keystore.path `
107
+ * - ` ldap.url `
108
+ - LDAP server URI. For example, ` ldap://host:389 ` or ` ldaps://host:636 ` .
109
+ * - ` ldap.allow-insecure `
110
+ - Allow insecure connection to the LDAP server. Defaults to ` false ` .
111
+ * - ` ldap.ssl.keystore.path `
107
112
- Path to the PEM or JKS key store.
108
- * - ` ldap.ssl.keystore.password `
113
+ * - ` ldap.ssl.keystore.password `
109
114
- Password for the key store.
110
115
* - ` ldap.ssl.truststore.path `
111
116
- Path to the PEM or JKS trust store.
112
- * - ` ldap.ssl.truststore.password `
117
+ * - ` ldap.ssl.truststore.password `
113
118
- Password for the trust store.
114
- * - ` ldap.ignore-referrals `
119
+ * - ` ldap.ignore-referrals `
115
120
- Referrals allow finding entries across multiple LDAP servers. Ignore them
116
- to only search within one LDAP server.
117
- * - ` ldap.timeout.connect `
118
- - Timeout for establishing a connection.
119
- * - ` ldap.timeout.read `
120
- - Timeout for reading data from LDAP.
121
- * - ` ldap.admin-user `
122
- - Bind distinguished name for admin user. For example,
121
+ to only search within one LDAP server. Defaults to ` false ` .
122
+ * - ` ldap.timeout.connect `
123
+ - Timeout [ duration] ( prop-type-duration ) for establishing a connection.
124
+ Defaults to ` 1m ` .
125
+ * - ` ldap.timeout.read `
126
+ - Timeout [ duration] ( prop-type-duration ) for reading data from LDAP.
127
+ Defaults to ` 1m ` .
128
+ * - ` ldap.admin-user `
129
+ - Bind distinguished name for admin user. For example,
123
130
` CN=UserName,OU=City,OU=State,DC=domain,DC=domain_root `
124
- * - ` ldap.admin-password `
125
- - Bind password used for the admin user.
126
- * - ` ldap.user-base-dn `
131
+ * - ` ldap.admin-password `
132
+ - Bind password used for the admin user.
133
+ * - ` ldap.user-base-dn `
127
134
- Base distinguished name for users. For example, ` dc=example,dc=com ` .
128
- * - ` ldap.user-search-filter `
135
+ * - ` ldap.user-search-filter `
129
136
- LDAP filter to find user entries; ` {0} ` is replaced with the Trino username.
130
137
For example, ` (cn={0}) `
131
- * - ` ldap.group-name-attribute `
138
+ * - ` ldap.group-name-attribute `
132
139
- Attribute to extract group name from group entry. For example, ` cn ` .
133
- * - ` ldap.use-group-filter `
134
- - Whether to use search-based group resolution. Defaults to ` true ` .
135
- If ` false ` , Trino uses the attribute-based method.
140
+ * - ` ldap.use-group-filter `
141
+ - Whether to use search-based group resolution. Defaults to ` true ` .
142
+ When ` false ` , Trino uses the attribute-based method.
136
143
:::
137
144
138
145
Group resolution behavior is controlled by the ` ldap.use-group-filter ` property.
139
- With search-based group resolution, Trino searches for group entries that
146
+ With search-based group resolution, Trino searches for group entries that
140
147
include the user DN. This requires the following properties:
141
148
142
149
:::{list-table} Search-based group resolution
143
150
:widths: 40, 60
144
151
:header-rows: 1
145
152
* - Property name
146
153
- Description
147
- * - ` ldap.group-base-dn `
154
+ * - ` ldap.group-base-dn `
148
155
- Base distinguished name for groups. For example, ` dc=example,dc=com ` .
149
156
* - ` ldap.group-search-filter `
150
157
- Search filter for group documents. For example, ` (cn=trino_*) ` .
@@ -153,7 +160,7 @@ include the user DN. This requires the following properties:
153
160
` cn ` .
154
161
:::
155
162
156
- In case of attribute-based group resolution, Trino reads the group list
163
+ In case of attribute-based group resolution, Trino reads the group list
157
164
directly from a user attribute. This requires the following property:
158
165
159
166
:::{list-table} Attribute-based (single query) group resolution
@@ -168,7 +175,7 @@ directly from a user attribute. This requires the following property:
168
175
169
176
### Example configurations
170
177
171
- The following configuration is an example for an OpenLDAP (search-based)
178
+ The following configuration is an example for an OpenLDAP (search-based)
172
179
group provider:
173
180
174
181
``` properties
@@ -188,7 +195,7 @@ ldap.group-search-filter=(cn=trino_*)
188
195
ldap.group-search-member-attribute =member
189
196
```
190
197
191
- The following configuration is an example for an Active Directory
198
+ The following configuration is an example for an Active Directory
192
199
(single query, attribute-based) group provider:
193
200
194
201
``` properties
@@ -205,9 +212,3 @@ ldap.use-group-filter=false
205
212
206
213
ldap.user-member-of-attribute =memberOf
207
214
```
208
-
209
- ### Integration with access control
210
-
211
- Groups resolved by the LDAP provider are passed to Trino’s system access
212
- control engine. Access control rules can reference these group names to grant
213
- or restrict permissions.
0 commit comments