HTTP digest is the way to send relatively secure (non seeded pwd hashes)
crendentials over HTTP. The problem with digest is that, while it's more
secure than HTTP basic, it stills receives non-seeded pwds. That has two
effects.
First, it's susceptible to dictionary attacks, so only reasonably long
passwords should be used over non-ssl transports.
Second, it requires your db to store the pwd in clear text or the direct
hash, rather than a hash + seed. That means that you need to think that in
case your db gets compromised, finding out the passwords of your user base
is still subject to dictionary attacks. This can be mitigated for by
encrypting the column in sql 2008+, which closes the problem if someone gets
hold of the mdf, but doesn't protect you against sql injection etc.
Digest is still better than Basic, but unless all your pwds are of a
reasonable size, i'd recommend using those over SSL only.
That said, the best way is probably to use your API key as the pwd in digest
auth, and generate such key to be for example hash(pwd+seed) and store that
at user account creation time. That's assuming you're storing only
hash(pwd+seed) and seed in your db.
I'm much less happy with most solutions that require custom http headers for
api keys when http authentication already provides for a combination
username + secret. Add to the fact that every http toolkit out there
supports http authentication, it would be a shame not to use it.
As for windows authentication, you can still use that, but that's IIS
responsibility, not OR.
To answer the remaining question, you currently need to register an
IAuthenticationProvider, and it currently only supports clear-text pwd
storage.
Next version we'll make the authentication system more pluggable, but right
now only digest is supported.
Seb
I started implementing digest earlier, and believe I am getting close
to getting it running. It hits the iauthentication provider but always
returns a 404. Not sure exactly why as yet but I'll get to the bottom
of it.
Thanks again
David
Sent from my iPhon
Does the handler work without authentication enabled?
Also, can you post the debug log?
Seb