From 7fc4b8ff6bdcb9789ba89390a17b2c0700707952 Mon Sep 17 00:00:00 2001 From: Bruno Nardini Date: Fri, 25 Oct 2024 17:28:53 -0300 Subject: [PATCH 1/2] feat: add Google LDAP vendor Signed-off-by: Bruno Nardini --- plugins/catalog-backend-module-ldap/src/ldap/client.ts | 4 ++++ .../catalog-backend-module-ldap/src/ldap/vendors.ts | 10 ++++++++++ 2 files changed, 14 insertions(+) diff --git a/plugins/catalog-backend-module-ldap/src/ldap/client.ts b/plugins/catalog-backend-module-ldap/src/ldap/client.ts index 48a3eedfb8..61dd05f437 100644 --- a/plugins/catalog-backend-module-ldap/src/ldap/client.ts +++ b/plugins/catalog-backend-module-ldap/src/ldap/client.ts @@ -25,6 +25,7 @@ import { AEDirVendor, ActiveDirectoryVendor, DefaultLdapVendor, + GoogleLdapVendor, FreeIpaVendor, LdapVendor, } from './vendors'; @@ -236,6 +237,7 @@ export class LdapClient { if (this.vendor) { return this.vendor; } + const clientHost = this.client?.host || ''; this.vendor = this.getRootDSE() .then(root => { if (root && root.raw?.forestFunctionality) { @@ -244,6 +246,8 @@ export class LdapClient { return FreeIpaVendor; } else if (root && 'aeRoot' in root.raw) { return AEDirVendor; + } else if (clientHost === 'ldap.google.com') { + return GoogleLdapVendor; } return DefaultLdapVendor; }) diff --git a/plugins/catalog-backend-module-ldap/src/ldap/vendors.ts b/plugins/catalog-backend-module-ldap/src/ldap/vendors.ts index 8b84002c20..eac8481c3e 100644 --- a/plugins/catalog-backend-module-ldap/src/ldap/vendors.ts +++ b/plugins/catalog-backend-module-ldap/src/ldap/vendors.ts @@ -89,6 +89,16 @@ export const AEDirVendor: LdapVendor = { }, }; +export const GoogleLdapVendor: LdapVendor = { + dnAttributeName: 'dn', + uuidAttributeName: 'uid', + decodeStringAttribute: (entry, name) => { + return decode(entry, name, value => { + return value.toString(); + }); + }, +}; + // Decode an attribute to a consumer function decode( entry: SearchEntry, From 415aeb3803b41e3d7ee1d2c3e973cdf722f427f5 Mon Sep 17 00:00:00 2001 From: Bruno Nardini Date: Fri, 25 Oct 2024 18:56:28 -0300 Subject: [PATCH 2/2] Add Support for Google LDAP Vendor Signed-off-by: Bruno Nardini --- .changeset/heavy-phones-shave.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/heavy-phones-shave.md diff --git a/.changeset/heavy-phones-shave.md b/.changeset/heavy-phones-shave.md new file mode 100644 index 0000000000..4f268d81ac --- /dev/null +++ b/.changeset/heavy-phones-shave.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-catalog-backend-module-ldap': minor +--- + +Add Support for Google LDAP Vendor