How can Hidden Service Authentication be used? I never saw documentation about that anywhere.
According to the manual, there are two configuration options (i.e. things you put in your torrc):
HidServAuthis what can be used on the client. It allows you to provide authentication cookies for hidden services as in
HidServAuth <onion-address> <auth-cookie>.
HiddenServiceAuthorizeClientis the server side companion.
Protocol-related information can be found in the rendezvous-specification at section 2.
There's a great video example here from AdaFruit showing how to get it running on a Raspberry Pi. The links below the video have a load more useful links. It's insanely easy.