21 грудня 2012 р.

Використання pGina як засіб аутентифікації користувачів у MS Windows



pGina це Open Source проект що дозволяє замінити традиційний модуль автентифікатор "MS Windows" (Windows Credential Provider/GINA) на програму pGina з додатковими можливостями за рахунок використання зовнішніх модулів - плагінів. Як це працює можна ознайомитися на сторінці проекту.

У поточній версії 3.0 присутні наступні додаткові модулі:
  • LocalMachine - Плагін "local machine" управляє автентифікацією і авторизацією за обліковими рахунками користувачів , які існують на локальному комп'ютері.
  • LDAP Authentication - Плагін  "LDAP Authentication" надає послуги автентифікації через LDAP сервер.
  • MySQL Logger - Плагін  "MySQL Logger"  протоколює різноманітні події в базі даних MySQL.
  • MySQL Authentication - Плагін  "MySQL Authentication" проводить автентифікацію  користувачів облікові рахунки котрих збереженні у базі даних MySQL.
  • Single User - Плагін  "Single User" змушує усі автентифікації та авторизації користувачів для входу до комп'ютеру робити  під одним локальним обліковим записом.
  • Session Limit - Плагін  "Session Limit"  буде автоматично відключати сеанси користувачів після закінчення певного періоду часу.
  • Email Authentication - Плагін  "Email Authentication" під'єднується до вказаних поштових серверів за протоколами POP3 або IMAP та робить спробу автентифікації на цьому сервері.
  • Modify Username - Плагін " Modify Username" зазвичай не буде використовуватися по собі. Він призначений для зміни введеного імені користувача, щоб вони відповідали певним стандартам первинного плагіну.

У версії 3.1 тестується плагін для роботи з сервером RADIUS.
У попередніх версіях була можливість об'єднувати плагіни послідовно.
Я проводив тестування,  з плагіном  "Email Authentication" запитань не виникло, з плагіном  "LDAP Authentication" треба було трохи розібратися. Може кому пригодяться мої етапи.

Завдання використати "pGina" та плагін "LDAP Authentication" при підключенні до розгорнутої "Acive Directory" Microsoft Windows домену "ec.khai.edu".
Acive Directory це LDAP-сумісна реалізація інтелектуальної служби каталогів корпорації Microsoft для операційних систем родини Windows NT.
Для отримання відповідей на запити LDAP "Acive Directory" потрібно зробити автентифіковане підключення до LDAP сервера використовуючи певний обліковий запис. Засобами керування обліковий записів я створив обліковий запис "ladpconnectonly" у домені "ec.khai.edu", глобальну групу "BIND". Обліковому запису "ladpconnectonly" назанчив групу BIND як головну, і виключив його з групи "Domain Users".


Надалі, я почав спроби підключитися до "Acive Directory" з консолі під керуванням операціної системи FreeBSD використовуючи "ldapsearch".
ldapsearch -h ec.khai.edu -p 389 -W -D "ladpconnectonly@ec.khai.edu" -x -b "dc=ec,dc=khai,dc=edu" samaccountname=petrov
Набираємо пароль на запит з консолі "Enter LDAP Password:" для користувача "ladpconnectonly".
Отримаємо відповідь про користувача "Acive Directory" "petrov", домену "ec.khai.edu" на кшталт цієї:
# extended LDIF
#
# LDAPv3
# base <DC=ec,DC=khai,DC=edu> with scope subtree
# filter: samaccountname=petrov
# requesting: ALL
#
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: user
 
Тепер спробую налаштувати плагін "LDAP Authentication" у pGina.



 Як видно з зображень, у розділі "Plugin Selection" вибираємо плагін "LDAP Authentication" у якості дозволенного модуля аутентифікації та заходимо до конфігурації плагіну.
LDAP Host прописуємо адресу нашого сервера де знаходитися  контролер домен з "Acive Directory". Відмічаємо "Search for DN", у полі "Search filter" прописуємо параметри "filter" для пошуку когерентного атрибута, у нашому випадку це "samaccountname=%u", де %u - буде замінено програмою "pGina" на введене ім'я користувача при авторизації, у моєму випадку це "petrov".
У полі "Search Context(s)" прописуємо параметри контексту пошуку у LDAP сервері, у моєму випадку це ім'я домену "ec.khai.edu" записане у такій формі: "dc=ec,dc=khai,dc=edu". За бажанням можна зменшити коло пошуку у LDAP сервері задавши ім'я організаційної одинці де збережено користувача, наприклад "ou=students,dc=ec,dc=khai,dc=edu".
У полях "Search  DN", "Search  Password" прописуємо ім'я користувача та його пароль під котрим ми робимо запити до LDAP сервера.
У розділі "Simulation", підрозділ "Simulated Logon UI" у полі Username/Password вводимо  ім'я та пароль користувача з "Acive Directory", та натискаємо на клавішу з зображенням зеленого трикутника. В полі "Live Log", можемо бачити журнал роботи сеансу підключення та помилки.
Підрозділ "Results" показує результати аутентифікації, авторизації, програм шлюзу.

Дуже цікаві статті на цю тему:
Використання pGina для автентификації в системах MS Windows (частина 1).
Використання pGina для автентификації в системах MS Windows (частина 2). 

Викорситання pGina як двофакторну автентифікацію з YubiKey OTP.


Немає коментарів:


Коли забув ти рідну мову, біднієш духом ти щодня...
When you forgot your native language you would become a poor at spirit every day ...

Д.Білоус / D.Bilous
Рабів до раю не пускають. Будь вільним!

ipv6 ready