kamiyonanayo/laravel-kldap-auth

LDAP Authentication for Laravel

1.0.0 2024-01-04 11:11 UTC

This package is auto-updated.

Last update: 2024-05-04 12:35:10 UTC


README

LaravelのLDAP認証用のライブラリ

使い方

インストール

Composer 経由でインストール

composer require kamiyonanayo/laravel-kldap-auth

ライブラリの設定ファイルのコピー

artisanのvendor:publishコマンドで設定ファイルをconfigフォルダにコピーする

php artisan vendor:publish --tag=kldap-auth-config

ライブラリの設定ファイルを修正

config/kldap-auth.php の内容を環境に合わせて修正する

認証設定ファイルの修正

認証設定ファイル(config/auth.php)の認証プロバイダのドライバを kldap にし kldap_connectionmodel を追加する。

  • kldap_connection には config("kldap-auth.connections") に存在するキーを指定する。
  • model はモデルクラスを指定する。

例auth.php

return [
    /*
    |--------------------------------------------------------------------------
    | User Providers
    |--------------------------------------------------------------------------
    |
    | All authentication drivers have a user provider. This defines how the
    | users are actually retrieved out of your database or other storage
    | mechanisms used by this application to persist your user's data.
    |
    | If you have multiple user tables or models you may configure multiple
    | sources which represent each model / table. These sources may then
    | be assigned to any extra authentication guards you have defined.
    |
    | Supported: "database", "eloquent"
    |
    */
    'providers' => [
        'users' => [
            'driver' => 'kldap',
            'kldap_connection' => 'ldap',
            'model' => App\Models\User::class,
        ],

        // 'users' => [
        //     'driver' => 'database',
        //     'table' => 'users',
        // ],
    ],
];

イベント

イベントクラス発生契機
\Kamiyonanayo\LaravelLdapAuth\Events\Auth\KLdapValidated::classLDAP認証が成功した場合
\Kamiyonanayo\LaravelLdapAuth\Events\Auth\KLdapSynchronizingDatabse::classLDAP認証の成功後DB同期直前
\Kamiyonanayo\LaravelLdapAuth\Events\Auth\KLdapSynchronizedDatabse::classLDAP認証の成功後DB同期直後
\Kamiyonanayo\LaravelLdapAuth\Events\Auth\KLdapRegistered::classログイン成功後のデータベース同期処理でユーザーデータが作成された場合
\Kamiyonanayo\LaravelLdapAuth\Events\Auth\KLdapChanged::classログイン成功後のデータベース同期処理で値が変更された場合
\Kamiyonanayo\LaravelLdapAuth\Events\Auth\KLdapFallbackValidateCredentials::classフォールバックが発生した場合
\Kamiyonanayo\LaravelLdapAuth\Events\Auth\KLdapFallbackValidated::classフォールバックで認証が成功した場合
\Illuminate\Auth\Events\Registered::classユーザーデータが作成された場合(設定(fire_laravel_registered_event)で制御可能)

認証フィルター

認証処理カスタマイズしたい場合

\Kamiyonanayo\LaravelLdapAuth\Filter\Filter::class を継承してクラスを作成し 設定ファイルの ldap_filter で指定する。

class で クラス名を指定して parameters でコンストラクタに渡す値を指定する。

DB同期

DB同期処理をカスタマイズしたい場合

\Kamiyonanayo\LaravelLdapAuth\Database\Hydrators\Hydrator::class を継承してクラスを作成し 設定ファイルの database_sync.hydrators で指定する。