警告:

您正在浏览的文档欧宝体育电话欧宝娱乐app下载地址Symfony 4.0这是不再维护

考虑将您的项目升级到Symfony 5.3。欧宝娱乐app下载地址

Ldap组件

Ldap组件

Ldap组件提供连接Ldap服务器(OpenLDAP或Active Directory)的方法。

安装

1
作曲家需要symfony / ld欧宝娱乐app下载地址ap

或者,您可以克隆https://github.com/欧宝娱乐app下载地址symfony/ldap存储库。

请注意

如果在Symfony应用程序之外安装此组件,则必须使用欧宝娱乐app下载地址供应商/ autoload.php以启用Composer提供的类自动加载机制。读这篇文章为更多的细节。

使用

欧宝娱乐app下载地址Symfony \组件\ Ldap \ Ldap类提供了针对LDAP服务器进行身份验证和查询的方法。

Ldap类使用一个欧宝娱乐app下载地址Symfony适配器组件\ \ Ldap \ \ AdapterInterface与LDAP服务器通信。的适配器例如,对于PHP内置的LDAP扩展,可以使用以下选项进行配置:

宿主
LDAP服务器的IP或主机名
港口
访问LDAP服务器的端口
版本
使用的LDAP协议版本
加密
加密协议:ssltls没有一个(默认)
connection_string
您可以使用此选项代替宿主港口连接LDAP服务器
optReferrals
指定是否自动跟随LDAP服务器返回的引用
选项
中定义的LDAP服务器选项ConnectionOptions

例如,要连接一个start-TLS安全的LDAP服务器:

使用欧宝娱乐app下载地址Symfony \组件\ Ldap \ Ldapldap美元Ldap::创建“ext_ldap”数组“主机”=>我的服务器的“加密”=>“ssl”));

或者你可以直接指定一个连接字符串:

使用欧宝娱乐app下载地址Symfony \组件\ Ldap \ Ldapldap美元Ldap::创建“ext_ldap”数组“connection_string”=>“ldap: / /我的服务器:636”));

bind ()方法使用用户的区分名(DN)和密码验证先前配置的连接:

使用欧宝娱乐app下载地址Symfony \组件\ Ldap \ Ldap/ /……ldap美元->绑定$ dn美元的密码);

绑定之后(或者在LDAP服务器上启用匿名身份验证),您可以使用查询()方法:

使用欧宝娱乐app下载地址Symfony \组件\ Ldap \ Ldap/ /……美元的查询ldap美元->查询“dc 欧宝娱乐app下载地址= symfony, dc = com”’(& (objectclass =人)(ou =维护者))”);美元的结果美元的查询->执行();foreach美元的结果作为美元的条目//对结果做点什么

缺省情况下,LDAP条目是惰性加载的。如果您希望在一个调用中获取所有条目,并对结果数组做一些事情,您可以使用toArray ()方法:

使用欧宝娱乐app下载地址Symfony \组件\ Ldap \ Ldap/ /……美元的查询ldap美元->查询“dc 欧宝娱乐app下载地址= symfony, dc = com”’(& (objectclass =人)(ou =维护者))”);美元的结果美元的查询->执行()->toArray();//对结果数组做点什么

创建或更新条目

Ldap组件提供了创建新的Ldap条目、更新甚至删除现有条目的方法:

使用欧宝娱乐app下载地址Symfony \组件\ Ldap \ Ldap使用欧宝娱乐app下载地址Symfony \ Ldap \ \组件条目/ /……美元的条目条目“cn =法效力,dc = symfony, d欧宝娱乐app下载地址c = com”数组“锡”=>数组“fabpot”),对象类的=>数组“inetOrgPerson”),));entryManager美元ldap美元->getEntryManager();//创建新条目entryManager美元->添加美元的条目);//查找并更新现有条目美元的查询ldap美元->查询“dc 欧宝娱乐app下载地址= symfony, dc = com”’(& (objectclass =人)(ou =维护者))”);美元的结果美元的查询->执行();美元的条目美元的结果0];美元的条目->setAttribute“电子邮件”数组(电子邮件保护)));entryManager美元->更新美元的条目);//删除已存在的条目entryManager美元->删除条目“cn =测试用户,dc = sy欧宝娱乐app下载地址mfony, dc = com”));

这项工作,包括代码样本,是在一个创作共用BY-SA 3.0许可证。