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',
],
]);
}