|
|
|
NTLM Kerberos аудентификация в Indy10
|
|||
|---|---|---|---|
|
#18+
автортупым GET тупым GET не получится, как раз админстраторы и боролись, что бы это не проходило. -- http://www.podgoretsky.com ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2009, 13:05 |
|
||
|
NTLM Kerberos аудентификация в Indy10
|
|||
|---|---|---|---|
|
#18+
revda.info, капец... я дал готовое решение на инди, в разделе есть решение и на синапсе... вы загадочны... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2009, 13:15 |
|
||
|
NTLM Kerberos аудентификация в Indy10
|
|||
|---|---|---|---|
|
#18+
По вашему примеру Альт я получаю сообщение: Could not load SSL library не понимаю в чем тут проблема, код один к одному. Изменены имя,порт, имя и парол По ICS пока не нашел вменяемых данных ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2009, 13:34 |
|
||
|
NTLM Kerberos аудентификация в Indy10
|
|||
|---|---|---|---|
|
#18+
Слил стабильную ICS ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2009, 13:46 |
|
||
|
NTLM Kerberos аудентификация в Indy10
|
|||
|---|---|---|---|
|
#18+
здравствуйте... так вы еще и отладчиком пользоваться не умеете )))))) комедия... зачем вы лезете в то, что не понимаете... как это работает и зачем ))))))))))) Инди умеет пользоваться двумя типами реализаций ntlm... первая платформозависимая... SSPI пользуется виндовыми библиотеками... вторая "NTLM" универсальна и пользуется библиотеками OpenSSL (ics делает это аналогично), реализации синапса две нативная и OpenSSL. Тут вам не сливать надо... тут азбуку надо открывать ))))))))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2009, 13:59 |
|
||
|
NTLM Kerberos аудентификация в Indy10
|
|||
|---|---|---|---|
|
#18+
Знал-п дак и не совался сюда ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2009, 14:00 |
|
||
|
NTLM Kerberos аудентификация в Indy10
|
|||
|---|---|---|---|
|
#18+
Запрос вроде делаю в ICS, возвращается код 200, но чтобы забрать данные, какой-то изврат нужно проделать, так и не понял как забрать данные пока. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2009, 14:20 |
|
||
|
NTLM Kerberos аудентификация в Indy10
|
|||
|---|---|---|---|
|
#18+
Вроде как победа. С компонентом ICS удалось подгрузить страницу. То что все мне долго морочили голову страшными словами вылилось буквально в 6 строк кода: Код: plaintext 1. 2. 3. 4. 5. 6. Спасибо Анатолию, за подсказанные компоненты ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2009, 14:33 |
|
||
|
NTLM Kerberos аудентификация в Indy10
|
|||
|---|---|---|---|
|
#18+
Главный враг - это сам себе враг. -- http://www.podgoretsky.com ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2009, 14:53 |
|
||
|
NTLM Kerberos аудентификация в Indy10
|
|||
|---|---|---|---|
|
#18+
Поколупал ics... действительно ntlm отрабатывает первым (тут я ошибся... он у них тоже нативный, как и в синапсах), если не может отработать он, то выполняется basic... всё... в ics больше нет никаких других реализаций ) такая вот шляпа ) при чем написан обсуждаемый код с серьезными упущениями... начиная вот с этого места: Код: plaintext 1. 2. 3. 4. 5. 6. 7. все, дальше домен потеряли и он уже не используется (первый параметр): Код: plaintext 1. 2. 3. 4. 5. т.е. авторизоваться, используя полное пользовательское доменное имя, нельзя... такой вот "добрый вечер"... этот код не будет работать в лесе... FIRMA1.DOMAIN.COM\USER и FIRMA2.DOMAIN.COM\USER одно лицо? ) короче... хорошо там, где нас нет )) зы: починил SSPI модуль от инди (итого... поддерживаемый список теперь равен: Basic, Digest, Kerberos, NTLM)... файлить господам из атозет лень, зато теперь можно с авторизованной в домене машины ходить без указания юзера, тогда представляться будет текущим или указывать юзера явно с полным доменным именем: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. красота ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2009, 16:42 |
|
||
|
NTLM Kerberos аудентификация в Indy10
|
|||
|---|---|---|---|
|
#18+
У меня задачи были очень простые - отправить строчку и принять строчку. Мне просто интересно, ты Альт мега маньяк какой-то, зачем все это пишешь, в исходниках компонентов ковыряешься, это же время сколько надо ? Рад что есть такие люди как вы и есть такой форум как этот. Всем спасибо. Если ты Альт хочешь что-то предложить или сказать что Indy-починеный лучше - напиши, а то я не пойму на самом деле идеалогически какой компонент более правильный. Спасибо еще раз ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2009, 17:32 |
|
||
|
NTLM Kerberos аудентификация в Indy10
|
|||
|---|---|---|---|
|
#18+
Идеологически правильнее ICS, но если задачи простые, линейные и потоков мало, то подойдет и Инда. Главное понимать идеологию обеих систем. -- http://www.podgoretsky.com ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2009, 18:26 |
|
||
|
NTLM Kerberos аудентификация в Indy10
|
|||
|---|---|---|---|
|
#18+
revda.info, да ничего не хочу предложить. Зафиксировал результат для гугля и поиска по форуму. Идеологии Анатолия не про меня... я токарь ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2009, 18:37 |
|
||
|
NTLM Kerberos аудентификация в Indy10
|
|||
|---|---|---|---|
|
#18+
Альтrevda.info, да ничего не хочу предложить. Зафиксировал результат для гугля и поиска по форуму. Идеологии Анатолия не про меня... я токарь ) Точишь детали на потоке, или токарь одиночка? В первом случае Sinapse/Indi, во втором случае ICS Токарь и Интернет вполне совместимы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2009, 18:52 |
|
||
|
NTLM Kerberos аудентификация в Indy10
|
|||
|---|---|---|---|
|
#18+
Согласен ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2009, 18:57 |
|
||
|
NTLM Kerberos аудентификация в Indy10
|
|||
|---|---|---|---|
|
#18+
Альт... зы: починил SSPI модуль от инди (итого... поддерживаемый список теперь равен: Basic, Digest, Kerberos, NTLM)... Пытаюсь разобраться с авторизацией (правда не на прокси, а на сервере - но это сути не меняет) с использованием Kerberos. Нарвался на эту ветку. Пробую использовать Indy с IdAuthenticationSSPI. NTLM работает, но нужен Kerberos. Запретил на web-сервере NTLM. Получаю от сервера: HTTP/1.1 401 Unauthorized Content-Length: 1656 Content-Type: text/html Server: Microsoft-IIS/6.0 WWW-Authenticate: Negotiate X-Powered-By: ASP.NET Date: Mon, 12 Jul 2010 11:08:31 GMT Я так понимаю, этот модуль (IdAuthenticationSSPI) ничего другого, кроме Authorization: NTLM TlRMTVNTUAABAAAAB7IIogsACwA... серверу ответить не может (судя по исходникам) Стандартный от Delphi7 вообще не понимает одну WWW-Authenticate: Negotiate и ожидает WWW-Authenticate: NTLM Подправленный Альтом IdAuthenticationSSPI.pas (и новые версии отсюда ) пытаются ответить серверу так-же как и при NTLM, видимо благодаря RegisterAuthenticationMethod('Negotiate', TIdSSPINTLMAuthentication); в секции initialization модуля. Но сервер, естественно это не ест и присылает точно такой-же респонд как и при первой итерации. Поправил метод: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. Сервер съел, выдал пакет с 200 OK. Но "терзают смутные сомненья": а был ли тут Kerberos? Насколько я понимаю - соединение опять прошло по NTLM. Собственно вопрос: как мне переключится на Kerberos? Или оно само включится (внутри security.dll) как только будут соблюдены какие-нибудь условия? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2010, 15:30 |
|
||
|
NTLM Kerberos аудентификация в Indy10
|
|||
|---|---|---|---|
|
#18+
Alex S, ща копаюсь в той же теме. Менять NTLM на Negotiate в этих трёх местах бессмысленно и вредно, потому как это запись и получение собственно NTLM токенов. У Вас продолжало работать потому, видимо, что не перекомпилировался исправленный Вами модуль при сборке приложения. Чтоб системный модуль перекомпилировался, нужно его ещё компилятору тем или иным способом подсунуть, а так он обычно готовые .dcu из папки lib использует. Регистрируется этот IdAuthenticationSSPI для ещё и для Negotiate потому, что когда от сервера приходит заголовок WWW-Authenticate со словом Negotiate, это значит что сервер предполагает клиенту некоторую свободу выбора. Клиент может ответить токеном NTLM, и сервер типа станет по NTLM авторизовать. Но токеном Negotiate отвечать не нужно. А вот готовой реализации клиента Kerberos под Delphi (и уж тем более под Indy) я пока не нашёл. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2017, 14:06 |
|
||
|
NTLM Kerberos аудентификация в Indy10
|
|||
|---|---|---|---|
|
#18+
Хм.. Однако, наврал. На текущий момент, когда у меня заработал Kerberos и Negotiate под Indy 10 через SSPI, я понимаю ситуацию так: Если сервер предлагает авторизацию методом 'Negotiate', то отвечать нужно токенами со словом 'Negotiate'. Правда, получать такие токены нужно после передачи в AcquireCredentialsHandleW в качестве PackageName тоже имени 'Negotiate' Он будет немножко другой текст токенам делать. Аналогично с Kerberos-ом: пакет нужно указать 'Kerberos', и перед токенами писать 'Kerberos'. В общем, что прислали с сервера - то и продолжаем приписывать. В отличие от NTLM, Kerberos требует, чтоб ему при первом обращении к InitializeSecurityContextW в InitAndBuildType1Message аргументом pszTargetName передать не nil или пустую строку, а SPN (service principal name, см. https://msdn.microsoft.com/en-us/library/ms677949(v=vs.85).aspx). Его довольно часто можно собрать из URL, взяв хост и приписав к нему, например, 'HTTP/'. Если Negotiate в аналогичных условиях передать SPN, он может для формирования токенов выбрать алгоритм Kerberos, а если не передать - то точно выберет NTLM ( https://msdn.microsoft.com/en-us/library/ee498156.aspx). Итого, чтоб всё это завелось, пришлось 1) добавить в конструктор класса аутентификации аргумент MethodName, и прокидывать в него значение из IdHTTP.pas при вызовах после поиска посредством FindAuthClass. При создании объекта пакета в TIndySSPIClient.Create стал вместо конечного наследника с зашитым именем создавать его родительский класс, с передачей в конструктор этого имени метода в качестве имени пакета. В спецификацию обработчика TIdOnSelectAuthorization пришлось тоже добавить имя метода. 1.1) попутно заметил, что вызовы LAuth.AuthParams := лучше б делать перед вызовами метода Authentication у этого объекта, чтоб Authentication мог потенциально опираться на актуальные сведения. Правда, собственно опираться не понадобилось пока. 2) добавить в TIdSSPINTLMAuthentication обработчик SetRequest, и поменять ему в базовом классе AUri со string на TIdURI, чтоб таки передавал хост. А то был только путь на сервере. 3) добавить регистрацию этого класса ещё и для метода MICROSOFT_KERBEROS_NAME (эта константа объявлена в c:\program files (x86)\embarcadero\studio\18.0\source\Indy10\Protocols\IdSSPI.pas) Затем, уже в косметических целях, повыкидывал NTLM из имён вида TIdSSPINTLMAuthentication (чтоб было, в этом примере, TIdSSPIAuthentication), заменил fNTLMInfo на fSPPIInfo, добавил TIdSSPIAuthentication.SetServicePrincipalName для возможности установки более специфических SPN, поменял местами имена у TSSPIPackage и TCustomSSPIPackage, чтоб Custom было приписано у класса-предка, а не у того класса, экземпляр которого в итоге создаётся, и убил более не нужный класс TSSPINTLMPackage, инкапсулировавший лишь инициализацию родительского класса константой с именем пакета. В общем, после этого у меня программа авторизовалась в режиме SSO по протоколу Negotiate. Изменённые файлы прикладываю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2017, 16:09 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=35808280&tid=2041410]: |
0ms |
get settings: |
9ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
139ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
58ms |
get tp. blocked users: |
2ms |
| others: | 237ms |
| total: | 482ms |

| 0 / 0 |
