我有一个使用 Symfony API 平台的项目。我想在我的项目中使用 LexikJWTAuthenticationBundle,但我的用户存储在 Active Directory 中,所以我设置了一个 LDAP UserProvider。我试图结合以下两个文档的设置但没有成功:
这是我所做的
在 security.yml 中:
security:
providers:
my_ldap:
ldap:
service: Symfony\Component\Ldap\Ldap
base_dn: OU=organization_unit,DC=domain,DC=local
search_dn: "OU=organization_unit,DC=domain,DC=local"
search_password: '%env(resolve:LDAP_PASSWORD)%'
default_roles: ROLE_USER
uid_key: uid
firewalls:
login:
pattern: ^/api/login
stateless: true
anonymous: true
json_login:
provider: my_ldap
check_path: /api/login_check
success_handler: lexik_jwt_authentication.handler.authentication_success
failure_handler: lexik_jwt_authentication.handler.authentication_failure
api:
pattern: ^/api/
stateless: true
guard:
provider: my_ldap
authenticators:
- lexik_jwt_authentication.jwt_token_authenticator
在 services.yml 中:
Symfony\Component\Ldap\Ldap:
arguments: ['@Symfony\Component\Ldap\Adapter\ExtLdap\Adapter']
Symfony\Component\Ldap\Adapter\ExtLdap\Adapter:
arguments:
- host: '%env(resolve:LDAP_HOST)%'
port: 636
# encryption: tls
options:
protocol_version: 3
referrals: false
但是当我尝试使用以下内容将请求发送到 my_domain/api/login_check 时:
{
"username": "my_user",
"password": "my_password"
}
我收到此错误作为响应:
{"code":401,"message":"Invalid credentials."}