August 23rd, 2017

Cat-light

Jabber (XMPP) + Windows + SSO, часть 3

При всесторонней поддержке уважаемого тов. rustedowl разобрались почему не работает связка "Miranda NG + Prosody + SSO/Kerberos".

Причина оказалась весьма странной. При установлении соединения Prodosy предлагает клиенту на выбор механизмы аутентификации "GSS-SPNEGO" и "GSSAPI". Если взять Pidgin, то он сразу просит у сервера "GSSAPI" и дальше работает с ним. А вот Miranda пытается сначала сцепиться по "GSS-SPNEGO", у неё это не получается, просит сервак переключить на "GSSAPI", но последний ей почему-то отказывает.

При этом забавно, но связка "Miranda+OpenFire" в той же конфигурации аутентифицируется без проблем; Pidgin-у вообще пофиг с каким сервером работать; Pidgin+Prosody взлетает без шаманств; Miranda+Prosody без дополнительных телодвижений подниматься не хочет.

Автор миранды утверждает, что баг имеет место быть в Prosody, а у него всё сделано в соответствии с протоколом. Ну фиг знает. Не разбираюсь в этом настолько хорошо.

Найден следующий workaround:


  1. Обновляем Prosody до версии 0.10.

  2. Добавляем в её конфиг строку disable_sasl_mechanisms = "GSS-SPNEGO".

Таким образом мы явно запрещаем GSS-SPNEGO на уровне сервера, после чего и Miranda NG, и Pidgin успешно аутентифицируются по GSSAPI.