Author Topic: Русские буквы в имени пользователя при использовании опции "Доменный логин"  (Read 23093 times)

0 Members and 1 Guest are viewing this topic.

Offline FDrake

  • Newbie
  • *
  • Posts: 7
FDrake,
Тогда в форме настройки вбей \20 вместо пробела и попробуй. Если прокатит, я это исправлю программно
\20 сработало, авторизовался
 

Offline ghazan

FDrake,
залил на сервер дев билд с исправлением, но там дальше вопрос, насколько хватит этого фикса, чтобы жить нормально с таким жидом... в плагине больше 200 мест, где на сервер или с сервера прилетает from/to/jid, и если их всех надо будет кодировать и раскодировать, это затянется надолго
 
The following users thanked this post: FDrake

Offline FDrake

  • Newbie
  • *
  • Posts: 7
FDrake,
залил на сервер дев билд с исправлением, но там дальше вопрос, насколько хватит этого фикса, чтобы жить нормально с таким жидом... в плагине больше 200 мест, где на сервер или с сервера прилетает from/to/jid, и если их всех надо будет кодировать и раскодировать, это затянется надолго
потестил, вроде уже пишет Logged in, но затем валится в ошибку.
Code: [Select]
[12:20:36 2D4C] [JABBER_1] (030B1728:1988) Data received
<stream:features><starttls xmlns="urn:ietf:params:xml:ns:xmpp-tls"></starttls><mechanisms xmlns="urn:ietf:params:xml:ns:xmpp-sasl"><mechanism>PLAIN</mechanism><mechanism>NTLM</mechanism></mechanisms><compression xmlns="http://jabber.org/features/compress"><method>zlib</method></compression><ver xmlns="urn:xmpp:features:rosterver"/><c xmlns="http://jabber.org/protocol/caps" hash="sha-1" node="https://www.igniterealtime.org/projects/openfire/" ver="dfdAkP3SX5AVgYgi5Osia/oYKTk="/></stream:features>
[12:20:36 2D4C] [JABBER_1] recvResult = 500
[12:20:36 2D4C] NtlmCreateResponseFromChallenge (N): chl= {(null):(null)} => 0
[12:20:36 2D4C] InitializeSecurityContext(NTLM): 0x90312
[12:20:36 2D4C] [JABBER_1] (030B1728:1988) Data sent
<auth xmlns="urn:ietf:params:xml:ns:xmpp-sasl" mechanism="NTLM">TlRMTVNTUAABAAAAB7IIogUABQAwAAAACAAIACgAAAAKAGFKAAAAD0xLQUIyMDJSMjNVUFI=</auth>
[12:20:36 2D4C] [JABBER_1] bytesParsed = 500
[12:20:36 2D4C] [JABBER_1] (030B1728:1988) Data received
<challenge xmlns="urn:ietf:params:xml:ns:xmpp-sasl">TlRMTVNTUAACAAAACgAKADgAAAAFgomilLmTdsqA2wsAAAAAAAAAAJgAmABCAAAACgA5OAAAAA8yADMAVQBQAFIAAgAKADIAMwBVAFAAUgABABwAUwBFAFIAVgBFAFIATwBQAEUATgBGAEkAUgBFAAQAEAAyADMAdQBwAHIALgByAHUAAwAuAFMAZQByAHYAZQByAE8AcABlAG4AZgBpAHIAZQAuADIAMwB1AHAAcgAuAHIAdQAFABAAMgAzAHUAcAByAC4AcgB1AAcACAC06YW4CErWAQAAAAA=</challenge>
[12:20:36 2D4C] [JABBER_1] recvResult = 356
[12:20:36 2D4C] NtlmCreateResponseFromChallenge (N): chl=TlRMTVNTUAACAAAACgAKADgAAAAFgomilLmTdsqA2wsAAAAAAAAAAJgAmABCAAAACgA5OAAAAA8yADMAVQBQAFIAAgAKADIAMwBVAFAAUgABABwAUwBFAFIAVgBFAFIATwBQAEUATgBGAEkAUgBFAAQAEAAyADMAdQBwAHIALgByAHUAAwAuAFMAZQByAHYAZQByAE8AcABlAG4AZgBpAHIAZQAuADIAMwB1AHAAcgAuAHIAdQAFABAAMgAzAHUAcAByAC4AcgB1AAcACAC06YW4CErWAQAAAAA= {(null):(null)} => 0
[12:20:36 2D4C] InitializeSecurityContext(NTLM): 0x0
[12:20:36 2D4C] [JABBER_1] (030B1728:1988) Data sent
<response xmlns="urn:ietf:params:xml:ns:xmpp-sasl">TlRMTVNTUAADAAAAGAAYAIIAAAAYABgAmgAAAAoACgBYAAAAEAAQAGIAAAAQABAAcgAAAAAAAACyAAAABYKIogoAYUoAAAAPC/Rs8hY967cQRfvJOd/BJDIAMwBVAFAAUgAuBEgEOgQ+BDIEIAAgBCEETABLAEEAQgAyADAAMgBSAMEtbpFc0YwdAAAAAAAAAAAAAAAAAAAAAPBlt3ykQE6cCAthX2PtQg3zMJTLUuf+Kw==</response>
[12:20:36 2D4C] [JABBER_1] bytesParsed = 356
[12:20:36 2D4C] [JABBER_1] (030B1728:1988) Data received
<success xmlns="urn:ietf:params:xml:ns:xmpp-sasl">=</success>
[12:20:36 2D4C] [JABBER_1] recvResult = 61
[12:20:36 2D4C] [JABBER_1] Success: Logged-in.
[12:20:36 2D4C] [JABBER_1] Stream will be initialized after successful sasl
[12:20:36 2D4C] [JABBER_1] bytesParsed = 61
[12:20:36 2D4C] [JABBER_1] Stream is initializing after successful sasl
[12:20:36 2D4C] [JABBER_1] (030B1728:1988) Data sent
<?xml version="1.0" encoding="UTF-8"?><stream:stream xmlns="jabber:client" to="domainr.ru" xmlns:stream="http://etherx.jabber.org/streams" xml:lang="ru" version="1.0">
[12:20:36 2D4C] [JABBER_1] (030B1728:1988) Data received
<?xml version='1.0' encoding='UTF-8'?><stream:stream xmlns:stream="http://etherx.jabber.org/streams" xmlns="jabber:client" from="domainr.ru" id="9e30wncite" xml:lang="ru" version="1.0"><stream:features><compression xmlns="http://jabber.org/features/compress"><method>zlib</method></compression><ver xmlns="urn:xmpp:features:rosterver"/><bind xmlns="urn:ietf:params:xml:ns:xmpp-bind"/><session xmlns="urn:ietf:params:xml:ns:xmpp-session"><optional/></session><sm xmlns='urn:xmpp:sm:2'/><sm xmlns='urn:xmpp:sm:3'/><c xmlns="http://jabber.org/protocol/caps" hash="sha-1" node="https://www.igniterealtime.org/projects/openfire/" ver="dfdAkP3SX5AVgYgi5Osia/oYKTk="/></stream:features>
[12:20:36 2D4C] [JABBER_1] recvResult = 677
[12:20:36 2D4C] [JABBER_1] bytesParsed = 183
[12:20:36 2D4C] [JABBER_1] (030B1728:1988) Data sent
<iq type="set" id="mirb9b91bee991dff3e_1"><bind xmlns="urn:ietf:params:xml:ns:xmpp-bind"><resource>Miranda</resource></bind></iq>
[12:20:36 2D4C] [JABBER_1] bytesParsed = 494
[12:20:36 2D4C] [JABBER_1] (030B1728:1988) Data received
<iq type="error" id="mirb9b91bee991dff3e_1" to="domainr.ru/9e30wncite"><bind xmlns="urn:ietf:params:xml:ns:xmpp-bind"><resource>Miranda</resource></bind><error code="500" type="wait"><internal-server-error xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"/></error></iq>
[12:20:36 2D4C] [JABBER_1] recvResult = 262
[12:20:36 2D4C] [JABBER_1] (030B1728:1988) Data sent
</stream:stream>
[12:20:36 2D4C] [JABBER_1] bytesParsed = 262
[12:20:36 2D4C] [JABBER_1] (030B1728:1988) Data received
</stream:stream>
[12:20:36 2D4C] [JABBER_1] recvResult = 16
[12:20:36 2D4C] [JABBER_1] bytesParsed = 16
[12:20:36 2D4C] [JABBER_1] Connection closed gracefully
[12:20:36 2D4C] [JABBER_1] recvResult = 0
[12:20:36 2D4C] [JABBER_1] m_iDesiredStatus reset to (1,40072) => 40071
[12:20:36 2D4C] [JABBER_1] leaving worker thread
[12:20:36 2D4C] [JABBER_1] Thread ended: type=0 server='domainr.ru'
[12:20:36 2D4C] [JABBER_1] (030B1728:1988) Connection closed internal
[12:20:36 2D4C] [JABBER_1] (030B1728:4294967295) Connection closed
[12:20:36 2D4C] [JABBER_1] Exiting ServerThread

