Migration v8 to v9: Issues linking existing users (LDAP) to Google Authentication

Hi everyone,

We are currently in the process of migrating a large project from Concrete CMS 8.5.20 to 9.3.7. It has been a complex journey due to many custom tools we’ve developed, but we are almost there.

We are facing a challenge with Authentication Types. In version 8, we used an add-on for LDAP authentication. In version 9, we have switched to the native Google Authentication.

The issue:

  • New users can log in via Google without any problems.

  • However, for users migrated from v8 (who previously used LDAP), when they try to log in via Google, they get the following error:

    “A user account already exists for this email, please log in and attach from your account page.”

It seems Concrete is attempting to register them as new users because it doesn’t find a link between the Google identity and the existing row in the Users table. Since we have a large number of users, asking them to log in manually and “attach” the account is not a viable option.

My questions:

  1. Is there a specific table in v9 where these external identity mappings are stored? (We want to check if there are leftovers from the LDAP add-on or if we can pre-populate the mapping).

  2. Is there a configuration flag (via concrete.php) to allow “auto-linking” based on email address during the first Google login?

Any guidance on which table or service handles this link in v9 would be greatly appreciated.

Thanks in advance!