or just use a public one? AUTH works on relays today.
Discussion
client handles auth, whether relays support it is a separate matter, and for what reason
it can be added to strfry with a plugin, my relay replicatr handles it natively, uses it to auth users for a DM based CLI, and has a fallback in chat that asks the user to paste a challenge string (which includes a timestamp)