如果有人能帮助我在symfony2 Framework上使用LDAP身份验证,我真的很感激。主要的想法是使用正确的LDAP来了解所有用户而不使用互联网表而无需登录(插入用户名/密码),让我们说我想要像自动识别一样。
答案 0 :(得分:1)
您正在寻找单点登录。您真的不必处理LDAP,但必须正确配置您的Web服务器。 Web服务器正在处理认证而不是您的应用程序。然后,您可以从REMOTE_USER环境变量中获取用户登录信息。它是您可信赖的凭据。 In Symfony is special security provider for that(从2.6版开始)。
更新:为IIS添加了更多具体信息
如果一切顺利,您可以从上面的链接使用Symfony remote_user提供程序。您还需要在数据库中拥有用户(即只有域登录,电子邮件,可能还有一些标志)才能使用角色,记录等。还要确保您的服务器位于本地Intranet区域。
更新2 :添加了Symfony配置示例
<强> security.yml 强>
security:
role_hierarchy:
ROLE_ADMIN: ROLE_USER
ROLE_SUPER_ADMIN: [ROLE_USER, ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH]
providers:
in_memory:
memory:
users:
- { name: 'DOMAIN\login', roles: [ 'ROLE_USER' ] }
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
secured_area:
pattern: ^/demo
remote_user:
provider: in_memory
access_control:
- { path: ^/demo/secured/login, roles: ROLE_ADMIN }
这是使用AcmeDemoBundle进行干净的Symfony 2.6安装的示例。尝试自己玩它。在主页上,您根本没有登录。如果Windows身份验证正在运行且您的登录名为DOMAIN \ login,则在单击“运行演示”按钮后将登录。如果您尝试访问/demo/secured/login
,您将获得403.我希望它足以作为介绍Symfony可以为您做什么。