Объедините аутентификацию JWT и LDAP с Symfony 4 - PullRequest
0 голосов
/ 09 июля 2020

Я хочу пройти аутентификацию с помощью проверки JWT и LDAP. Мне нужен метод "login_check" для проверки имени пользователя и пароля. Вот мои файлы security.yaml и services.yaml. Кажется, я не могу проверить с помощью LDAP и восстановить токен.

security.yaml

security:
encoders:
    App\Entity\Users:
        algorithm: argon2i
# https://symfony.com/doc/current/security.html#where-do-users-come-from-user-providers
providers:
    my_ldap:
        ldap:
            service: Symfony\Component\Ldap\Ldap
            base_dn: cn=read-only-admin,dc=example,dc=com
            search_dn: "dc=example,dc=com"
            search_password: password
            default_roles: ROLE_USER
            uid_key: uid
            
firewalls:
    dev:
        pattern: ^/(_(profiler|wdt)|css|images|js)/
        security: false
    registration:
        pattern: ^/api/users
        anonymous: true
        stateless: true
        methods: [POST]
    login:
        pattern:  ^/api/login
        stateless: true
        anonymous: true
        json_login:
            check_path: /api/login_check
            success_handler: lexik_jwt_authentication.handler.authentication_success
            failure_handler: lexik_jwt_authentication.handler.authentication_failure
              

    refresh:
        pattern: ^/api/token/refresh
        stateless: true
        anonymous: true

    api:
        pattern:   ^/api
        stateless: true
        anonymous: true
        guard:
            authenticators:
                - lexik_jwt_authentication.jwt_token_authenticator 
    main:
        anonymous: lazy
        provider: my_ldap
        form_login_ldap:
            service: Symfony\Component\Ldap\Ldap
            dn_string: 'dc=example,dc=com'
            query_string: '(&(uid={username})(memberOf=cn=users,ou=Services,dc=example,dc=com))'

services.yaml

....
Symfony\Component\Ldap\Ldap:
    arguments: ['@Symfony\Component\Ldap\Adapter\ExtLdap\Adapter']
Symfony\Component\Ldap\Adapter\ExtLdap\Adapter:
    arguments:
        -   host: ldap.forumsys.com
            port: 389
            options:
                protocol_version: 3
                referrals: false
...