针对LDAP服务器进行身份验证
编辑本页警告:您正在浏览的文档欧宝体育电话欧宝娱乐app下载地址Symfony 3.0,现已不再维护。
读本页的更新版本用于Sy欧宝娱乐app下载地址mfony 6.2(当前稳定版本)。
针对LDAP服务器进行身份验证
欧宝娱乐app下载地址Symfony提供了使用LDAP服务器的不同方法。
安全组件提供:
- 的
ldap
用户提供程序,使用LdapUserProvider类。与所有其他用户提供程序一样,它可以与任何身份验证提供程序一起使用。 - 的
form_login_ldap
身份验证提供程序,用于使用登录表单对LDAP服务器进行身份验证。与所有其他身份验证提供程序一样,它可以与任何用户提供程序一起使用。 - 的
http_basic_ldap
身份验证提供程序,用于使用HTTP Basic对LDAP服务器进行身份验证。与所有其他身份验证提供程序一样,它可以与任何用户提供程序一起使用。
这意味着以下场景将起作用:
- 在LDAP服务器上检查用户密码并获取用户信息。这可以使用LDAP用户提供程序和LDAP表单登录或LDAP HTTP基本身份验证提供程序来完成。
- 在从另一个源(例如,使用FOSUserBundle的数据库)获取用户信息时,根据LDAP服务器检查用户密码。
- 从LDAP服务器加载用户信息,同时使用另一种身份验证策略(例如,基于令牌的预身份验证)。
Ldap配置参考
看到SecurityBundle配置("security")参阅完整的LDAP配置参考(form_login_ldap
,http_basic_ldap
,ldap
).下面将介绍一些更有趣的选项。
配置LDAP客户端
所有机制实际上都需要事先配置好的LDAP客户端。提供程序被配置为使用一个名为ldap
,但您可以在安全组件的配置中覆盖此设置。
LDAP客户端可以使用以下服务定义进行简单配置:
- YAML
- XML
- PHP
1 2 3 4 5 6 7 8 9 10
# app / config / services.yml服务:ldap:类:“欧宝娱乐app下载地址Symfony \ \ Ldap \ LdapClient组件”参数:-我的服务器#主机-389#端口-3.#版本-假# SSL-真正的# TLS
使用LDAP用户提供程序获取用户
如果希望从LDAP服务器获取用户信息,可能需要使用ldap
用户提供者。
- YAML
- XML
- PHP
12 3 4 5 6 7 8 9 10 11 12 13
# app / config / security.yml安全:#……提供者:my_ldap:ldap:服务:ldapbase_dn:dc =示例中,dc = comsearch_dn:“cn = read-only-admin, dc =示例中,dc = com”search_password:密码default_roles:ROLE_USERuid_key:uid
的ldap
用户提供程序支持许多不同的配置选项:
uid_key
类型:字符串
默认的:sAMAccountName
这是用于作为其UID的条目的键。这取决于您的LDAP服务器实现。常用的值有:
sAMAccountName
userPrincipalName
uid
针对LDAP服务器进行身份验证
可以使用表单登录或HTTP基本身份验证提供程序对LDAP服务器进行身份验证。
它们的配置与非ldap对应的配置完全相同,只是增加了两个配置键:
dn_string
类型:字符串
默认的:{username}
这个键定义了字符串的形式,用于从用户名组成用户DN。的{username}
字符串将被试图进行身份验证的人的实际用户名替换。
例如,如果您的用户在表单中有DN字符串uid =爱因斯坦,dc =示例中,dc = com
,则dn_string
将uid = {username}, dc =示例中,dc = com
.
下面提供了这两种方法的示例form_login_ldap
而且http_basic_ldap
.
表单登录的配置示例
- YAML
- XML
- PHP
12 3 4 5 6 7 8 9 10 11 12 13
# app / config / security.yml安全:#……防火墙:主要:#……form_login_ldap:login_path:登录check_path:login_check#……服务:ldapdn_string:“uid = {username}, dc =例子,dc = com”
HTTP Basic配置举例
- YAML
- XML
- PHP
1 2 3 4 5 6 7 8 9 10 11
# app / config / security.yml安全:#……防火墙:主要:#……http_basic_ldap:#……服务:ldapdn_string:“uid = {username}, dc =例子,dc = com”
此工作,包括代码示例,是根据创作共用BY-SA 3.0许可证。