со стороны сервера жалобы на jid:
Code: [Select]
2020.06.24 12:20:37 ERROR [socket_c2s-thread-2]: org.jivesoftware.openfire.handler.IQHandler - Внутренняя ошибка сервера
java.lang.IllegalArgumentException: Illegal JID: иванов рс@domainr.ru/Miranda
at org.xmpp.packet.JID.<init>(JID.java:534) ~[tinder-2.0.0.jar:?]
at org.xmpp.packet.JID.<init>(JID.java:490) ~[tinder-2.0.0.jar:?]
at org.jivesoftware.openfire.session.LocalClientSession.setAuthToken(LocalClientSession.java:684) ~[xmppserver-4.5.2.jar:4.5.2]
at org.jivesoftware.openfire.handler.IQBindHandler.handleIQ(IQBindHandler.java:156) ~[xmppserver-4.5.2.jar:4.5.2]
at org.jivesoftware.openfire.handler.IQHandler.process(IQHandler.java:62) [xmppserver-4.5.2.jar:4.5.2]
at org.jivesoftware.openfire.IQRouter.handle(IQRouter.java:369) [xmppserver-4.5.2.jar:4.5.2]
at org.jivesoftware.openfire.IQRouter.route(IQRouter.java:112) [xmppserver-4.5.2.jar:4.5.2]
at org.jivesoftware.openfire.spi.PacketRouterImpl.route(PacketRouterImpl.java:74) [xmppserver-4.5.2.jar:4.5.2]
at org.jivesoftware.openfire.net.StanzaHandler.processIQ(StanzaHandler.java:366) [xmppserver-4.5.2.jar:4.5.2]
at org.jivesoftware.openfire.net.ClientStanzaHandler.processIQ(ClientStanzaHandler.java:95) [xmppserver-4.5.2.jar:4.5.2]
at org.jivesoftware.openfire.net.StanzaHandler.process(StanzaHandler.java:316) [xmppserver-4.5.2.jar:4.5.2]
at org.jivesoftware.openfire.net.StanzaHandler.process(StanzaHandler.java:203) [xmppserver-4.5.2.jar:4.5.2]
at org.jivesoftware.openfire.nio.ConnectionHandler.messageReceived(ConnectionHandler.java:183) [xmppserver-4.5.2.jar:4.5.2]
at org.apache.mina.core.filterchain.DefaultIoFilterChain$TailFilter.messageReceived(DefaultIoFilterChain.java:1015) [mina-core-2.1.3.jar:?]
at org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:650) [mina-core-2.1.3.jar:?]
at org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1300(DefaultIoFilterChain.java:49) [mina-core-2.1.3.jar:?]
at org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:1128) [mina-core-2.1.3.jar:?]
at org.apache.mina.core.filterchain.IoFilterAdapter.messageReceived(IoFilterAdapter.java:122) [mina-core-2.1.3.jar:?]
at org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:650) [mina-core-2.1.3.jar:?]
at org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1300(DefaultIoFilterChain.java:49) [mina-core-2.1.3.jar:?]
at org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:1128) [mina-core-2.1.3.jar:?]
at org.apache.mina.filter.codec.ProtocolCodecFilter$ProtocolDecoderOutputImpl.flush(ProtocolCodecFilter.java:413) [mina-core-2.1.3.jar:?]
at org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(ProtocolCodecFilter.java:257) [mina-core-2.1.3.jar:?]
at org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:650) [mina-core-2.1.3.jar:?]
at org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1300(DefaultIoFilterChain.java:49) [mina-core-2.1.3.jar:?]
at org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:1128) [mina-core-2.1.3.jar:?]
at org.apache.mina.core.filterchain.IoFilterEvent.fire(IoFilterEvent.java:106) [mina-core-2.1.3.jar:?]
at org.apache.mina.core.session.IoEvent.run(IoEvent.java:89) [mina-core-2.1.3.jar:?]
at org.apache.mina.filter.executor.OrderedThreadPoolExecutor$Worker.runTask(OrderedThreadPoolExecutor.java:766) [mina-core-2.1.3.jar:?]
at org.apache.mina.filter.executor.OrderedThreadPoolExecutor$Worker.runTasks(OrderedThreadPoolExecutor.java:758) [mina-core-2.1.3.jar:?]
at org.apache.mina.filter.executor.OrderedThreadPoolExecutor$Worker.run(OrderedThreadPoolExecutor.java:697) [mina-core-2.1.3.jar:?]
at java.lang.Thread.run(Unknown Source) [?:1.8.0_202]
Caused by: java.lang.IllegalArgumentException: The input 'иванов рс' is not a valid JID node part: Contains prohibited code points.
at org.xmpp.packet.JID.nodeprep(JID.java:331) ~[tinder-2.0.0.jar:?]
at org.xmpp.packet.JID.<init>(JID.java:522) ~[tinder-2.0.0.jar:?]
... 31 more
Запасся терпением, вся надежда на Ваши доработки  :) разработчики openfire не реагируют с 2010г., а кроме миранды с ntlm никто нормально не работает с кириллицей
 

