anthonyedmonds/laravel-ldap-emulator

在本地环境中工作时会自动启动 LDAP 模拟器。

2.0.2 2024-08-30 09:12 UTC

This package is auto-updated.

Last update: 2024-09-30 09:19:36 UTC


README

在本地环境中工作时会自动启动 LDAP 模拟器。

Laravel 构建。

基于 LDAP Record 提供的 LDAP 模拟。

支持 Spatie's Laravel Permission 提供的角色。

安装

通过 Composer 添加库:composer require anthonyedmonds/laravel-ldap-emulator --dev

LdapEmulatorServiceProvider 添加到 bootstrap/providers.php

use AnthonyEdmonds\LaravelLdapEmulator\Providers\LdapEmulatorServiceProvider;

return [
    ...
    LdapEmulatorServiceProvider::class,
    ...
];

如果你手动加载服务提供者,则 LdapEmulatorServiceProvider 必须在 LdapRecord\Laravel\LdapServiceProvider 之后加载。

安装完成后,导出配置:php artisan vendor:publish --provider="AnthonyEdmonds\LaravelLdapEmulator\Providers\LdapEmulatorServiceProvider"

配置

所有配置都可以在发布的 config/ldap-emulator.php 文件中完成。

有关设置用户的进一步说明请参阅注释。

  • 为了效率,请将用户总数保持在最低限度
  • 你可以创建混合用户,这些用户可以自动导入或保留在活动目录中
  • 你只能将角色分配给自动导入的用户

使用方法

当你的系统 APP_ENV 键设置为 local 时,将启动 LDAP 模拟器实例。

除了配置要添加的用户池外,系统将像连接了 LDAP 服务器一样运行。

创建后,导入的用户不会更新,但如果 LdapRecord 设置为同步,则它们可以在登录时同步。

请注意,模拟器的功能有一些限制,这些限制在这里描述

身份验证

当调用 Auth::attempt() 时,将触发 Attempting 事件,并允许正在尝试登录的 LdapUser 登录。

如果你使用了一个首先调用 Auth::validate() 的库,如 Laravel Fortify,你将需要首先调用 setActingUser() 方法

Fortify::authenticateUsing(function ($request) {
    if (config('ldap-emulator.enabled') === true) {
        LdapEmulatorServiceProvider::setActingUser($request->username);
    }

    $validated = Auth::validate([
        'samaccountname' => $request->username,
        'password' => $request->password,
    ]);

    return $validated ? Auth::getLastAttempted() : null;
});

路线图

提出你的想法和建议的工单,或者提出你的贡献的拉取请求。