Ошибка входа в Worklight antXSFRealm после аутентификации с помощью Data Power

Недавно я изменил механизм аутентификации на аутентификацию LTPA с мощностью данных. Сама аутентификация работает нормально, но при попытке доступа к первому адаптеру после входа в систему (мой запрос содержит файл cookie с токеном LTPA) возникает ошибка с таким сообщением: "wl_antiXSRFRealm": {"причина": "Ошибка входа в систему"}

wl_antiXSRFRealm возвращает userId при вызове / init. Я что-то пропустил?

Сведения о среде: Worklight 6.0.0.2 Работает в обычной среде предварительного просмотра.

Конфигурация аутентификации:

<realm loginModule="WASLTPAModule" name="DataPowerRealm">

        <className>com.worklight.core.auth.ext.WebSphereFormBasedAuthenticator</className>
        <parameter name="login-page" value="/login.html" />
        <parameter name="error-page" value="/loginError.html" />
    </realm>

    <loginModule name="WASLTPAModule">
        <className>com.worklight.core.auth.ext.WebSphereLoginModule</className>
        <parameter name="httponly-cookie" value="true" />
        <parameter name="cookie-name" value="LtpaToken2" />
    </loginModule>


    <securityTests>
    <customSecurityTest name="ldapSecTest">
        <test realm="DataPowerRealm" step="1" />
        <test isInternalUserID="true" realm="LdapAdapterRealm" step="2" />
    </customSecurityTest>

    <customSecurityTest name="DataPowerAuth">
        <test realm="DataPowerRealm" step="1" isInternalUserID="true" />
    </customSecurityTest>


</securityTests>

ОБНОВЛЕНИЕ: под ответом сервера