Offline ghazan

FDrake,
есть мнение, что если логин всё равно вбивается руками, а не берется автоматически из имени компьютера, то проще его так и вбивать в настройки в виде \20 - заодно и проверка жида будет нормально работать (с сервера-то он тоже в таком виде прилетать будет)

реально невозможно сейчас в двухстах местах пройти это и перебить без того, чтобы плагин не превратился в кашу и не начал глючить в самых странных местах, да и времени на это совсем нет
 
The following users thanked this post: FDrake

Offline FDrake

  • Newbie
  • *
  • Posts: 7
FDrake,
есть мнение, что если логин всё равно вбивается руками, а не берется автоматически из имени компьютера, то проще его так и вбивать в настройки в виде \20 - заодно и проверка жида будет нормально работать (с сервера-то он тоже в таком виде прилетать будет)

реально невозможно сейчас в двухстах местах пройти это и перебить без того, чтобы плагин не превратился в кашу и не начал глючить в самых странных местах, да и времени на это совсем нет
понимаю. просто тогда придется и пароль вбивать ручками юзерам.
либо идти по пути смены логинов в LDAP...
 

Offline ghazan

просто тогда придется и пароль вбивать ручками юзерам.
почему вдруг? пароль в GSSAPI вообще не фигурирует
 
The following users thanked this post: FDrake

