connectholland/ldap-bundle

此包已被废弃,不再维护。没有建议的替代包。

为各种现有用户包提供 LDAP 验证。

安装: 2,037

依赖关系: 0

建议者: 0

安全: 0

星级: 1

关注者: 10

分支: 1

开放问题: 0

类型:symfony-bundle

1.0.0 2017-11-07 15:04 UTC

This package is auto-updated.

Last update: 2023-05-24 01:55:47 UTC


README

Build Status Coverage Status

该包扩展了 Symfony LDAP 组件的 LDAP 验证功能,增加了自动从数据库等创建/获取用户的能力。这使您能够轻松地将 LDAP 验证添加到现有的身份验证包。

使用 Composer 安装

运行以下命令将包添加到您的项目的 composer.json 文件中

$ composer require connectholland/ldap-bundle

启用包

在内核中启用包

// app/AppKernel.php

public function registerBundles()
{
    $bundles = array(
        // ...
        new ConnectHolland\LdapBundle\ConnectHollandLdapBundle(),
        // ...
    );
}

配置包

该包需要在您的 security.yml 文件中进行以下配置才能正常工作

# app/config/security.yml
security:
    # ...

    providers:
        my_ldap:
            connect_holland_ldap: # Configuration part of this bundle.
                connection:
                    host: ldap.example.com
                user_factory:
                    type: doctrine # Currently 2 types available (doctrine and sulu). Custom user factories can be defined through a 'service' key with the id of the service.
                    user_class: 'AppBundle\Entity\User'
                    username_column: username
                    user_property_map: # Mapping of LDAP attributes (keys) to user properties (values).
                        uid: username
                        givenname: firstname
                        sn: lastname
                        mail: email
                base_dn: ou=users,dc=example,dc=com
                search_dn: ~
                search_password: ~
                default_roles:
                    - ROLE_ADMIN
                uid_key: uid

    firewalls:
        somename:
            # ...
            form_login_ldap:
                provider: my_ldap
                service: security.user.provider.concrete.my_ldap.client # Service created by the bundle.
                dn_string: 'uid={username},ou=users,dc=example,dc=com'

有关更多信息以及各种选项的详细说明,请参阅 Symfony 文档中的针对 LDAP 服务器进行身份验证

为 Sulu CMS 配置包

要将 LDAP 验证添加到 Sulu CMS,请将以下配置添加到 app/config/admin/security.yml

# app/config/admin/security.yml

security:
    # ...
    
    ldap:
        connect_holland_ldap: # Configuration part of this bundle.
            connection:
                host: ldap.example.com
            user_factory:
                type: sulu 
                user_property_map: # Mapping of LDAP attributes (keys) to user properties (values).
                    uid: username
                    givenname: contact.first_name
                    sn: contact.last_name
                    mail: email
            base_dn: ou=users,dc=example,dc=com
            search_dn: ~
            search_password: ~
            default_roles:
                - User # The name of the role within your Sulu CMS.
            uid_key: uid

    firewalls:
        admin:
            # ...

            form_login_ldap:
                login_path: sulu_admin.login
                check_path: sulu_admin.login_check
                success_handler: sulu_security.authentication_handler
                failure_handler: sulu_security.authentication_handler
                csrf_provider: security.csrf.token_manager
                provider: ldap
                service: security.user.provider.concrete.ldap.client
                dn_string: 'uid={username},ou=users,dc=example,dc=com'

根据您的 LDAP 配置调整 connect_holland_ldap 中的设置。

配置参考

connect_holland_ldap:
    connection:
        host: ldap.example.com
        port: 389
        encryption: ssl # tls or ssl
        options:
            protocol_version: 3
            referrals: false
    user_factory:
        type: sulu # doctrine or sulu
        service: ~ # Reference to your own user factory service.
        user_class: ~ # Fully qualified class name of your user entity. Only used for doctrine user factory type.
        username_column: ~ # Name of the username column. Only used for doctrine user factory type.
        user_property_map: # Mapping of LDAP attributes (keys) to user properties (values).
            uid: username
            givenname: firstname
            sn: lastname
            mail: email
    base_dn: ~
    search_dn: ~
    search_password: ~
    default_roles:
        - ~
    uid_key: sAMAccountName
    filter: '({uid_key}={username})'