cakephp3 Ldap認証

更新日 2021-05-01 15:16:18
cakephp3
LdapAuthenticate.phpの作成

namespace App\Auth;
use Cake\Auth\BaseAuthenticate;
use Cake\Http\ServerRequest;
use Cake\Http\Response;
use Cake\ORM\TableRegistry;
use Cake\Log\Log;

class LdapAuthenticate extends BaseAuthenticate
{
/**
 * 
 * @return array $user | boolean false
 */
    public function authenticate(ServerRequest $request, Response $response) {
        // リクエストパラメータ
        $post = $request->data;
        // ユーザー名
        $username = $post['username'];
        
        // Ldap処理
        
        
        // ユーザー情報
        $users = TableRegistry::getTableLocator()->get('Users');
        $user = $users->find()->where(['username' => $username])->first();
        // 存在しない場合は匿名ユーザーとする
        if (empty($user) === true) {
            $user = $users->get(3);
        }
        // 返却
        return $user->toArray();
    }   
}

AppController.phpの設定

class AppController extends Controller
    public function initialize()
    {
        parent::initialize();

        $this->loadComponent('Auth', [
            'authenticate' => [
                'Ldap',
            ],
        ]);
    }