SymfonyでLDAP(Active Directory)を使ったユーザ認証

参考サイト
https://symfony.com/doc/3.4/components/ldap.html
https://symfony.com/doc/3.4/security/ldap.html
https://alvinbunk.wordpress.com/2017/09/07/symfony-ldap-component-ad-authentication/

PHPでLDAPを使うために

php.iniでldapを有効にする必要があります。
extension=ldapがコメントアウトされていたので解除しました。
libsasl.dllファイルの確認
今回はxampp環境で実行しました。
C:\xampp\apache\bin、C:\xampp\php内にlibsasl.dllがありますが、バージョンがphpとapacheで異なる場合には失敗するようです。
今回はphp内のファイルが新しかったため、apache側のlibsasl.dllを置き換えました。

下記のように設定し、Basic認証でログインすることができました。

設定箇所抜粋

# security.yml
security:
    providers:
        my_ldap:
            ldap:
                service: Symfony\Component\Ldap\Ldap
                base_dn: dc=domain,dc=com
                search_dn: "CN=admin,DC=domain,DC=com"
                search_password: password
                default_roles: ROLE_USER
                uid_key: sAMAccountName
    firewalls:
        main:
            provider: my_ldap
            pattern:  ^/
            http_basic_ldap:
                service: Symfony\Component\Ldap\Ldap
                dn_string: 'DOMAIN\{username}'

# services.yml
services:
    Symfony\Component\Ldap\Ldap:
        arguments: ['@Symfony\Component\Ldap\Adapter\ExtLdap\Adapter']
    Symfony\Component\Ldap\Adapter\ExtLdap\Adapter:
        arguments:
            -   host: 192.168.1.10
                port: 389
                encryption: none
                options:
                    protocol_version: 3
                    referrals: false