2016-07-28 13 views
0

私はSymfony 3.1を使用してアプリケーションを開発しており、Ldap認証に問題があります。次のコード:Symfony 3.1 Ldap認証が動作しない

services.yml

ldap: 
    class: 'Symfony\Component\Ldap\LdapClient' 
    arguments: 
     - server.test.br # host 
     - 389   # port 
     - 3   # version 
     - false  # SSL 
     - false  # TLS 

のsecurity.yml

security: 
providers: 
    chain_provider: 
     chain: 
      providers: [my_ldap] 
    my_ldap: 
     ldap: 
      service: ldap 
      base_dn: dc=test,dc=br 
      search_dn: cn=s00027,ou=Contas Administrativas de Sistemas,ou=Departamento de Tecnologia,dc=test,dc=br 
      search_password: pass 
      default_roles: ROLE_USER 
      uid_key: sAMAccountName 
      filter: '({uid_key}={username})' 

firewalls: 
    dev: 
     pattern: ^/(_(profiler|wdt)|css|images|js)/ 
     security: false 

    admin: 
     anonymous: true 
     pattern: ^/ 
     form_login_ldap: 
      provider: chain_provider 
      service: ldap 
      dn_string: 'sAMAccountName={username}' 
      check_path: /login_check 
      login_path: /login 
     logout: 
      path: /logout 
      target:/

    default: 
     form_login_ldap: 
      provider: chain_provider 
      service: ldap 
      dn_string: "uid={username},DC=test,DC=br" 
      check_path: /login_check 
      login_path: /login 

access_control: 
    - { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY } 
    - { path: ^/admin, roles: ROLE_ADMIN } 

SecurityController.php

/** 
* @Route("/login_check", name="login_check") 
*/ 
public function loginAction(Request $request) { 

    $authenticationUtils = $this->get('security.authentication_utils'); 

    $error = $authenticationUtils->getLastAuthenticationError(); 

    $lastUsername = $authenticationUtils->getLastUsername(); 

    return $this->render(
        'AppBundle:Security:login.html.twig', array(
       // last username entered by the user 
       'last_username' => $lastUsername, 
       'error' => $error, 
        ) 
    ); 
} 

私は私ができるすべてのものを試してみましたが、ログでエラーを受け取っていませんLdapClientクラスに関するメッセージのみが推奨されなくなりました。

誰でもお手伝いできますか?お願いします。

+0

'var/logs/dev.log'をチェックして、あなたのURLに' app_dev.php'を追加してDEV環境を使ってみましたか?デバッグURLに詳細情報が表示されることがあります。 –

+0

はい!私はsymfony 3.1とldapのすべてのStackoverflowチュートリアルを検索しましたが、成功しませんでした。しかし、助けてくれてありがとう! – fabionvs

+0

これはADかOpenLDAPですか? 'sAMAccountName'の見た目から私はADを推測するでしょうか?もしそうなら 'dn_string: 'sAMAccountName = {username}''を 'dn_string: '{username}'' – ChadSikorra

答えて

1

こんにちはSymfony 3開発者!

私はsymfonyの3.1ですが、問題はガードを使用していなかったと思いますLdapToolsBundle

を使用して問題を解決しました。しかし、LdapToolsを使用して私の問題を解決し、それは非常に扱いやすいです。 ありがとうございました!

0

Symfony LDAPソリューションが動作しない場合は、「FR3DLdapBundle」とFOSBundleを使用する必要があります。

私はここのチュートリアルを持っている: https://alvinbunk.wordpress.com/2016/03/25/symfony-ad-integration/

私はすべての時間それを使用するので、これは間違いなく、動作します。


EDIT#2

私は、AD認証が容易になり二記事作成:私は上記のあなたの問題を解決する必要があり https://alvinbunk.wordpress.com/2017/09/07/symfony-ldap-component-ad-authentication/

を。