Remote Address:10.2.163.199:445
Request URL:http://10.2.163.199:445/worklight/apps/services/api/SmartServices/common/query
Request Method:POST
Status Code:403 Forbidden
Request Headersview source
Accept:text/javascript, text/html, application/xml, text/xml, */*
Accept-Encoding:gzip,deflate
Accept-Language:en-US
Connection:keep-alive
Content-Length:197
Content-type:application/x-www-form-urlencoded; charset=UTF-8
Cookie:LtpaToken2=uu9ac1LdsZ6afuLZ5Bzb8Eh29wGRa8SZ67Mp8oX5k+3Q5Vy3YkNpb69XeHDjkYRQRLFu2HQ9YMMfvNtPCyD67CvsUejRju5M2WH77YxQhMwWGxVGL6etLiQJm/1zILpyqiXBT9ubpjlLC5M2ogvklFmkboHxrEVhS2WYTcuBVmlQMyHNvWPYQ85GC+F70V/7MMvoyVCslD4nvYQgnEQl/NdKAVtb4HjUylIkUpYzERW9mvQe7DXM6uez7U2TM9Z6wIykTWL+flmzp48QM7RsTUW71F3DJ9+odoqdOfKOvv0/0/TAcx7k5p50FpItnRLSXAkckSoRAVgEm2BRzWq6RJwAjJhLQkz88dtPzJhrP2U=; WL_PERSISTENT_COOKIE=3ea0b226-fe49-4675-ac80-8c6f2d370f26; forms.MobileGateway_HTMLFormLoginAAA.session=8DDBA0B2B0722B28C41750077EBDE8E1265752C4PHNlc3Npb24tY29va2llPjxjb29raWUtbmFtZT5mb3Jtcy5Nb2JpbGVHYXRld2F5X0hUTUxGb3JtTG9naW5BQUEuc2Vzc2lvbjwvY29va2llLW5hbWU+PGNyZWF0ZWQ+MjAxNC0xMS0yMFQxMjo0NTo1OFo8L2NyZWF0ZWQ+PHJlZnJlc2hlZD4yMDE0LTExLTIwVDEyOjQ1OjU4WjwvcmVmcmVzaGVkPjxtaWdyYXRpb24vPjxrZXk+QkZGMjlCNjMyQ0E0NUEwRDQ3NEMwRjcxQkIzMDM3RUFEM0JFNDU5RTwva2V5Pjwvc2Vzc2lvbi1jb29raWU+; JSESSIONID=00000cRvoMiUcoF0mcO_CJv4M11:-1; testcookie=oreo; LtpaToken=me/P4T9tNq2EckeC/NxQsTedAT+ugUHGjtoPE4gMz2l9eaHlbIX44J2guaaTjfCJIjWBjaPX8jeQRMbSEQXk0qFrDzqT9NvJlEMEbz7qXq/zhbyE1oV5fA1f2gRJGbk+y3tILSf1fDvKtUrZVrXwhk9ARTi0vzAOIV9sVfDKMb++6ULhmwQLOumaQMrWWAyJP4Y44MzxK5o/xr4XaEwJQRaqj32np72Qws3zwkmqK1hAo2rjDRXb/WTvisFxA7IdMBrvHkjGTCtCyDUhd/nFXSKg1j17ylpz544wEGh2Y5UJTBEhjj5vr91FeCrPUTw6lbWzwXJk54Do8xD8vkggPqc24gzdZT9EUa+0vl213m6hl1LGdfj3aKbwS0BddeXhZ5sEB+DAJP5Vx0/w9nH2hbI/Vjo4zC0ZvZIfCK65rK0FthxKKOQC580Ta1+1LxXbOFoUwntDAE0odbw1IG4zx5DMCPuNzXB81nP0MZnLiBcQH9zU7Rp6EdIZ5UJoCnwSe54CxlRf3fIwk3VUZmCfeIE2eoUTCnTDvghAF3peG1fuNW6yE8v0X6fpkse3bamEnlNP/Exkjb+sdSK9xTWkPg1qcM43bYL0FNeSzlA8K71moxLcfounXaf47AhwoRrbdMYcx1KMUxjD/FDwmX2r6I/A4KrkwA2ay53P2AeQVbA=
Host:10.2.163.199:445
Origin:http://10.2.163.199:445
Referer:http://10.2.163.199:445/worklight/apps/services/preview/SmartServices/common/0/default/login.html
User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.104 Safari/537.36
WL-Instance-Id:hd5rku2a9ioc4f5m6oorc6frm0
X-Requested-With:XMLHttpRequest
x-wl-app-version:1.0
x-wl-platform-version:6.0.0
Form Dataview sourceview URL encoded
adapter:SecureDashBoardAdapter
procedure:autoLogin
parameters:["","",true]
__wl_deviceCtxVersion:-1
__wl_deviceCtxSession:78983441416487555728
isAjaxRequest:true
x:0.620181588223204
Response Headersview source
Cache-Control:no-cache, no-store, must-revalidate
Connection:Keep-Alive
Content-Language:en-US
Content-Type:application/json; charset=UTF-8
Date:Thu, 20 Nov 2014 12:51:53 GMT
Expires:Sat, 26 Jul 1997 05:00:00 GMT
P3P:policyref="/w3c/p3p.xml", CP="CAO DSP COR CURa ADMa DEVa OUR IND PHY ONL UNI COM NAV INT DEM PRE"
Transfer-Encoding:chunked
X-Backside-Transport:FAIL FAIL
X-Client-IP:10.10.30.152
X-Powered-By:Servlet/3.0

person Houcem Berrayana    schedule 20.11.2014    source источник
comment
Всегда указывайте в вопросах полную информацию о вашей среде - ОС устройства, версию Worklight и номер сборки. Как вы проводите тесты безопасности, каковы ваши тесты безопасности. Пожалуйста, отредактируйте вопрос, указав эти детали.   -  person Idan Adar    schedule 20.11.2014
comment
@IdanAdar готов, любезно посоветуйте   -  person Houcem Berrayana    schedule 20.11.2014
comment
С тестами безопасности проблем нет, просто переименуйте WASLTPARealm в DataPowerAuth. Чтобы использовать DataPower в качестве сервера аутентификации и выполнять единый вход с сервером Worklight, ваш сервер Workight должен быть сервером приложений Websphere (или профилем Websphere Liberty) и настраивать сервер Worklight для того же реестра пользователей, что и DataPower.   -  person Eric Wang    schedule 20.11.2014
comment
Приложение Worklight будет обрабатывать wl_antiXSRFRealm, оно должно ответить wl-instance-id при первом запуске, и приложение добавит wl-instance-id в заголовок для следующего запроса. Вы упомянули, что это ответ на идентификатор пользователя, это неверно, вы можете предоставить полный ответ, который получите?   -  person Eric Wang    schedule 20.11.2014
comment
На самом деле аутентификация Data Power работает идеально. Он работает на сервере WAS и все в порядке. Перед аутентификацией все выглядит нормально. вызов инициализации настраивает все, как ожидалось. Это происходит только после аутентификации с помощью DataPower. Заголовок запроса содержит идентификатор экземпляра.   -  person Houcem Berrayana    schedule 20.11.2014
comment
Можете ли вы предоставить запрос / ответ для вызова init с / без аутентификации DataPower?   -  person Eric Wang    schedule 20.11.2014
comment
Я обновил ответ. пожалуйста, проверьте   -  person Houcem Berrayana    schedule 20.11.2014


Ответы (2)


Я открыл PMR, и мы узнали причину проблемы. На самом деле существует конфликт между потоком WL и потоком Websphere, который приводит к этой проблеме. Один из способов решить эту проблему - провести явную проверку безопасности для каждой процедуры, которая вызывается после входа в систему. В противном случае установка более новой версии WL решит проблему.

person Houcem Berrayana    schedule 04.12.2014

Судя по данным ответа, код ответа вашего сервера Worklight - 403, это неверно. Эта служба будет ответом 401, если LTPAToken неверен или 200 успешно. Я предполагаю, что ваш источник данных имеет неправильную конфигурацию и устанавливает HTTP 403.

Request URL:http://10.2.163.199:445/worklight/apps/services/api/SmartServices/common/query
Request Method:POST
**Status Code:403 Forbidden**

Вот несколько шагов, которые помогут вам отладить эту ошибку.

1) проверьте топологию DataPower + Worklight, убедитесь, что сервер DataPower и Worklight используют один и тот же реестр пользователей, лучше быть сервером LDAP. 2) проверьте, блокирует ли ваше правило DataPower ответ Worklight или нет, HTTP-статус 403 не должен устанавливаться сервером Worklight 3) запустите инструмент wirehark на сервере Worklight для захвата сетевого трафика HTTP, проверьте правильность заголовка HTTP и заголовка ответа 4) захват сетевого трафика на DataPower с помощью инструмента DataPower (данные захвата также можно открыть с помощью wirehark).

person Eric Wang    schedule 27.11.2014