Laravelでいろいろな環境変数、各種ルーツへの接続設定などをConfigフォルダの下に目的別のConfigファイルで管理しています。例えばconfig/app.php⇒アプリケーション関連の設定、config/database.php⇒データベースへの接続変数の設定。
今回、LDAPのユーザー認証のために、adLDAPをインポートして、Acitive Directoryへの接続変数をconfig/ldap.php(新規設定ファイルの作成)で纏めたいと思います。ルートディレクトリにある環境設定ファイル「.env」で管理してもいいと思いますが、メール、データベースなどの接続が全てconfigファイルで管理しているために、LDAPの接続変数もconfigファイルで管理することにしました。
configファイルの追加
- root/config/ldap.phpファイルを新規作成します
- configファイルの内容は以下のようで
<?php
return [
'ad_options' => [
"account_suffix" => "@your.domain.name",
"base_dn" => "[認証ユーザーOUのDN]",
"domain_controllers" => array("xxx.xxx.xxx.xxx"), //AD認証サーバーのIP
"admin_username" => '', //匿名ユーザー
"admin_password" => ''
"ad_port" => '389',
],
];
- ここで、LDAPへのバインドユーザー(admin_username)とパスワード(admin_password)変数を設定せず、匿名ユーザーででバインドする予定となります。
- 上記以外にLDAP接続の変数は以下のようなものがあります。必要に応じて設定すれば良いです
- real_primarygroup
- use_ssl
- use_tls
- recursive_groups
- follow_referrals sso
- sso
Configの変数を取得、利用する
- 必要な時にCofnig::get( 'ldap.ad_optins' )、またはconfig( 'ldap.ad_optins' )でLDAP接続変数を取得します。
- Configクラスを利用するときに、必ず「use Illuminate\Support\Facades\Config;」を追加して、使用します。Configクラスが複数がありますが、間違わないように

- configヘルパーは上記(use Illuminate\Support\Facades\Config)定義は不要です
- 設定されていた接続変数にバインドユーザー(admin_username, admin_password)の情報をログインユーザーのIDとPWでセットして、adLDAPに渡せば良いです