Coloring powders are available, but be sure to follow the directions exactly if you are targeting a specific shade. These can also be expensive, and tricky to use because because the color appears very different when mixed into wet concrete, compared to the final product. If your porch is bare concrete, I would skip the coloring powders and go right to a good ol' bag of Quikrete.
For prep: Using a concrete saw to cleanup the edges before filling the hole should help the seams appear less obvious. Whenever patching concrete, especially when that concrete is aged and weathered, it is very difficult to match the color. If you use Quikrete, you should be able to get a fairly smooth seem. Just use a trowel to smooth it over and gently "slap" the surface to ensure the aggregate sinks down. It would also be a good idea to prime the edges of the hole, to help ensure a good bond with the new concrete. Since this is outside, make sure the concrete does not freeze, or dry out too quickly.
*Tip - Use dirt or sand underneath the patch to build a 'foundation' for the concrete to rest on while it cures. Fill the area underneath the hole with dirt, then slowly pour a few gallons of water on it to make sure it fully settles before you put concrete on top of it, otherwise it could shift and disturb your new concrete.
Once you get a good idea of what the finished patch will look like in terms of color, you can decide from there if the color match is satisfactory. If you do not like the color of the patch, you can always stain the concrete. There are a lot of good concrete coloring products, like concrete stain and Concrete Etching Stains available. This will add an extra step, but if you were to stain the entire porch, not only would the patch all but disappear, but you would also improve the look and durability of your porch.