¿Cómo devolver un token web JSON en una API WEB C #?

Estoy tratando de ajustar mi ventaja usando JWT para asegurar una API WEB escrita en C #, pero me estoy quedando atrapado en algunas cosas. Según tengo entendido, el flujo debería ser algo como esto:

El cliente proporciona nombre de usuario / contraseña a la API web desde alguna aplicación de cliente (Angular, .NET, Mobile, etc.)La API web valida que el nombre de usuario / contraseña es correcto y luego genera un JWT (JSON Web Token) que contiene los roles, la información, la fecha de vencimiento y otra información relevante del usuario.El JWT se envía de vuelta a la aplicación cliente.La aplicación cliente se cuelga del JWT y lo envía con solicitudes futuras.

Suponiendo que lo anterior es correcto (y avíseme si no lo es), tengo problemas para comprender las siguientes cosas.

Una vez que la API web ha validado el nombre de usuario / contraseña y creado el JWT, ¿cómo se transfiere el JWT? ¿Lo agrego de alguna manera a un objeto HttpResponseMessage? Parece que no puedo encontrar una respuesta clara sobre esto.¿Cómo debe la aplicación cliente devolver el JWT? ¿Está esto en los datos JSON, agregados a la URL, agregados a los encabezados?Veo muchos tutoriales que hacen referencia a OWIN y OAUTH. ¿Qué son estos y por qué los necesito? Tengo las credenciales y roles de usuario en la base de datos utilizada por la API WEB.

Respuestas a la pregunta(1)

Su respuesta a la pregunta