feat: add LDAP authentication as per-tenant login method
Add LDAP as a third authentication option alongside local password and Microsoft Entra ID SSO. Per-tenant configuration supports Active Directory, OpenLDAP, and FreeIPA with configurable attribute mapping, search-then-bind and direct-bind methods, encrypted bind credentials (AES-256-GCM), profile sync on login, and user auto-provisioning via external identity linking. Includes admin UI for connection settings with test-connection button, login page LDAP form, 25 new PHPUnit tests, and de/en translations. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -15,6 +15,7 @@ use MintyPHP\Service\User\UserServicesFactory;
|
||||
class AuthServicesFactory
|
||||
{
|
||||
private ?TenantSsoService $tenantSsoService = null;
|
||||
private ?LdapAuthService $ldapAuthService = null;
|
||||
private ?MicrosoftOidcStateStoreService $microsoftOidcStateStoreService = null;
|
||||
private ?MicrosoftOidcService $microsoftOidcService = null;
|
||||
private ?ApiTokenService $apiTokenService = null;
|
||||
@@ -125,11 +126,19 @@ class AuthServicesFactory
|
||||
return $this->tenantSsoService ??= new TenantSsoService(
|
||||
$this->authGatewayFactory->createAuthTenantGateway(),
|
||||
$this->authRepositoryFactory->createTenantMicrosoftAuthRepository(),
|
||||
$this->authRepositoryFactory->createTenantLdapAuthRepository(),
|
||||
$this->authGatewayFactory->createAuthSettingsGateway(),
|
||||
$this->authGatewayFactory->createAuthCryptoGateway()
|
||||
);
|
||||
}
|
||||
|
||||
public function createLdapAuthService(): LdapAuthService
|
||||
{
|
||||
return $this->ldapAuthService ??= new LdapAuthService(
|
||||
new LdapConnectionGateway()
|
||||
);
|
||||
}
|
||||
|
||||
public function createMicrosoftOidcStateStore(): MicrosoftOidcStateStoreService
|
||||
{
|
||||
return $this->microsoftOidcStateStoreService ??= new MicrosoftOidcStateStoreService($this->sessionStore);
|
||||
|
||||
Reference in New Issue
Block a user