con4gis/ldap

认证包,包含用于Contao后端和前端使用外部认证所需的功能

安装: 212

依赖: 0

建议者: 0

安全: 0

星标: 1

关注者: 6

分支: 5

开放问题: 4

类型:contao-bundle

v1.5.1 2022-06-30 12:30 UTC

This package is auto-updated.

Last update: 2024-09-03 16:59:37 UTC


README

此包为Contao后端和前端用户/组添加了LDAP功能。

要求

要使一切正常工作,您需要安装并激活PHP扩展"php-ldap"。没有它,您无法安装和使用此包。除此之外,您至少需要Contao版本4.9。

安装

步骤 1: 安装包

您可以使用composer或contao管理器安装包。对于composer,使用以下命令

$ composer require con4gis/ldap

在contao管理器中,您可以在"con4gis/ldap"下找到该包。

步骤 2: 配置包

安装后,您需要将文件"security.yml"和"services.yml"添加到您的安装根目录中的config文件夹中。如果不存在"config.yml"文件,则创建它。然后,您需要将这些配置添加到这些文件中

services.yml

services:
    Symfony\Component\Ldap\Ldap:
        arguments: ['@Symfony\Component\Ldap\Adapter\ExtLdap\Adapter']
    Symfony\Component\Ldap\Adapter\ExtLdap\Adapter:
        arguments:
            -   host: ad.yourldapserver.com
                port: 389
                encryption: tls
                options:
                    protocol_version: 3
                    referrals: false

在services.yml中,您需要更改主机为您的LDAP服务器可用的位置。如果您不使用标准端口,请在此处更改它(SSL通常是端口636)。对于加密,您可以选择"none"(不推荐)、"ssl"和"tls"。

security.yml

security:
    providers:
        con4gis_ldap:
            ldap:
                service: Symfony\Component\Ldap\Ldap
                base_dn: 'dc=ad,dc=yourldapserver,dc=com'
                search_dn: 'cn=Administrator,cn=Users,dc=ad,dc=yourldapserver,dc=com'
                search_password: '*Password*'
                default_roles: ROLE_USER
                uid_key: uid
                filter: '(objectClass=user)'

        chain_provider_backend:
            chain:
                provider: [contao.security.backend_user_provider, con4gis_ldap]

        chain_provider_frontend:
            chain:
                provider: [contao.security.frontend_user_provider, con4gis_ldap]        

    firewalls:  
        contao_backend:
            provider: chain_provider_backend
            form_login_ldap:
                service: Symfony\Component\Ldap\Ldap
                dn_string: 'uid={username},ou=Users,dc=ad,dc=yourldapserver,dc=com'

        contao_frontend:
            provider: chain_provider_frontend     
            form_login_ldap:
                service: Symfony\Component\Ldap\Ldap
                dn_string: 'uid={username},ou=Users,dc=ad,dc=yourldapserver,dc=com'

在此配置文件中,您需要更改一些内容。这些包括"base_dn"、"search_dn"、"search_password"、"uid_key"、"filter"以及"contao_backend"和"contao_frontend"中的两个"dn_string"。

uid_key需要包含包含用户名的属性。通常它是"uid"或"sAMAccountName"(对于Windows AD)。您可以使用"filter"过滤可以登录的用户。这是完全可选的。如果您不希望这样做,请删除该行。

dn_string可以包含两个占位符:"{"username}"和"{uid_key}"。这些占位符将被登录请求的用户名以及您之前设置的uid_key所替换。

config.yml

imports:
    - { resource: security.yml }
    - { resource: services.yml }

在此处,您需要导入新创建的文件。

在这些更改之后,您需要清除Symfony缓存以使一切正常工作。

步骤 3: 配置组

现在您可以通过登录到后端来配置其他一切。您可以从您的LDAP服务器导入用户和成员组,并选择一个管理员组。