Offline FDrake

  • Newbie
  • *
  • Posts: 7
почему вдруг? пароль в GSSAPI вообще не фигурирует
Так просто хотелось чтобы работала прозрачная авторизация по ntlm. Без ввода паролей.
Пока остановился на снятой галке "Доменный логин", автоматическом заполнении логина скриптом с заменой пробела на \20 и однократным вводом доменного пароля юзером при входе с сохранением пароля.

Спасибо за подсказки  :THUMBS UP:



Вкратце по настройке (вдруг кто вздумает повторить):
Галка "Доменный логин" и логины на кириллице отлично работают:
1) Windows Server 2016, Postgresql,  Openfire 4.5.2 x64 со встроенным JRE и отдельно настроенным плагином NTLM x64 по инструкции http://forum.ru-board.com/topic.cgi?forum=8&topic=45052&start=0&limit=1&m=3#1. Плагин качается отсюда:http://norman.rasmussen.co.za/dl/sasl-sspi/ плюс SaslSspi.dll x64 https://cloud.mail.ru/public/3v3h/37ykKS3Q4
2) Windows 10 и последняя сборка Miranda NG с галкой "Доменный логин"
 

Offline sergio_sd

  • Newbie
  • *
  • Posts: 2
Аналогичная проблема при авторизации через kerberos. Openfire 4.5.3 GSSAPI + MirandaNG 0.95.12
Да, пожалуй со стороны клиента тут ничего не исправить.

Остается два реальных варианта:
1 Включить PLAIN на сервере и забивать логин/пароль руками
2 Менять имена пользователей в AD удаляя пробелы

И один призрачный вариант:
Что igniterealtime исправит эту досадную особенность.
 

Offline satoo

  • Newbie
  • *
  • Posts: 6
Не создаю другую тему, т.к. эта тема близка к теме ;)

Сервер 4.7.1 x64, клиент последняя миранда, jre1.8.0_321 x64. Домен вида dom.domain.ru Использование openfire - только внутри сети. Логины вида User_IO (на английском). Обычным образом клиенты подключаются (при указании логина/пароля)

Попробовал по всем мануалам с руборда (когда-то делал для старого сервера - все работало). Использовал 64 битную длл SaslSspi.dll

