Codeigniter рдореЗрдВ рдбреЛрдореЗрди (LDAP) рдкреНрд░рдорд╛рдгреАрдХрд░рдг

рдЫрд╡рд┐



рдпрд╣ рд▓реЗрдЦ рд╢реБрд░реБрдЖрддреА рдХреЛрдбрд┐рдирд╛рдЗрдЯрд░-рд╕реНрдХрд┐рдХреА, рдЬреИрд╕реЗ рдХрд┐ рдореЗрд░рд╛ рдЙрджреНрджреЗрд╢реНрдп рд╣реИред



рд░реВрд╕реА рдХрдВрдкрдирд┐рдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреА рдЖрдВрддрд░рд┐рдХ рд╕рд╛рдЗрдЯ рдмрдирд╛рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ, рдХреБрдЫ рдкреГрд╖реНрдареЛрдВ, рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдкрд╣реБрдВрдЪ рдХреЛ рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереАред рдЪреВрдВрдХрд┐ рд╕рднреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдбреЛрдореЗрди рдореЗрдВ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╕рд╛рдЗрдЯ рдкрд░ рдбреЛрдореЗрди рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред



рдЕрдкрдиреЗ рджрдо рдкрд░ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛, рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реИред рдЦреЛрдЬ рдЗрдВрдЬрди рдЕрднреА рддрдХ рд░рджреНрдж рдирд╣реАрдВ рдХрд┐рдП рдЧрдП рд╣реИрдВред рдореИрдВрдиреЗ рдмрд╕ рдЙрди рдЯреБрдХрдбрд╝реЛрдВ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рдЬреЛ рдореИрдВрдиреЗ рдкрд╛рдпрд╛ рдФрд░ рдЙрдиреНрд╣реЗрдВ рд░реВрд╕реА рдореЗрдВ рдПрдХ рдореЗрдВ рдорд┐рд▓рд╛ рджрд┐рдпрд╛ред



рдорд╛рди рд▓реЗрдВ рдХрд┐ CI рдкрд╣рд▓реЗ рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рд╣реИред рд╡реИрд╕реЗ, рдкрд╢реНрдЪрд┐рдореА рд╕рд╛рдЗрдЯреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдкрд░, рдХреЛрдбрд┐рдЧреНрдирд┐рдЯрд░ рдХреА рд╕реНрдерд╛рдкрдирд╛ рдФрд░ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдкрд░ рдХрдИ рдЕрдЪреНрдЫреЗ рдФрд░ рд╡реНрдпрд╛рдкрдХ рд╡реАрдбрд┐рдпреЛ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рд╣реИрдВред





рд▓рд╛рдпрдмреНрд░реЗрд░реА рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдЬреЛрдбрд╝реЗрдВ



рдмреЗрд╢рдХ, PHP рдореЗрдВ рд╣реА рдХреБрдЫ рдХрд╛рд░реНрдп рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣рдореЗрд╢рд╛ рддрд░реНрдХрд╕рдВрдЧрдд рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдЖрдЗрдП рдЖрдзрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ adLDAP рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд▓реЗрдВ ред рдЗрд╕рдореЗрдВ рд╡рд╣ рд╕рдм рдХреБрдЫ рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдЙрд╕рд╕реЗ рднреА рдЬреНрдпрд╛рджрд╛ред



рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдПрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП adldap.php рдФрд░ рдЗрд╕реЗ \ system \ application \ config \ рдореЗрдВ рдбрд╛рд▓реЗрдВ



<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');



$config['account_suffix'] = '@dom.ru';

$config['base_dn'] = 'DC=dom,DC=ru';

$config['domain_controllers'] = array ("DC01.dom.ru");

$config['ad_username'] = 'web_user';

$config['ad_password'] = 'web_passS8';

$config['real_primarygroup'] = true;

$config['use_ssl'] = false;

$config['use_tls'] = false;

$config['recursive_groups'] = true;








рдЗрд╕рдХреЗ рдмрд╛рдж, рдЖрдкрдХреЛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ред рд▓реЗрдХрд┐рди рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдЙрд╕реЗ рд╕реАрдЖрдИ рдореЗрдВ рдХреИрд╕реЗ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдмрд╛рдХреА рдХреА рддрд░рд╣? рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдиреЗ рдкрд╣рд▓реЗ рд╣реА рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдРрд╕рд╛ рдХрд┐рдпрд╛ рд╣реИ, рдФрд░ рдЗрд╕реЗ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рд╣реИ (рд╡рд╣ рджрд╛рд╡рд╛ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд▓рд╛рдЗрд╕реЗрдВрд╕ рдХрд╛ рдЙрд▓реНрд▓рдВрдШрди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ)ред рд╣рдо рдЗрд╕реЗ \ system \ l рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдореЗрдВ рдЬреЛрдбрд╝ рджреЗрдВрдЧреЗ рдФрд░ рдЗрд╕реЗ рдирд╛рдо рджреЗрдВрдЧреЗ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, Adldap.phpред



