Merge pull request #26923 from veenarm/fix-ldap-module-user-mapping

fix: ldap allow case sensitivity settings to force dn and memberOf to…
This commit is contained in:
Fredrik Adelöw
2024-10-22 13:29:46 +02:00
committed by GitHub
7 changed files with 381 additions and 19 deletions
+44 -16
View File
@@ -55,6 +55,8 @@ backend.add(import('@backstage/plugin-catalog-backend-module-ldap'));
The following configuration is a small example of how a setup could look for
importing groups and users from a corporate LDAP server.
Users and Groups can be configured for multiple `dn` entries as an array.
```yaml
catalog:
providers:
@@ -65,25 +67,24 @@ catalog:
dn: uid=ldap-reader-user,ou=people,ou=example,dc=example,dc=net
secret: ${LDAP_SECRET}
users:
dn: ou=people,ou=example,dc=example,dc=net
options:
filter: (uid=*)
map:
description: l
set:
metadata.customField: 'hello'
- dn: ou=people,ou=example,dc=example,dc=net
options:
filter: (uid=*)
map:
description: l
set:
metadata.customField: 'hello'
groups:
dn: ou=access,ou=groups,ou=example,dc=example,dc=net
options:
filter: (&(objectClass=some-group-class)(!(groupType=email)))
map:
description: l
set:
metadata.customField: 'hello'
- dn: ou=access,ou=groups,ou=example,dc=example,dc=net
options:
filter: (&(objectClass=some-group-class)(!(groupType=email)))
map:
description: l
set:
metadata.customField: 'hello'
```
These config blocks have a lot of options in them, so we will describe each
"root" key within the block separately.
These config blocks have a lot of options in them, so we will describe each "root" key within the block separately.
> NOTE:
>
@@ -303,6 +304,33 @@ map:
members: member
```
## Optional Vendor Configuration
In case the LDAP vendor isn't automatically detected by the module, an optional `vendor` configuration section is available which allows overriding the location for `dn` and `uuid` settings, and a case sensitivity setting.
#### vendor.dnAttributeName
Allows explicitly defining the name of the attribute that stores each entry's DN.
#### vendor.uuidAttributeName
Allows explicitly defining the name of the attribute that stores each entry's UUID.
#### vendor.dnCaseSensitive
Provides the ability to ignore case sensitivity issues with user/group mappings. If set to true, the ingestion will link user/members to groups whether their `dn`, `member`, or `memberOf` values have the right case or not.
```yaml
vendor:
# Attribute name override for the distinguished name (DN) of an entry.
dnAttributeName: dn
# Attribute name override for the unique identifier (UUID) of an entry.
uuidAttributeName: uuid
# Attribute to force values provided from dn and members/memberOf values all to lowercase.
# This is to resolve potential user/group mapping issues if case differences on dn strings.
dnCaseSensitive: true
```
## Customize the Provider
In case you want to customize the ingested entities, the provider allows to pass