I described the solution in here:
https://forums.unrealengine.com/development-discussion/content-creation/1650332-zooming-to-a-specific-point-on-an-object
The trick is to get the point under the cursor by calling GetHitResultUnderCursorForObjects which will get you the impact point. You can than subtract the the camera’s world location from the impact point which will get you a direction in which you need to shift the camera (without rotating it). You can do that for example by multiplying the vector by say 0.1 and adding it to the camera world location. If you have the camera attached to a spring arm, you can simply update the target offset property.
Credits go to @foodi.
In case you need to also rotate the camera around a specific point, you need to employ some mechanism to reset the camera orientation. I use a timeline to interpolate the camera parameters when I need to reset it or start rotating the camera (see the link).