With OAuth the ClientID and redirect_url have a strong connection: You need a seperate ClientID for each redirect_url. This is a problem for on-premise applications which have multiple deployments in multiple domains.
Is there any way to implement OAuth authentication from an unknown domain? The only alternative I could come up with requires a dedicated "authentication server" at a fixed domain which can be used as the redirect_url and can then perform a new, unrestricted, redirect to the customer domain.
Desktop applications work around this by supplying a dummy redirect_url and then hosting the live authentication window in a dedicated web frame which lets them listen to the redirect requests. This allows them to read the authorization code from the redirect URL even if the URL itself isn't valid. I believe this isn't possible in web browsers due to cross-domain restrictions.
Essentially OAuth would be needed for supporting SkyDrive publishing in an on-premise web application.