WSO2 ESB API payload Security - wso2

I developed some API in WSO2 ESB server.I need to pass encrypted data to my resource server through the ESB. But i need to update data (payload) while request reach in ESB apart of my business.Is there any solution .any help please ?

According to the requirement you have mentioned here you can update data in the payload inside the ESB with the help of a Payload Factory mediator.
As an example, please refer documentation [1] Section of “Using WSO2 ESB to modify messages with text content".
Encrypting the data/payload inside the WSO2 ESB, does not support Out Of the Box.
As a suggestion, I would suggest to implement the scenario with the help of the transport layer by Enabling SSL profiling feature with WSO2 ESB which will communicate with a resource server in a safe manner.
For more information on SSL profiles in WSO2 ESB, please visit documentation [2].
[1] https://nadeesha678.wordpress.com/tag/wso2-esb/
[2] http://pathberiya.blogspot.com/2010/07/ssl-profiles-in-wso2-esb.html

Related

WSO2 1.9 API Manager HTTP Listener - Transports Statistics

I'm not receiving any input on the Transport Statistics metrics page on the API Manager web page. Is this supposed to work out of the box? Please help me with how to setup this up so I receive data. I'm looking to identify how much data (size) is being transferred during API calls. Is there a different way?
API Manager is not provided Transport Statistics by default. We can configure Wso2 API Manger 1.9 with WSO2 BAM (Business Activity Monitor) or Google Analytics to achieve your requirement.
You can follow the steps mentioned in the document [1] to configure API manager with BAM or Google Analytics.
[1]- https://docs.wso2.com/display/AM190/Working+with+Statistics

WSO2 enable transport from Carbon Application

To use some transports in WSO2 esb you have to edit the ESB_HOME/conf/axis2.xml
Like in this tutorial you have to uncomment the email transport.
Is there a way to configure a transport in Carbon application developed in WSO2 Developer Studio, without editting the axis2.xml?
When a request comes to ESB it first hits to axis2 level. Then the transport is selected from axis2 and then request goes to synapse level.So any way we need to edit the axis2.xml to enable any transport for that request.

Do I need any other wso2 product or ESB is just fine?

I'm working on a master's degree project which the main goal is wso2 study.
Through wso2 I need to be able to:
Do protocol Bridging (eg: rest to soap);
Apply data transformation (apply xslt on xml);
Content based routing;
Load balancing;
Create authentication and authorization layer to legacy services (authentication via oauth 1.0a);
Exception shielding;
Service monitoring;
Services lifecycle control;
So, my question is: do I need any other wso2 product, or ESB is just fine? For example to implement the security layer and all the load balance stuff do I need to add wso2 identity server and wso2 elastic load balancer?
Or even more: do I need to extend the esb by writing custom code to solve any of this issues? In which cases extend the esb is the only way to go?
I hope to do not be naive trying to solve all this complicated issues, but I'm kinda lost on this big swiss knife that wso2 is.
Thanks
Please find my answer..
Do protocol Bridging (eg: rest to soap ---> ESB
Apply data transformation (apply xslt on xml) ----> ESB
Content based routing ----> ESB
Load balancing ---> ESB can be used. But i prefer Apache HTTP and Nginx. They are more intended for that purpose
Create authentication and authorization layer to legacy services (authentication via oauth 1.0a) --> ESB can be used. But you need an OAuth2 Authorization server for token validation. Also, XACML PDP for policy validation. Both are available with Identity Server. According to the Carbon, you can install those features with ESB as well. But it is not recommended much. Please see more details from here
Exception shielding ---> ESB
Service monitoring ----> ESB can be used. But if more, you can use BAM
Services lifecycle control ---> ESB can be used. If needed more, you can install G-reg features
I think. It is only enough to use WSO2 ESB and WSO2 IS for this purpose. Sometime you may need to write some code. But it is easy as there are lot of samples are available freely.

Does WSO2 Identity Server expose an endpoint/URI for XACML requests?

Does anyone know if the WSO2 Identity Server exposes a web service endpoint/URI to which I can send XACML requests via HTTP(S)? I am aware that they provide an API for doing this, but I have a situation where I can't use that, but I can do HTTP requests.
Thanks,
Jim
P.S. For the record, I think I've found my answer, mostly deduced from this page:
http://wso2.com/library/articles/2013/11/fine-grained-xacml-authoriation-with-pip-points/
That page tells how to enable WSO2 to unhide the WSDL for the EntitlementService web service.
Yes, you can enable the entitlement service wsdl and call it from external systems according to your requirement to send requests. By default this admin service is disabled. You can read more about it at PDP PEP Communication – how WSO2 Identity Server defines

Simple WSO2 ESB Soap interface

Myself: New to WSO2, Evaluating multiple ESB products
Here is what I am trying to do with wso2 ESB
Application "A" will send a zipcode (SOAP-WDSL) to WSO2-ESB
WSo2 will use that zip-code and query National WeatherService and obtain
the Lati-Long for zipcode
LatLonListZipCode method at
http://graphical.weather.gov/xml/SOAP_server/ndfdXMLserver.php?wsdl
Return the lat-Lon to Application "A"
Would someone please guide me , like where to start and the components needed so forth?
I am kind of confused by all the terminologies and over complicated product names and hierarchy (carbon, oxygen so forth)
For your requirement what you simply need is to create a Proxy service in WSO2 ESB to invoke this Backend service. (National WeatherService)
If you want to get started with WSO2 ESB I recommend you to 1st go though. WSO2 ESB Sample guide and WSO2 ESB Configuration. Where you can get a head start using that.
For your scenario you can simply follow the below steps to create a simple WSDL Proxy create a working scenario which you can later improve (ex with routing , monitoring etc..)
1) Login to WSO2 ESB.
2) Go to Proxy Service Adding Section
3) Select WSDL Based Proxy as the Template
4) Give a Proxy name , WSDL url , Service name (ndfdXML) , WSDL Port (ndfdXMLPort) and tick Publish Same Service Contract
And create the service.
Now you have exposed the same service though WSO2 ESB. You can go to service list section.Get the Service EPR details and invoke the service using your application.
Below is a nice work done for beginners. Someting similar to your case
http://dakshithar.blogspot.com/2012/07/routing-and-service-chaining-with-wso2.html