рдЙрдкрд░реЛрдХреНрдд рдЬреЛрдбрд╝рддреЛрдбрд╝ рдХреЗ рдмрд╛рдж, рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЛрдбрд┐рдирд┐рдЯрд░ рдореЗрдВ, рд╕рд╛рде рд╣реА рдЕрдиреНрдп, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:



$this->load->library('Adldap');

$this->adldap->authenticate($username, $password);








рд╣рдо рдПрдХ рдЫреЛрдЯрд╛ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреЛрдб рд▓рд┐рдЦреЗрдВрдЧреЗ



рдЗрд╕реЗ рдЖрд╕рд╛рди рдмрдирд╛рдПрдВред

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо рдФрд░ рдкрд╛рд╕рд╡рд░реНрдб рджрд░реНрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдлреЙрд░реНрдо рдмрдирд╛рдПрдБ:



<form_ рдХреНрд░рд┐рдпрд╛ = " info.dom.ru/login/gateway " рд╡рд┐рдзрд┐ = "рдкреЛрд╕реНрдЯ">

<input_ name = "рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо" рдкреНрд░рдХрд╛рд░ = "рдкрд╛рда" рдореВрд▓реНрдп = "рд▓реЙрдЧрд┐рди">

<input_ name = "рдкрд╛рд╕рд╡рд░реНрдб" рдкреНрд░рдХрд╛рд░ = "рдкрд╛рд╕рд╡рд░реНрдб" рдорд╛рди = "рдкрд╛рд╕рд╡рд░реНрдб">

<input_ рдкреНрд░рдХрд╛рд░ = "рд╕рдмрдорд┐рдЯ" рдирд╛рдо = "рд╕рдмрдорд┐рдЯ" рдореВрд▓реНрдп = "рд▓реЙрдЧрд┐рди" />

</ Form_>



рджреВрд╕рд░реЗ, рдбреЛрдореЗрди рдореЗрдВ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреЗ рд▓рд┐рдП рдирд┐рдпрдВрддреНрд░рдХ рдФрд░ рдлрд╝рдВрдХреНрд╢рди рд╣реАред рд▓реЗрдХрд┐рди рдбреЛрдореЗрди рдмрдбрд╝рд╛ рд╣реИ рдФрд░ рдХрдИ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╣реИрдВ, рдФрд░ рдпрджрд┐ рдЖрдк рдХреЗрд╡рд▓ рдкрд╛рд╕рд╡рд░реНрдб рдФрд░ рд▓реЙрдЧрд┐рди рдХреА рдЬрд╛рдВрдЪ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдбреЛрдореЗрди рдХреЗ рд╕рднреА рд╕рджрд╕реНрдпреЛрдВ рдХреЗ рдкрд╛рд╕ рд╕рд╛рдЗрдЯ рдХреЗ рд╕реАрдорд┐рдд рд╣рд┐рд╕реНрд╕реЗ рд╣реЛрдВрдЧреЗред



рдорд╣реАрди рдЯреНрдпреВрдирд┐рдВрдЧ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЬрд╛рдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдФрд░ рдкреИрд░рд╛рдореАрдЯрд░ рдЪрд╛рд╣рд┐рдП - рд╕рдореВрд╣ (рд╕рдХреНрд░рд┐рдп рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛)ред рдЖрдЗрдП рдЗрд╕реЗ рдирд╛рдо рджреЗрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП Web_Group, рдФрд░ рд╣рдорд╛рд░реЗ рджреНрд╡рд╛рд░рд╛ рдЖрд╡рд╢реНрдпрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдЬреЛрдбрд╝реЗрдВ:



<?php

//

class login extends Controller {



// ,

function gateway() {



//

$this->load->library('Adldap');



//

$authUser = $this->adldap->authenticate($this->input->post('username'), $this->input->post('password'));



//

$groupinfo = $this->adldap->user_ingroup($this->input->post('username'), 'Web_Group', 'NULL');



// $authUser $groupinfo

if ($authUser === true and $groupinfo === true) {



// ,

$data = array('username' => $this->input->post('username'), 'usergroup_access' => 'Web_Group', 'is_logged_in' => true);

$this->session->set_userdata($data);

redirect();

} else {

echo " ";

}

}

}








рд╡рд╣ рд╕рдм рд╣реИред рдЕрдм, рдХрд┐рд╕реА рдЕрдиреНрдп рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ, рдЖрдк рдЪреЗрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░, рдкрд░рд┐рдгрд╛рдо рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдкрд╣реБрдВрдЪ рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП:



function view_data() {



//

if ($this->session->userdata('is_logged_in') == true) {



echo " ";



} else {



echo " ";

}

}








рдЕрдм рдпрд╣ рдХреЗрд╡рд▓ рд╕рддреНрд░ рдХреЗ рд╡рд┐рдирд╛рд╢ рдХреЗ рдХрд╛рд░реНрдп рдХреЛ рдЬреЛрдбрд╝рдирд╛ рд░рд╣ рдЧрдпрд╛ (рд▓реЙрдЧрдЖрдЙрдЯ):



function logout() {

$this->session->sess_destroy();

redirect();

}








рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред



UPD: рдПрдХ рдФрд░ рджрд┐рд▓рдЪрд╕реНрдк LDAP рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдорд┐рд▓реАред



All Articles