3

I wanted to try the new LDAP component in Symfony 2.8 and started to play with it few days ago. However I don't really get it and have problems to authenticate the users. I have followed this article: http://symfony.com/blog/new-in-symfony-2-8-ldap-component

Here are my configuration files:

# app/config/services.yml
services:
    app.ldap:
        class: Symfony\Component\Ldap\LdapClient
        arguments: ["ldaps://ldap.uni-rostock.de"]

and:

# app/config/security.yml
security:
    providers:
        # in_memory:
        #    memory: ~
        app_users:
            ldap:
                service: app.ldap
                base_dn: ou=people,o=uni-rostock,c=de
                search_dn: uid=tester,ou=people,o=uni-rostock,c=de
                search_password: testpass
                #filter: (sAMAccountName={username})
                filter: (uid={username})
                default_roles: ROLE_USER

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

        admin:
            provider:  app_users
            stateless: true
            pattern:   ^/admin
            http_basic_ldap:
                service: app.ldap
                dn_string: "{username}"

Here is a guide (only in German, but the essential part is the code) to connecting to the server: http://www.itmz.uni-rostock.de/en/software/windows/universitaetsweite-dienste/ldap-authentifizierungsserver/

When I run the server like this: php app/console server:run -vvv and open http://localhost:8000/admin I'm prompted to enter the credentials. Unfortunately I'm not passing through even though I tried many times and I'm very sure I didn't make a typo. In the console there is only this relevant line:

[Fri Mar 11 08:39:32 2016] 127.0.0.1:36632 [401]: /admin

I'm unauthorized (401) and prompted again to enter the credentials.

Am I maybe missing something? I have tried many different combinations, put the values in quotes, tried to add:

access_control:
    - { path: ^/admin, roles: ROLE_USER }

to the security.yml, but it didn't help.

There is also another question with somewhat similar problematic:

LDAP Authentication with Symfony 2.8

but I couldn't really move further.

Does someone maybe have an idea what else could I try?

cezar
  • 11,616
  • 6
  • 48
  • 84
  • 1
    This is OpenLDAP I'm assuming? I think the issue would be `dn_string: "{username}"`. Unless you're typing a full DN when prompted for a username/password, this will not work. For example, if all your users are in a common OU/container you could make it something like: `dn_string: uid={username},ou=people,o=uni-rostock,c=de`. – ChadSikorra Mar 11 '16 at 14:56
  • You nailed it! Now it works. I was confused with this value, because I thought I should enter there the variable in the same format as I am entering it in the prompt. And I'm entering only the plain username. Would you please post your comment as an answer? – cezar Mar 11 '16 at 15:07

1 Answers1

3

Just for reference, adding this in as the answer:

The issue would be dn_string: "{username}". Unless you're typing a full DN when prompted for a username/password, this will not work. For example, if all your users are in a common OU/container you could make it something like: dn_string: uid={username},ou=people,o=uni-rostock,c=de.

Glad this fixed it!

ChadSikorra
  • 2,829
  • 2
  • 21
  • 27