Brad,
First of all, props to you for reading the spec -- I think many folks use these security protocols without doing that.
The client_secret is indeed validated. DNOA uses IAuthorizationServerHost.GetClient(client_id) to obtain an IClientDescription, and then calls IClientDescription.IsValidClientSecret to validate that the client secret is valid. It does this before ever calling IAuthorizationServerHost.TryAuthorizeResourceOwnerCredentialGrant. If the client_id and secret do not match, it rejects the request. If the secret is omitted, the client is assumed to be public.
When DNOA calls IAuthorizationServerHost.TryAuthorizeResourceOwnerCredentialGrant, the IAccessTokenRequest instance that it passes in as the third parameter can be used to determine whether it is an anonymous client, a public client, or a confidential client.
So I believe everything you need is already there. Let me know if you disagree.
You received this message because you are subscribed to the Google Groups "DotNetOpenAuth" group.