:: Visual Foxpro, Foxpro for DOS
Прошу немного помочь со сквозной аутентификацией пользователей через LDAP, Active Directiry
Sergeynizamov
Автор

Сообщений: 76
Дата регистрации: 21.09.2018
я тут немного изменил код, правда написан он буд для 7 версии фокса,
вот ссылка forum.foxclub.ru
вот имя пользователей определяет и находит в домене, а вот как пароль проверить, который в домене и на компьютере пользователя, понять не могу, точнее сообразить!
буду благодарен очень, если кто чем с может помочь или подсказать!

вот кусок кода, переработанный
LOCAL oConn, oCmd, oRS
oConn = CREATEOBJECT('ADODB.Connection')
oConn.Provider = 'ADsDSOObject'
oCmd = CREATEOBJECT('ADODB.Command')
oConn.Open('Active Directory Provider')
oCmd.ActiveConnection = oConn
LOCAL cConn, cFields
cConn = 'LDAP://прописать домен свой домен'
cFields = 'name, samAccountName, adspath, description, objectSID'
oCmd.CommandText = "SELECT " + cFields + ;
" FROM '" + cConn + "'" + ;
" WHERE objectClass='user' AND objectCategory='Person'" + ;
" ORDER BY name"
oCmd.Properties('SearchScope') = 2
oCmd.Properties('Page Size') = 1000
oRS = oCmd.Execute()
oRS.MoveFirst()
DO WHILE !oRS.EOF()
LOCAL aDesc(1), cDesc, cUser, cSAM, ;
cAds, n, cSID, cOU, sys_komp
cUser = NVL(oRS.Fields('name').Value, '')
cSAM = NVL(oRS.Fields('samAccountName').Value, '')
cAds = NVL(oRS.Fields('adspath').Value, '')
aDesc = oRS.Fields('description').Value
cDesc = IIF(VARTYPE(aDesc) = 'X', '', ;
NVL(aDesc(1), ''))
sys_komp = allt(padr(substr(sys(0),at(' ',sys(0))+at(' ',sys(0),2)-at(' ',sys(0))+1),30))
*** проверим найдет ли меня и имя меня с компьютера
If alltr(upper(cSAM)) == alltr(upper(sys_komp))
susp
messagebox('Нашел себя',48,'Сообщение')
endif
cSID = 'S'
FOR EACH n IN oRS.Fields('objectSID').Value
cSID = cSID + '-' + allt(str(n))
ENDFOR
cOU = PADR((ALLTRIM(STRTRAN(SUBSTR(cAds, ;
AT('OU=', cAds)+3, AT('DC=', cAds) - ;
(AT('OU=', cAds)+4)), ',OU=', '/'))), 50)
oRS.MoveNext()
ENDDO
Ratings: 0 negative/0 positive
Re: Прошу немного помочь со сквозной аутентификацией пользователей через LDAP, Active Directiry
ssa

Сообщений: 13007
Откуда: Москва
Дата регистрации: 23.03.2005
Sergeynizamov
как пароль проверить
Какой пароль и на каком основании собрался проверять?

------------------
Лень - это неосознанная мудрость.
Ratings: 0 negative/0 positive
Re: Прошу немного помочь со сквозной аутентификацией пользователей через LDAP, Active Directiry
Sergeynizamov
Автор

Сообщений: 76
Дата регистрации: 21.09.2018
пароль который есть в домене проверить с паролем на компьютере пользователя
Ratings: 0 negative/0 positive
Re: Прошу немного помочь со сквозной аутентификацией пользователей через LDAP, Active Directiry
Sergeynizamov
Автор

Сообщений: 76
Дата регистрации: 21.09.2018
как то можно это реализовать на фоксе
Ratings: 0 negative/0 positive
Re: Прошу немного помочь со сквозной аутентификацией пользователей через LDAP, Active Directiry
ssa

