I don't know of any automated approaches for 3D sadly; also I assumed you were using this to model a player character or similar dynamic object.. it sounds like that's not the case!
I think the iquilez approach may be the simplest solution, if you can find a way to iterate towards the surface; he uses those distance functions in an iterative context, so I'm guessing that while the formula is only a bound, it's a bound which converges on the true solution the closer you start from it.
This means:
1) start at your query point
2) calculate the distance and the closest point/normal
3) move the query point along the normal by the given distance
4) go to (1) unless things have converged (eg the reported distance is below some threshold)
The hard part will be generating a closest point/normal from a scalar distance value, however he's written an article about that too
https://www.iquilezles.org/www/articles/normalsSDF/normalsSDF.htm