Просьба подсказать, куда копать. И вообще, есть такая рабочая связка у кого-то?
« Last Edit: 21 04 2022, 07:47:54 by satoo »
 

Offline ghazan

Просьба подсказать, куда копать.
в каком смысле? обычно всё работает, если в миранде не указывать пароль и поставить Use domain login
приложи хоть скриншот опций на посмотреть, ну и в логе сервера бывает полезная ругань.
бывает, что GSSAPI в виндовом клиенте старый и не подходит серверу по используемому шифрованию
 

Offline satoo

  • Newbie
  • *
  • Posts: 6
Гуру, подскажите, может я не так понимаю инструкцию?
 
Вводная: сервер 2019x64, сервер 4.7.1x64, jre1.8.0_321x64, миранда обновлена (на старом сервере авторизация на этой же сборке работает)
 
Скопировал 64 битную версию
c:\Program Files\Openfire\bin\SaslSspi.dll
 
Скопировал 
c:\Program Files\Openfire\lib\sasl-sspi.jar
 
В файле:
c:\Program Files\Java\jre1.8.0_321\lib\security\java.security
 
 
заремарил вместо 10 провайдера
security.provider.10=sun.security.mscapi.SunMSCAPI
#security.provider.10=net.za.darkskies.security.sasl.SSPIProvider
 
Установил плагин saslmechanisms.jar (пробовал и простым копированием в каталог c:\Program Files\Openfire\plugins\saslmechanisms.jar)
 
В свойствах сервера создал параметр:
sasl.realm = netbios_имя_домена
sasl.mechs = ANONYMOUS,PLAIN,NTLM
 
При запуске, в консоле видим:
Successfully loaded plugin 'admin'.
Successfully loaded plugin 'monitoring'.
Successfully loaded plugin 'clientcontrol'.
Successfully loaded plugin 'search'.
Successfully loaded plugin 'broadcast'.
Successfully loaded plugin 'bookmarks'.
An exception occurred while loading plugin 'saslmechanisms':
Finished processing all plugins.
 
Авторизация, соответственно, не работает. ЧЯДНТ?




Spoiler
[JABBER_1]
AM_BaseProto=sJABBER
AutoAcceptMUC=b0
AutoJoinBookmarks=b1
AutoJoinConferences=b1
AutoJoinHidden=b1
GcAltNick=u
GcLogAffiliations=b0
GcLogBans=b1
GcLogChatHistory=b1
GcLogConfig=b0
GcLogRoles=b0
GcLogStatuses=b0
GcMsgQuit=uI'm happy Miranda NG user. Get it at https://miranda-ng.org/.
GcMsgSlap=u/me slaps %s around a bit with a large trout
HostNameAsResource=b1
IgnoreMUCInvites=b0
KeepAlive=b1
LastGetVcard=d1650395192
LastLoggedServer=sserv.neo.domain.local
LastMamId=s1
ManualConnect=b0
ManualHost=u
ManualPort=w0
NLlog=d1
Password=u
Port=w5222
Priority=d0
Resource=upc
RosterSync=b0
SavePassword=b1
UseDomainLogin=b1
UseSSL=b0
UseTLS=b1
VCardHash=s851009bb4436d08f3c8589478bd82b7a
XmlLang=sru
bookmarksWnd_cx0=w120
bookmarksWnd_cx1=w210
bookmarksWnd_cx2=w90
bookmarksWnd_height=d429
bookmarksWnd_width=d460
bookmarksWnd_x=d730
bookmarksWnd_y=d305
[close]
« Last Edit: 21 04 2022, 15:35:04 by satoo »
 

Offline ghazan

An exception occurred while loading plugin 'saslmechanisms':
Есть мнение, что этот вопрос надо тащить на форум OpenFire, буде таковой существует.
От клиента всё это ни в малейшей степени не зависит
 

Offline satoo

  • Newbie
  • *
  • Posts: 6
Я знаю. Где только можно я поискал и спросил.

А здесь надеюсь лишь на то, что мирандовцы используя openfire могут поделиться своим опытом.

ps про файл java.security я, конечно, описался - заремарен родной провайдер, добавлен новый
 

Offline Davis

огут поделиться своим опытом
Я в итоге давно плюнул на NTLM, вник один раз и настроил GSSAPI - и все хорошо. Ничего не патчишь, само работает.
Например так: https://discourse.igniterealtime.org/t/how-to-video-on-setting-up-sso-ad-with-openfire/79384
 
The following users thanked this post: dartraiden

Offline dartraiden