Сообщений: 13007
Откуда: Москва
Дата регистрации: 23.03.2005
Sergeynizamov
пароль который есть в домене проверить с паролем на компьютере пользователя
А ты тут при чем? Пользователь в винду зашел? Пароль при этом проверил? Ты кто такой, чтобы его проверять? С какого перепугу тебе давать пароль пользователя? Ты чем-то отличаешься от хакера, чтобы тебе на блюдечке с золотой каемочкой выдать пароль и наделить тебя правом его проверять? Ты видел хоть раз, чтобы программы с виндовой аутентификацией спрашивали и проверяли пароль?

------------------
Лень - это неосознанная мудрость.
Ratings: 0 negative/0 positive
Re: Прошу немного помочь со сквозной аутентификацией пользователей через LDAP, Active Directiry
Sergeynizamov
Автор

Сообщений: 76
Дата регистрации: 21.09.2018
я же не написал что мне пароль надо узнать!
мне его надо СРАВНИТЬ!
ЕСЛИ ВЫ КОД ВНИМАТЕЛЬНО ПОСМОТРЕЛИ ТО ТАМ ЕСТЬ УСЛОВИЕ IF, ГДЕ СРАВНИВАЕТСЯ ИМЯ ПОЛЬЗОВАТЕЛЯ (НА КОМПЬЮТЕРЕ) И ИМЯ ПОЛЬЗОВАТЕЛЯ (С ДОМЕНА)!
ЕСЛИ ВЫ ТУТ НАХОДИТЕСЬ ДЛЯ ТОГО ЧТО БЫ ГРУБИТЬ, ТО Я С ВАМИ НЕ СОБИРАЮСЬ В ПЕРЕПАЛКУ И ДАЛЬНЕЙШЕЕ ОСУЖДЕНИЕ.
Ratings: 0 negative/0 positive
Re: Прошу немного помочь со сквозной аутентификацией пользователей через LDAP, Active Directiry
ssa

Сообщений: 13007
Откуда: Москва
Дата регистрации: 23.03.2005
Sergeynizamov
я же не написал что мне пароль надо узнать!
мне его надо СРАВНИТЬ!
ЕСЛИ ВЫ КОД ВНИМАТЕЛЬНО ПОСМОТРЕЛИ ТО ТАМ ЕСТЬ УСЛОВИЕ IF, ГДЕ СРАВНИВАЕТСЯ ИМЯ ПОЛЬЗОВАТЕЛЯ (НА КОМПЬЮТЕРЕ) И ИМЯ ПОЛЬЗОВАТЕЛЯ (С ДОМЕНА)!
ЕСЛИ ВЫ ТУТ НАХОДИТЕСЬ ДЛЯ ТОГО ЧТО БЫ ГРУБИТЬ, ТО Я С ВАМИ НЕ СОБИРАЮСЬ В ПЕРЕПАЛКУ И ДАЛЬНЕЙШЕЕ ОСУЖДЕНИЕ.
Его уже сравнила винда. А вопросы заданы для обдумывания, а не для поиска в них обид себя любимого.

------------------
Лень - это неосознанная мудрость.
Ratings: 0 negative/0 positive
Re: Прошу немного помочь со сквозной аутентификацией пользователей через LDAP, Active Directiry
dimuhametov

Сообщений: 1562
Откуда: Костанай
Дата регистрации: 01.11.2008
LogonUser чем не подходит forum.foxclub.ru ?


------------------
Незнание делает жизнь такой интересной.
Ratings: 0 negative/0 positive
Re: Прошу немного помочь со сквозной аутентификацией пользователей через LDAP, Active Directiry
pasha_usue

Сообщений: 3649
Откуда: Е-бург
Дата регистрации: 06.10.2006
Sergeynizamov
пароль который есть в домене проверить с паролем на компьютере пользователя
А на компьютере пользователя нет пароля. И даже нет хэша от пароля, хэш на контроллере домена лежит.
Ratings: 0 negative/0 positive
Re: Прошу немного помочь со сквозной аутентификацией пользователей через LDAP, Active Directiry
ssa

