質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
LDAP

LDAPは、ディレクトリデータベースにアクセスするためのプロトコルです。ディレクトリデータベースとは、ネットワークに存在するメールアドレスや環境などさまざまな情報を一元的に管理するサービスのことで、クライアントはLDAPサーバにアクセスしてユーザ名から検索や追加などの操作することができます。

CakePHP

CakePHPは、PHPで書かれたWebアプリケーション開発用のフレームワークです。 Ruby on Railsの考え方を多く取り入れており、Railsの高速性とPHPの機動性を兼ね備えています。 MVCやORMなどを「規約優先の考え方」で利用するため、コードを書く手間を省くことができます。 外部のライブラリに依存しないので、単体での利用が可能です。

Active Directory

Active Directoryは、 Windows Serverの機能の一つで、 マイクロソフトによって作られたディレクトリサービスです。 ネットワーク上に存在する様々なハードや利用者情報のアクセス権限などを一元管理が出来ます。

Q&A

0回答

3061閲覧

cakephp 3 Ldap認証

退会済みユーザー

退会済みユーザー

総合スコア0

LDAP

LDAPは、ディレクトリデータベースにアクセスするためのプロトコルです。ディレクトリデータベースとは、ネットワークに存在するメールアドレスや環境などさまざまな情報を一元的に管理するサービスのことで、クライアントはLDAPサーバにアクセスしてユーザ名から検索や追加などの操作することができます。

CakePHP

CakePHPは、PHPで書かれたWebアプリケーション開発用のフレームワークです。 Ruby on Railsの考え方を多く取り入れており、Railsの高速性とPHPの機動性を兼ね備えています。 MVCやORMなどを「規約優先の考え方」で利用するため、コードを書く手間を省くことができます。 外部のライブラリに依存しないので、単体での利用が可能です。

Active Directory

Active Directoryは、 Windows Serverの機能の一つで、 マイクロソフトによって作られたディレクトリサービスです。 ネットワーク上に存在する様々なハードや利用者情報のアクセス権限などを一元管理が出来ます。

0グッド

0クリップ

投稿2018/05/22 04:36

CakePHP3でLdap認証を用いたログイン機能を作っています。
以下波線部分は、参考にしたサイト

AppControllerについて
https://book.cakephp.org/3.0/ja/controllers/components/authentication.html#id24
カスタム認可オブジェクトの作成
カスタム認可オブジェクトの利用

LdapAuthorizeについて
http://keicode.com/cgi/php-ldap-authentication.php

しかし、実装中に以下のエラーメッセージが発生しました。
どうすればLDAPの認証ができるでしょうか

発生している問題・エラーメッセージ

Authentication adapter "Ldap" was not found.

該当のソースコード(AppController)

php

1<?php 2namespace App\Controller; 3use Cake\Controller\Controller; 4 5class AppController extends Controller 6{ 7 public function initialize() 8 { 9 parent::initialize(); 10 $this->loadComponent('RequestHandler'); 11 $this->loadComponent('Flash'); 12 oadComponent('Auth',[ 13 'loginRedirect' => [ 14 'controller' => 'example' 15 'action' => 'index' 16 ], 17 'logoutRedirect' => [ 18 'controller' => 'Users', 19 'action' => 'login'], 20 'authenticate' => ['Ldap'], 21 ]); 22 $this->Auth->config('authorize', [ 23 'Ldap', // app 内の認可オブジェクト 24 'AuthBag.Combo', // プラグインの認可オブジェクト 25 ]); 26 } 27

該当のソースコード(Ldap認証処理)

php

1<?php 2namespace App\Auth; 3 4use Cake\Auth\BaseAuthorize; 5use Cake\Http\ServerRequest; 6 7class LdapAuthorize extends BaseAuthorize 8{ 9 public function authorize($user, ServerRequest $request) 10 { 11 //LDAP認証処理 12 $host = 'ldap://xxx.xxx.xxx.xxx 13 $port = xxx 14 $rdn = 'DC=xxx,DC=local'; 15 16 $cnn = ldap_connect($host, $port); 17 if ($cnn) { 18 $bind = ldap_bind($cnn, $rdn); 19 if ($bind) { 20 // バインド成功 21 $user = 'xxx'; 22 $base_dn = 'DC=xxx,DC=local'; 23 $filter = "(sAMAccountName=$user)"; 24 $attributes = array('givenName'); 25 26 $search = ldap_search($cnn, $base_dn, $filter, $attributes); 27 $entries = ldap_get_entries($cnn, $search); 28 29 var_dump($search); 30 var_dump($entries); 31 32 } else { 33 // バインド失敗 34 } 35 } 36 } 37}

試したこと

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問