Предыдущая часть здесь.
Промудохался ещё два дня с XMPP+SSO. Собрал, наверное, конкретно все грабли, на которые в принципе можно было наступить. По итогам выяснил следующее.
- Привязанные к Keytab-у Service-Accountы в AD почему-то не канают. Только Host, только хардкор. Странно. Потому что тот же Apache прекрасно аутентифицирует клиентов в том числе и посредством Service-Account (когда в AD создается не компьютер, а пользователь). А вот Prosody почему-то так не хочет. Спрашивается, в чём заключается столь принципиальное отличие XMPP от HTTP с точки зрения аутентификации. Непонятно, но факт.
- Название службы в principal-е должно называться "xmpp". Только так и никак иначе. В противном случае будем получать совершенно неинформативную ошибку "Unspecified GSS failure. Server not found in Kerberos database". Тоже непонятно. Какая ему разница, как называться. Ан-нет, поди ж ты. Видимо, оно жёстко заhardcodeно в клиентах.
- Pidgin куда более толерантен ко всяким вольностям в настройке Kerberos, нежели Miranda. Последняя намного капризнее и при любом чихе норовит отвалиться. Pidgin в то же время вполне себе работает.
- Если вы таки хотите использовать Миранду, то она, сцуко, зачем-то до фига придирчиво проверяет, соответствует ли настройка "hostname" сервера его FQDN-имени. И если нет, то сразу же отбивается. Казалось бы, какая ей разница? Но нет. Поэтому внимательно четырежды проверьте что у вас написано в "/etc/hosts" на Jabber-сервере. Там и hostname, и FQDN должны соответствовать IP-адресу, на который идёт соединение. Малейшее отклонение, и Миранда откажется цепляться. Pidgin-у же пофиг, он схавает по-любому.
- По причине предыдущего пункта не удастся создать на одном и том же компьютере несколько разных виртуальных XMPP-хостов (доменов), при условии что вы хотите использовать Miranda+GSSAPI. Pidgin проглотит такой конфиг, Миранда — нет.