Сообщений: 13007
Откуда: Москва
Дата регистрации: 23.03.2005
pasha_usue
Sergeynizamov
пароль который есть в домене проверить с паролем на компьютере пользователя
А на компьютере пользователя нет пароля. И даже нет хэша от пароля, хэш на контроллере домена лежит.
Да товарищ, похоже, совершенно не в теме, но никак этого не может понять и пойти таки поизучать основы доменной авторизации дабы не задавать тут "странные" вопросы.

------------------
Лень - это неосознанная мудрость.
Ratings: 0 negative/0 positive
Re: Прошу немного помочь со сквозной аутентификацией пользователей через LDAP, Active Directiry
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Sergeynizamov
пароль который есть в домене проверить с паролем на компьютере пользователя
В домене нет пароля как такового. На компьютере пользователя тоже (хэш там по идее есть - сколько то там последних входов винда запоминает и если DC отвалился то впустит юзера - но это отключаемо, конечно). Что-то может быть на "дисках восстановления", но я не в курсе что именно - но точно не пароль в открытом виде.


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Прошу немного помочь со сквозной аутентификацией пользователей через LDAP, Active Directiry
of63

Сообщений: 25244
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
Возможно пароль винды невостановим... Но в аське недавно, в треде "Аська сдохла" нашли восстановитель пароля в исходном виде... Но раз "точно не пароль в открытом виде"... поверим на слово )
Ratings: 0 negative/0 positive
Re: Прошу немного помочь со сквозной аутентификацией пользователей через LDAP, Active Directiry
Sergeynizamov
Автор

Сообщений: 76
Дата регистрации: 21.09.2018
Спасибо! всем! за помощь! и за то что объяснили!
Ratings: 0 negative/0 positive
Re: Прошу немного помочь со сквозной аутентификацией пользователей через LDAP, Active Directiry
_vit

Сообщений: 5175
Дата регистрации: 29.07.2002
Если честно я не понял что надо ТС, но есть одна зацепка с которой можно вопрос раскручивать дальше.

"Сквозная аутентификация" - говоря простым языком, пользователь один раз логинится в систему и далее при запуске разных там программ ему не надо заново вводить пароль.

Когда пользователь логинится, система проверяет соответствие введенного пароля с паролем в некой базе данных безопасности (как проверяет опустим, возможно нам эти тонкости и не понадобятся). Если пароль проходит проверку, система создает маркер доступа - access token. Каждый процесс (программа) имеет копию маркера доступа того пользователя от имени которого она выполняется.

Далее система когда программа пытается взаимодействовать с защищаемым объектом или пытается выполнить системную задачу требующую привилегий, использует этот маркер доступа для определения позволить эту операцию или нет.
Что есть защищаемый объект? Это объект системы который может иметь дескриптор безопасности, например файл, процесс, поток, объекты синхронизации и т.п.

Исходя из этого я бы предположил что задача ТС состоит в том чтобы создать приложение, которое будет использовать маркер доступа.

Не знаю угадал или нет.
Ratings: 0 negative/1 positive
Re: Прошу немного помочь со сквозной аутентификацией пользователей через LDAP, Active Directiry
Sergeynizamov
Автор

Сообщений: 76
Дата регистрации: 21.09.2018
Sergeynizamov
я тут немного изменил код, правда написан он буд для 7 версии фокса,
вот ссылка forum.foxclub.ru
вот имя пользователей определяет и находит в домене, а вот как пароль проверить, который в домене и на компьютере пользователя, понять не могу, точнее сообразить!
буду благодарен очень, если кто чем с может помочь или подсказать!

