¿Cómo consume parámetros adicionales en la solicitud de token OAuth2 dentro de la aplicación .net WebApi2?

Tengo un proyecto específico de api en una gran solución web .net MVC 5. Estoy utilizando las plantillas de WebApi2 de la caja para autenticar a un usuario a través de la api. Al usar cuentas individuales para autenticarse, el cuerpo de solicitud requerido para obtener un token de acceso es:

grant_type=password&username={someuser}&password={somepassword}

Esto funciona como se esperaba.

Sin embargo, necesito agregar una tercera dimensión al método de andamios "GrantResourceOwnerCredentials". Además de verificar el nombre de usuario / contraseña, necesito agregar una identificación de dispositivo, que está destinada a restringir el acceso desde una cuenta de usuario a un dispositivo específico. Lo que no está claro es cómo agregar estos parámetros de solicitud adicionales al "OAuthGrantResourceOwnerCredentialsContext" ya definido. Actualmente, este contexto deja espacio para el nombre de usuario y la contraseña, pero obviamente tendré que incluir más.

Mi pregunta es simple: ¿existe una forma estándar de extender los requisitos de inicio de sesión para la solicitud de token OWIN OAuth2 para incluir más datos? Y, ¿cómo lo haría de manera confiable en un entorno .NET WebApi2?

Respuestas a la pregunta(1)

Su respuesta a la pregunta