|
|
|
SPNEGO не авторизует пользователей с большим числом групп.
|
|||
|---|---|---|---|
|
#18+
yelenaBlazkowicz, CORS тут пока ни при чем. У него тестовый стенд не меняется и в некоторых случаях авторизация проходит удачно. yelena, если вы не коллега ТС, то оставьте свои остроумные комментарии при себе. В 90% подобных случаев ТС что-то где-то недоглядел и проблема была совсем не там где искали. Вот я и предлагаю варианты. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2015, 15:31 |
|
||
|
SPNEGO не авторизует пользователей с большим числом групп.
|
|||
|---|---|---|---|
|
#18+
yelenaВ общем, уже понятно, что этот человек это приложение не разрабатывал, но пытается им пользоваться. Наверное, админ. Может, вернуть приложение разработчикам, указав на проблему, чтобы они его протестировали сами? Не все телепаты, похоже, в отпуске. Давайте вы не будете судить о компетенции ТС, так как из комментариев выше видно что его компетенция в SPNEGO поболе вашей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2015, 15:33 |
|
||
|
SPNEGO не авторизует пользователей с большим числом групп.
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, извините, но и вашей компетенции тут тоже не хватает. А мне эта тема интересна, поэтому буду читать и высказываться. Тут люди не крутизной меряются. А если бы автор по-аккуратнее суть проблемы объяснил, то, может, и лишних комментариев не было бы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2015, 15:42 |
|
||
|
SPNEGO не авторизует пользователей с большим числом групп.
|
|||
|---|---|---|---|
|
#18+
yelenaBlazkowicz, извините, но и вашей компетенции тут тоже не хватает. Хамло. yelenaА мне эта тема интересна, поэтому буду читать и высказываться. Тут люди не крутизной меряются. Да-да. В общем, уже понятно, что вам уже всё понятно: yelenaВ общем, уже понятно, что этот человек это приложение не разрабатывал, но пытается им пользоваться. Наверное, админ. yelenaА если бы автор по-аккуратнее суть проблемы объяснил, то, может, и лишних комментариев не было бы. Автор подробно объяснил что запрос из браузера в сервис каким-то образом блокируется и что это какой-то мистикой связано с группами пользователя. Нужно выяснить кто, на каком этапе и почему заблокировал запрос из браузера на сервер. Автор четко обрисовал этот проблемный шаг и теперь в него стоит углубиться. Вы же предлагаете смотреть совсем в другую сторону. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2015, 15:50 |
|
||
|
SPNEGO не авторизует пользователей с большим числом групп.
|
|||
|---|---|---|---|
|
#18+
yelena, Вам, как эксперту, предлагается придумать какие причины блокировки запроса могут быть помимо AdBlock, Proxy и CORS? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2015, 15:52 |
|
||
|
SPNEGO не авторизует пользователей с большим числом групп.
|
|||
|---|---|---|---|
|
#18+
yelena, я разработчик приложения (но не браузера, и не клиента SPNEGO и не протокола Kerberos) и подробно расписал весь процесс. Я бы сам рад подебажить, но оно не дебажится и все тут. Дебажить я умею, и есть опыт дебага js, java, pl/sql. Консоль и Network грубо говоря пустые. Дебажил в Chrome и IE. На следующей неделе доберусь до Firefox, просто все это надо настраивать на машине (учетке) тех, у кого не работает авторизация. Под своей же учеткой мне напряжно просить каждый раз админа добавлять/удалять группы, т.к. сам процесс успешной LDAP аутентификации мне нужен, т.к. допиливаю другие части по интеграции. Описываю алгоритм еще раз и прикладываю логи nginx'a со специальным логированием хедеров: Вначале успешный случай (малое число групп): 1) Отправляем запрос на /ldapAuthentication, получаем 401 и response header: WWW-Authenticate: Negotiation, что дает клиенту знак, что надо пообщаться с AD взять ключ и прислать хеш. 2) Получив ключ от AD отправляется еще один запрос /ldapAuthentication с request header’ом: Authorization (внутри которого хеш ключа), получаем статус 200. Вот как выглядит nginx лог для пользователя с малым числом групп. 10.6*.**.*** - - [10/Jul/2015:09:34:40 +0500] "GET /ldapAuthentication HTTP/1.1" 401 0 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.132 Safari/537.36" "-" "-" "Negotiate" 10.61.35.212 - - [10/Jul/2015:09:34:40 +0500] "GET /ldapAuthentication HTTP/1.1" 200 59 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.132 Safari/537.36" "-" "Negotiate YIIJWQYGKwYBBQUCoIIJTTCCCUmgMDAuBgkqhkiC9xIBAgIGCSqGSIb3EgECAgYKKwYBBAGCNwICHgYKKwYBBAGCNwICCqKCCRMEggkPYIIJCwYJKoZIhvcSAQICAQBuggj6MIII9qADAgEFoQMCAQ6iBwMFACAAAACjggd/YYIHezCCB3egAwIBBaEKGwhVUi5SVC5SVaIkMCKgAwIBAqEbMBkbBEhUVFAbEWRldi1ib2Vpc3NkLnJ0LnJ1o4IHPDCCBzigAwIBF6EDAgEDooIHKgSCByYrszBq0JBaM3n9f1PNw9NupMHKYpDfGCJzNYltK5nYi7c9K5FzuW3/Srk/j5OQ2/Udau5/jmy0Rhr4e464iRmakNqw3O9A7qG5o6tiHXk9njyEf4ND9pYq/molZSsJpFe7Y13+G/+6M2wc3RUIty5cOMNJKGvFj3VtjgdG0r75ecBTWNNZBSjzkZFpo5/QNqS9Zsbe2RrtXSR9pssY9f5Ass5LKiH0YoTI+FJvcLoLpIGTJP65URSPnNqkqDNNWxE2Y5XGSHJS0nGUWBova0+d58iM8TuQq1AHEejF6NXsbKeI0xVIn5VNjRkj3GY4cz/gblhpnUt7X300dQHvKBj3g2z35Y34lV5f1g+12xnBFVxcwgJguhbc68CBjGHb1eGV5/KQZcFp2aYXEG24oB180d4NfnkXm3ZZp+kUAmmOBsl/sTkxBylk3kcFvLok9kuVtuNNJBwHGl5R5va5hTWDKqj4ObCwSAq/uJZNy6iCaabe+pxO0e7HQUwxE/EDSykyDdITDo/vLcEiaMArf/9JlQbalCnZQLxnwWw7CiDQYe4wuVhgO8US7NzolE0+zW2iPWL/6m8Fq7TS3pGVMQQBkdZ3gSPOeNaolgi0IY7nrV9R2Zcp15RXzK7MOB7dlyEyfrge7PJnZZPP+HaG2f13P3l3osjAsgU9gvX/LTJ7AygB2RA13bbH24jehnqdPWVVB+zjXXb1FJ94Xa36uFl/k8qBwSa8GqdDwAEYH9i4A0bKDoTbtHnKqwZNROAiSeCdg3cbM+3PCyKT8VIF91xFk/aAf2w2bBbz8M8Taa+VGRMChXDr27az8ouSJlAtwitJmWAJIsxIlHhQsycAbJBMUnI3IdDW9x1TLn2Ws3x+JJVRq+U8PL5aQ18s71q2xkY1aDjdJL8yPCZ8DE2AX4cnxVoSbAFTx7nV5aOoUFZfqIx4B8RrYNrS0y+HYC2Qlvcz7WUE/EztzCpwfjfCMi3jks7jTu+3vh9sfQvKE6IeF4fslLz8UM3pa9mUIE05h65wFmw18f9C2/go5bUdmkggFcMIIBWKADAgEXooIBTwSCAUvgvr7/hrKIRoJzNHj51WdLQU9nrPJ19oct2a+JKtIzr21ki35jXF+H5YEArhBCBDNSlOb5s5f7TGOzIq78OAB9O4GsL5z9XGrneZZjhK0/R5S+ULjcxcOYyYSLOnnBQhYK19ObGqJNVIwRUJ3sjuf9Le5ad6sA6HEeCTtGKrqgm3+/2f7PlDBW4PFX7obPwIA8LDxUPrSkXb5e7VuiMql+xnzDYgcW/HHOvDlO+V/qSzzWx1IimUuldiiEngfTbSbF1LYB6fM3pjzCPui/0581id5aUkE/WeMxQDWrw9Lr0v9MU2IV3r7hvzrhHJz3r5jD87zJ8n4HVdrUSA7SBuDKU8dFrznneDvVOMvtyjcQf1GrbDB4z+PzYekXjkXW+vC0zbA0HbhcLQticJZZG9BFXF3o03gMqqukR5p/SSxqa22rDzWm+GoOLmSt" "Negotiate oYHrMIHooAMKAQChCwYJKoZIhvcSAQIComkEZ2BlBgkqhkiG9WMFSgAwIBBaEDAgEPokgwRqADAgEXoj8EPfBByib2vY9GjX/r4+r5ovCHSYONPN6gV9XpS+9s0PHFlknbFDf+QhLZfAb1YwVKADAgEFoQMCAQ+iSDBGoAMCAReiPwQ98EHKJva9j0aNf+vj6vmi8IdJg4083qBX1elL72zQ8cWWSdsUN/5CEtl+ko3GN7+xepfdVGDXpGjrv8lIdg==" Т.е. вначале сервер нас посылает за ключом, потом мы его отправляем и все норм. Теперь рассмотрим лог неудачного запроса (с большим количеством групп): 10.6*.**.*** - - [10/Jul/2015:09:37:17 +0500] "GET /ldapAuthentication HTTP/1.1" 401 0 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.132 Safari/537.36" "-" "-" "Negotiate" 10.6*.**.*** - - [10/Jul/2015:09:37:17 +0500] "GET /ldapAuthentication HTTP/1.1" 401 0 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.132 Safari/537.36" "-" "-" "Negotiate" Видно, что сервер вначале отправляет получать ключ от AD, но потом браузер присылает запрос без хеша ключа, и отказ. Почему браузер во втором запросе не отправляет ключ - загадка, т.к. этот ключ уже есть в списке полученных ключей klist. Код моего приложения тут не при чем, т.к. все по сути работает "из коробки". Весь вопрос сводится к тому, что может где-то что то подкрутить в конфиге spnego/krb5.conf/login.conf, и главное, может что-то надо изменить в AD. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2015, 16:09 |
|
||
|
SPNEGO не авторизует пользователей с большим числом групп.
|
|||
|---|---|---|---|
|
#18+
да не кипятитесь вы. Обе стороны интересны для решения. Как "конфигуразм" библиотек и эксплореров, так и трейс\логи\отладка хидеров по маршруту или кода. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2015, 16:11 |
|
||
|
SPNEGO не авторизует пользователей с большим числом групп.
|
|||
|---|---|---|---|
|
#18+
AlexeyKh24, давайте я с вами буду общаться. Я вот, например, не пойму, почему вы говорите, что затык происходит на 7-м шаге схемы. На приведенных скриншотах (начнем с удачного) я вижу, что браузер делает запрос ldapAuthentication и получает ответ сервера с заголовком WWW-Authenticate: Тогда по схеме браузер должен обратиться к Kerberos, а потом повторить запрос, указав authentication credentials. Это уже 7-й шаг. Получается, что в плохом случае, у него с самого начала (с шага 1) цепочка не работает. И еще в случае скриншота с удачным реквестом на 1-м шаге реквеста на скиншоте мы как раз и не видим, чтобы что-то сравнивать. Я хочу поискать, чем можно подебажить обращение к Kerberos. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2015, 16:12 |
|
||
|
SPNEGO не авторизует пользователей с большим числом групп.
|
|||
|---|---|---|---|
|
#18+
yelenaЯ хочу поискать, чем можно подебажить обращение к Kerberos. Хотя, наверное, он нормально и честно отрабатывает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2015, 16:15 |
|
||
|
SPNEGO не авторизует пользователей с большим числом групп.
|
|||
|---|---|---|---|
|
#18+
AlexeyKh24, Я бы на вашем месте больше экспериментировал с группами, так как догадка "много групп" слишком странная чтобы быть правдой. Скорее всего дело в самих группах, а не в количестве. Не так ли ведёт себя браузер если у пользователя нет прав? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2015, 16:18 |
|
||
|
SPNEGO не авторизует пользователей с большим числом групп.
|
|||
|---|---|---|---|
|
#18+
yelenaAlexeyKh24, давайте я с вами буду общаться. Давайте. У нас же тут приватный чатик. yelenaЯ вот, например, не пойму, почему вы говорите, что затык происходит на 7-м шаге схемы. На приведенных скриншотах (начнем с удачного) я вижу, что браузер делает запрос ldapAuthentication и получает ответ сервера с заголовком WWW-Authenticate: Тогда по схеме браузер должен обратиться к Kerberos, а потом повторить запрос, указав authentication credentials. Это уже 7-й шаг. Получается, что в плохом случае, у него с самого начала (с шага 1) цепочка не работает. Отвечает ТС: AlexeyKh24Почему браузер во втором запросе не отправляет ключ - загадка, т.к. этот ключ уже есть в списке полученных ключей klist. yelenaЯ хочу поискать, чем можно подебажить обращение к Kerberos. Взять простейшего HTTP клиента на Java и включить там логировние теми же ключами что ТС привел в начале. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2015, 16:22 |
|
||
|
SPNEGO не авторизует пользователей с большим числом групп.
|
|||
|---|---|---|---|
|
#18+
в spnego протоколе группы точно не принимают участие. Это только аутентификация. Другое дело, если группы у таких пользователей сильно ограниченные, например, для этих групп не настроены доверенные сервера (или, по крайней мере, сервер приложений не является доверенным). А браузер передает токен только доверенным серверам. В этом случае результат будет именно таким, как на 1-й картинке ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2015, 16:24 |
|
||
|
SPNEGO не авторизует пользователей с большим числом групп.
|
|||
|---|---|---|---|
|
#18+
Petro123AlexeyKh24, Сервлет вызывается по AJAX или как? В какой момент? В данном конкретном случае при тестировании вызывается GET запросом, просто захожу по конкретному url в браузере. В приложении используется как GET запрос по AJAX, тоже нормально работает (для пользователей с небольшим количеством групп). ivanraAlexeyKh24, так может, у этих пользователей сервер приложений просто не включён в список доверенных узлов? Включено, подробно настраивал браузеры IE, Firefox. Причем если залогиниться под моей учеткой с их компьютера - работает, т.к. у меня мало групп. Blazkowicz У вас один домен используется как при аутентификации, так и в сервисах? CORS не настроен? Домен один BlazkowiczAlexeyKh24, Не пробовали удалять группы по одной из групп пользователя? Может всё же дело в настройках одной какой-то группы, а не в количестве? Если честно, то до такого экзотичного тестирования еще не доходили, но возможно скоро от безысходности придется попробовать. Вообще в SPNEGO у нас не настроена какая либо политика по группам, т.е. вход доступен всем, лишь бы ты был в домене. А так были следующие тест-кейсы: Мне добавили 40 доп тестовых групп - аутентификация перестала работать. Создали учетку, копию блокируемой - не работает. Сократили количество до двух групп - работает. Создали пустую учетку без групп - работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2015, 16:24 |
|
||
|
SPNEGO не авторизует пользователей с большим числом групп.
|
|||
|---|---|---|---|
|
#18+
AlexeyKh24Мне добавили 40 доп тестовых групп - аутентификация перестала работать. Тут пишут что нужно 120 групп. https://support.microsoft.com/en-us/kb/327825 А ещё пишут что MaxTokenSize надо править на всех компьютерах, вовлеченных в процесс. То есть контроллер домена тоже. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2015, 16:30 |
|
||
|
SPNEGO не авторизует пользователей с большим числом групп.
|
|||
|---|---|---|---|
|
#18+
BlazkowiczAlexeyKh24Мне добавили 40 доп тестовых групп - аутентификация перестала работать. Тут пишут что нужно 120 групп. https://support.microsoft.com/en-us/kb/327825 А ещё пишут что MaxTokenSize надо править на всех компьютерах, вовлеченных в процесс. То есть контроллер домена тоже. MaxTokenSize настроен. И да, странно, предупреждение не выдает про Header too long. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2015, 16:37 |
|
||
|
SPNEGO не авторизует пользователей с большим числом групп.
|
|||
|---|---|---|---|
|
#18+
ivanraв spnego протоколе группы точно не принимают участие. Это только аутентификация. Другое дело, если группы у таких пользователей сильно ограниченные, например, для этих групп не настроены доверенные сервера (или, по крайней мере, сервер приложений не является доверенным). А браузер передает токен только доверенным серверам. В этом случае результат будет именно таким, как на 1-й картинке Это уже поинтереснее предположение. Не очень разбираюсь в настройке групп в AD, в понедельник видимо будем мучать админа. Но если им нет явного доступа к этому ресурсу, или он недоверенный - то почему в klist появляется ключ для конкретного пользователя и конкретного сайта? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2015, 16:39 |
|
||
|
SPNEGO не авторизует пользователей с большим числом групп.
|
|||
|---|---|---|---|
|
#18+
С другой стороны, группы опять же влияют на размер хеша. TokenSize = 1200 + 40d + 8s ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2015, 16:51 |
|
||
|
SPNEGO не авторизует пользователей с большим числом групп.
|
|||
|---|---|---|---|
|
#18+
AlexeyKh24MaxTokenSize настроен. И да, странно, предупреждение не выдает про Header too long. Выскажусь. Версия про MaxTokenSize же очень быстро проверяется. Если klist показывает выданный токен, то измерить его длину несложно. А Header too long - это ж ругань от сервера, если он такой длинный токен получает. Браузер так ругаться не может. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2015, 18:27 |
|
||
|
SPNEGO не авторизует пользователей с большим числом групп.
|
|||
|---|---|---|---|
|
#18+
AlexeyKh24И я не знаю, как браузер получает хеш из kerberos ключа, все это инкапсулировано. А это не просто base64? Вы не проверяли? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2015, 19:31 |
|
||
|
SPNEGO не авторизует пользователей с большим числом групп.
|
|||
|---|---|---|---|
|
#18+
Мысль по дебагу. Может, через chrome://net-internals или Wireshark посмотреть, как браузер с Kerberos общается? Можно будет тогда узнать, что токен не повредился, нормально дошел. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2015, 20:52 |
|
||
|
SPNEGO не авторизует пользователей с большим числом групп.
|
|||
|---|---|---|---|
|
#18+
yelenaAlexeyKh24И я не знаю, как браузер получает хеш из kerberos ключа, все это инкапсулировано. А это не просто base64? Вы не проверяли? Я права насчет base64. Нашла вот такой текст: авторConfigure the MaxFieldLength and the MaxRequestBytes registry keys on the IIS server with a value of 4/3 * T, where T is the user's token size, in bytes. HTTP encodes the Kerberos token using base64 encoding and therefore replaces every 3 bytes in the token with 4 base64 encoded bytes. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2015, 23:50 |
|
||
|
SPNEGO не авторизует пользователей с большим числом групп.
|
|||
|---|---|---|---|
|
#18+
How to enable Kerberos event logging https://support.microsoft.com/en-us/kb/262177 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.07.2015, 01:07 |
|
||
|
SPNEGO не авторизует пользователей с большим числом групп.
|
|||
|---|---|---|---|
|
#18+
yelena, да, спасибо за направление. Попробую на след неделе chrome://net-internals/#events, Wireshark/TCPMon, ну и параметр реестра LogLevel. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.07.2015, 07:58 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=39004609&tid=2125101]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
176ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
72ms |
get tp. blocked users: |
1ms |
| others: | 250ms |
| total: | 544ms |

| 0 / 0 |
