Включение управления доступом на основе ролей с использованием XACML - при оценке политики произошла ошибка - PullRequest
1 голос
/ 28 мая 2019

Я следовал за Включением управления доступом на основе ролей с использованием XACML . Я мог бы настроить все без каких-либо проблем. Но при вызове API он отвечает с ошибкой ниже.

<am:fault xmlns:am="http://wso2.org/apimanager"><am:code>0</am:code><am:type>Status report</am:type><am:message>Runtime Error</am:message><am:description>Error occurred while evaluating the policy</am:description></am:fault>

И в журнале APIM я вижу ошибку ниже. Я использую APIM 2.6 и IS 5.3 на одной машине со смещением 2 в AM. Кажется, проблема связана с URL-адресом remoteServiceUrl="https://127.0.0.1:9443/services" в EntitlementMediator.xml, упомянутом в шаге 14 Руководства по .

[2019-05-28 12: 33: 05,162] ИНФОРМАЦИЯ - HTTPSender невозможно отправить сообщение через URL [https://127.0.0.1:9443/services/EntitlementService] javax.net.ssl.SSLPeerUnverifiedException: узел не аутентифицирован в sun.security.ssl.SSLSessionImpl.getPeerCertificates (SSLSessionImpl.java:431) в org.apache.commons.httpclient.protocol.SSLProtocolSocketFactory.verifyHostName (SSLProtocolSocketFactory.java:276) в org.apache.commons.httpclient.protocol.SSLProtocolSocketFactory.createSocket (SSLProtocolSocketFactory.java:186) в org.apache.commons.httpclient.HttpConnection.open (HttpConnection.java:707) в org.apache.commons.httpclient.MultiThreadedHttpConnectionManager $ HttpConnectionAdapter.open (MultiThreadedHttpConnectionManager.java:1361) в org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry (HttpMethodDirector.java:387) в org.apache.commons.httpclient.HttpMethodDirector.executeMethod (HttpMethodDirector.java:171) в org.apache.commons.httpclient.HttpClient.executeMethod (HttpClient.java:397) в org.apache.axis2.transport.http.AbstractHTTPSender.executeMethod (AbstractHTTPSender.java:704) в org.apache.axis2.transport.http.HTTPSender.sendViaPost (HTTPSender.java:199) в org.apache.axis2.transport.http.HTTPSender.send (HTTPSender.java:81) в org.apache.axis2.transport.http.CommonsHTTPTransportSender.writeMessageWithCommons (CommonsHTTPTransportSender.java:459) в org.apache.axis2.transport.http.CommonsHTTPTransportSender.invoke (CommonsHTTPTransportSender.java:286) в org.apache.axis2.engine.AxisEngine.send (AxisEngine.java:442) в org.apache.axis2.description.OutInAxisOperationClient.send (OutInAxisOperation.java:441) в org.apache.axis2.description.OutInAxisOperationClient.executeImpl (OutInAxisOperation.java:227) в org.apache.axis2.client.OperationClient.execute (OperationClient.java:149) в org.wso2.carbon.identity.entitlement.stub.EntitlementServiceStub.getDecision (EntitlementServiceStub.java:836) в org.wso2.carbon.identity.entitlement.proxy.soap.basicAuth.BasicAuthEntitlementServiceClient.getDecision (BasicAuthEntitlementServiceClient.java:259) в org.wso2.carbon.identity.entitlement.proxy.soap.basicAuth.BasicAuthEntitlementServiceClient.getDecision (BasicAuthEntitlementServiceClient.java:123) в org.wso2.carbon.identity.entitlement.proxy.PEPProxy.getDecision (PEPProxy.java:94) в org.wso2.carbon.identity.entitlement.proxy.PEPProxy.getDecision (PEPProxy.java:66) в org.wso2.carbon.identity.entitlement.mediator.EntitlementMediator.mediate (EntitlementMediator.java:203) в org.apache.synapse.mediators.AbstractListMediator.mediate (AbstractListMediator.java:108) в org.apache.synapse.mediators.AbstractListMediator.mediate (AbstractListMediator.java:70) в org.apache.synapse.mediators.base.SequenceMediator.mediate (SequenceMediator.java:158) в org.wso2.carbon.apimgt.gateway.handlers.ext.APIManagerExtensionHandler.mediate (APIManagerExtensionHandler.java:66) в org.wso2.carbon.apimgt.gateway.handlers.ext.APIManagerExtensionHandler.handleRequest (APIManagerExtensionHandler.java:75) в org.apache.synapse.rest.API.process (API.java:325) в org.apache.synapse.rest.RESTRequestHandler.apiProcessNonDefaultStrategy (RESTRequestHandler.java:149) в org.apache.synapse.rest.RESTRequestHandler.dispatchToAPI (RESTRequestHandler.java:95) в org.apache.synapse.rest.RESTRequestHandler.process (RESTRequestHandler.java:71) вorg.apache.synapse.core.axis2.Axis2SynapseEnvironment.injectMessage (Axis2SynapseEnvironment.java:303) в org.apache.synapse.core.axis2.SynapseMessageReceiver.receive (SynapseMessageReceiver.java:92) в org.apache.axis2.engine.AxisEngine.receive (AxisEngine.java:180) в org.apache.synapse.transport.passthru.ServerWorker.processNonEntityEnclosingRESTHandler (ServerWorker.java:337) в org.apache.synapse.transport.passthru.ServerWorker.run (ServerWorker.java:158) в org.apache.axis2.transport.base.threads.NativeWorkerPool $ 1.run (NativeWorkerPool.java:172) в java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1142) в java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:617) at java.lang.Thread.run (Thread.java:745) [2019-05-28 12: 33: 05,164] ОШИБКА - Произошла ошибка EntitlementMediator при оценке политики org.apache.axis2.AxisFault: узел не аутентифицирован в org.apache.axis2.AxisFault.makeFault (AxisFault.java:430) в org.apache.axis2.transport.http.HTTPSender.sendViaPost (HTTPSender.java:203) в org.apache.axis2.transport.http.HTTPSender.send (HTTPSender.java:81) в org.apache.axis2.transport.http.CommonsHTTPTransportSender.writeMessageWithCommons (CommonsHTTPTransportSender.java:459) в org.apache.axis2.transport.http.CommonsHTTPTransportSender.invoke (CommonsHTTPTransportSender.java:286) в org.apache.axis2.engine.AxisEngine.send (AxisEngine.java:442) в org.apache.axis2.description.OutInAxisOperationClient.send (OutInAxisOperation.java:441) в org.apache.axis2.description.OutInAxisOperationClient.executeImpl (OutInAxisOperation.java:227) в org.apache.axis2.client.OperationClient.execute (OperationClient.java:149) в org.wso2.carbon.identity.entitlement.stub.EntitlementServiceStub.getDecision (EntitlementServiceStub.java:836) в org.wso2.carbon.identity.entitlement.proxy.soap.basicAuth.BasicAuthEntitlementServiceClient.getDecision (BasicAuthEntitlementServiceClient.java:259) в org.wso2.carbon.identity.entitlement.proxy.soap.basicAuth.BasicAuthEntitlementServiceClient.getDecision (BasicAuthEntitlementServiceClient.java:123) в org.wso2.carbon.identity.entitlement.proxy.PEPProxy.getDecision (PEPProxy.java:94) в org.wso2.carbon.identity.entitlement.proxy.PEPProxy.getDecision (PEPProxy.java:66) в org.wso2.carbon.identity.entitlement.mediator.EntitlementMediator.mediate (EntitlementMediator.java:203) в org.apache.synapse.mediators.AbstractListMediator.mediate (AbstractListMediator.java:108) в org.apache.synapse.mediators.AbstractListMediator.mediate (AbstractListMediator.java:70) в org.apache.synapse.mediators.base.SequenceMediator.mediate (SequenceMediator.java:158) в org.wso2.carbon.apimgt.gateway.handlers.ext.APIManagerExtensionHandler.mediate (APIManagerExtensionHandler.java:66) в org.wso2.carbon.apimgt.gateway.handlers.ext.APIManagerExtensionHandler.handleRequest (APIManagerExtensionHandler.java:75) в org.apache.synapse.rest.API.process (API.java:325) в org.apache.synapse.rest.RESTRequestHandler.apiProcessNonDefaultStrategy (RESTRequestHandler.java:149) в org.apache.synapse.rest.RESTRequestHandler.dispatchToAPI (RESTRequestHandler.java:95) в org.apache.synapse.rest.RESTRequestHandler.process (RESTRequestHandler.java:71) в org.apache.synapse.core.axis2.Axis2SynapseEnvironment.injectMessage (Axis2SynapseEnvironment.java:303) в org.apache.synapse.core.axis2.SynapseMessageReceiver.receive (SynapseMessageReceiver.java:92) в org.apache.axis2.engine.AxisEngine.receive (AxisEngine.java:180) в org.apache.synapse.transport.passthru.ServerWorker.processNonEntityEnclosingRESTHandler (ServerWorker.java:337) в org.apache.synapse.transport.passthru.ServerWorker.run (ServerWorker.java:158) в org.apache.axis2.transport.base.threads.NativeWorkerPool $ 1.run (NativeWorkerPool.java:172) вjava.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1142) в java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:617) at java.lang.Thread.run (Thread.java:745) Причина: javax.net.ssl.SSLPeerUnverifiedException: узел не аутентифицирован в sun.security.ssl.SSLSessionImpl.getPeerCertificates (SSLSessionImpl.java:431) в org.apache.commons.httpclient.protocol.SSLProtocolSocketFactory.verifyHostName (SSLProtocolSocketFactory.java:276) в org.apache.commons.httpclient.protocol.SSLProtocolSocketFactory.createSocket (SSLProtocolSocketFactory.java:186) в org.apache.commons.httpclient.HttpConnection.open (HttpConnection.java:707) в org.apache.commons.httpclient.MultiThreadedHttpConnectionManager $ HttpConnectionAdapter.open (MultiThreadedHttpConnectionManager.java:1361) в org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry (HttpMethodDirector.java:387) в org.apache.commons.httpclient.HttpMethodDirector.executeMethod (HttpMethodDirector.java:171) в org.apache.commons.httpclient.HttpClient.executeMethod (HttpClient.java:397) в org.apache.axis2.transport.http.AbstractHTTPSender.executeMethod (AbstractHTTPSender.java:704) в org.apache.axis2.transport.http.HTTPSender.sendViaPost (HTTPSender.java:199) ... еще 31 [2019-05-28 12: 33: 05,172] INFO - LogMediator STATUS = Выполнение последовательности ошибок по умолчанию, ERROR_CODE = 0, ERROR_MESSAGE = Произошла ошибка при оценке политики

1 Ответ

2 голосов
/ 29 мая 2019

Существует проблема проверки имени хоста, когда посредник предоставления прав пытается вызвать EntitlementService, предоставляемый WSO2 IS.

Вам необходимо правильно экспортировать публичный сертификат из APIM и импортировать в доверенное хранилище WSO2 IS. В публичном сертификате значение CN должно быть равно имени хоста или IP-адресу.

Как я помню, длина ключа хранилища первичных ключей различается в APIM 2.6.0 и IS 5.3.0. Однако вышеприведенный шаг должен решить вашу проблему.

Более того, это должно работать «из коробки», если вы использовали более позднюю версию WSO2 IS, чем 5.3.0 с именами хостов по умолчанию и общедоступными сертификатами по умолчанию.

...