вот кусок кода, переработанный
LOCAL oConn, oCmd, oRS
oConn = CREATEOBJECT('ADODB.Connection')
oConn.Provider = 'ADsDSOObject'
oCmd = CREATEOBJECT('ADODB.Command')
oConn.Open('Active Directory Provider')
oCmd.ActiveConnection = oConn
LOCAL cConn, cFields
cConn = 'LDAP://прописать домен свой домен'
cFields = 'name, samAccountName, adspath, description, objectSID'
oCmd.CommandText = "SELECT " + cFields + ;
" FROM '" + cConn + "'" + ;
" WHERE objectClass='user' AND objectCategory='Person'" + ;
" ORDER BY name"
oCmd.Properties('SearchScope') = 2
oCmd.Properties('Page Size') = 1000
oRS = oCmd.Execute()
oRS.MoveFirst()
DO WHILE !oRS.EOF()
LOCAL aDesc(1), cDesc, cUser, cSAM, ;
cAds, n, cSID, cOU, sys_komp
cUser = NVL(oRS.Fields('name').Value, '')
cSAM = NVL(oRS.Fields('samAccountName').Value, '')
cAds = NVL(oRS.Fields('adspath').Value, '')
aDesc = oRS.Fields('description').Value
cDesc = IIF(VARTYPE(aDesc) = 'X', '', ;
NVL(aDesc(1), ''))
sys_komp = allt(padr(substr(sys(0),at(' ',sys(0))+at(' ',sys(0),2)-at(' ',sys(0))+1),30))
*** проверим найдет ли меня и имя меня с компьютера
If alltr(upper(cSAM)) == alltr(upper(sys_komp))
susp
messagebox('Нашел себя',48,'Сообщение')
endif
cSID = 'S'
FOR EACH n IN oRS.Fields('objectSID').Value
cSID = cSID + '-' + allt(str(n))
ENDFOR
cOU = PADR((ALLTRIM(STRTRAN(SUBSTR(cAds, ;
AT('OU=', cAds)+3, AT('DC=', cAds) - ;
(AT('OU=', cAds)+4)), ',OU=', '/'))), 50)
oRS.MoveNext()
ENDDO
подскажите пожалуйста как тут группу можно определить.
т.е.есть 2 группы
1. продавец
2. старшие продавцы
, так вот в каждой группе есть по 5 человек
как можно подключится к группе и там уже найти его информацию о нем
Ratings: 0 negative/0 positive
Re: Прошу немного помочь со сквозной аутентификацией пользователей через LDAP, Active Directiry
ssa

Сообщений: 13007
Откуда: Москва
Дата регистрации: 23.03.2005
Sergeynizamov
как можно подключится к группе и там уже найти его информацию о нем
Что такое "подключиться к группе"? Как вы себе это представляете? В общем-то, обычно просто определяют вхождение какого-то SID в группу и на основании этого раздают права.

------------------
Лень - это неосознанная мудрость.
Ratings: 0 negative/0 positive
Re: Прошу немного помочь со сквозной аутентификацией пользователей через LDAP, Active Directiry
Sergeynizamov
Автор

Сообщений: 76
Дата регистрации: 21.09.2018
т.е. вы хотите сказать, что если есть группа "продавцы" и у них будет свой SID, так же как и у группы "Старшие продавцы", тоже будет свой уникальный SID, я Вас правильно понял?

cSID = 'S'
FOR EACH n IN oRS.Fields('objectSID').Value
cSID = cSID + '-' + allt(str(n)) - это и будет определения доступа к определенной группе ?
Ratings: 0 negative/0 positive
Re: Прошу немного помочь со сквозной аутентификацией пользователей через LDAP, Active Directiry
Sergeynizamov
Автор

Сообщений: 76
Дата регистрации: 21.09.2018
Хорошо, давайте по другому задам вопрос!
можно ли вывести информацию в какой ГРУППЕ находиться пользователь AD?
Ratings: 0 negative/0 positive
Re: Прошу немного помочь со сквозной аутентификацией пользователей через LDAP, Active Directiry
pasha_usue

Сообщений: 3649
Откуда: Е-бург
Дата регистрации: 06.10.2006
cFields = cFields + ", memberof"

Не проверял.
Ratings: 0 negative/0 positive
Re: Прошу немного помочь со сквозной аутентификацией пользователей через LDAP, Active Directiry
Sergeynizamov
Автор

Сообщений: 76
Дата регистрации: 21.09.2018
pasha_usue
cFields = cFields + ", memberof"
Не проверял.
Честно нет!
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 54 (Гостей: 54)

© 2000-2024 Fox Club 
Яндекс.Метрика