What others said. Sun is modelled as a directional light, i.e. the direction of light is independent of the intersection point as it's very far away. So you just define a point in space and that itself is the "direction towards the light source". If you want the direction of light rays towards the objects you gotta negate that.
Coming to your second part. For shadow rays, you need to send a ray from the point of intersection towards the light source, since it's the sun in your case, the direction is just the location of the sun. Do note that the origin of the ray is not
intersection point rather it's
intersection point + epsilon where epsilon is a very small value (say 0.001) in order to avoid intersection of the ray with the object it generated from.
After that you check for intersection of objects with this shadow ray. You don't need to compute the intersection points, you just need to know whether the ray intersected with an object or not. If it did you set the pixel color to just the ambient color.