www tutorial net asp asp.net-web-api asp.net-core oauth-2.0 openid openiddict

asp.net web api - tutorial - SignalR y OpenId Connect



signalr net core tutorial (1)

Si usa JwtBearerAuthentication , puede usar OnMessageReceived para establecer token:

Events = new JwtBearerEvents() { OnMessageReceived = async (ctx) => { ctx.Token = ctx.Request.Query["<qs-name>"]; } }

O si usa IdentityServerAuthentication , puede usar TokenRetriever (no probado, pero debería ser algo como esto):

TokenRetriever = (ctx) => { return ctx.Request.Query["<qs-name>"]; }

Tengo un servidor que utiliza ASP.NET Core Web Api y OpenIddict como marco de autorización. Ahora agregué un host SignalR y quiero agregarle una autorización.

De diferentes fuentes encontré que SignalR (JS Client) desea que envíe el token de acceso en la cadena de consulta o por cookie, ya que los websockets no admiten encabezados.

Como el middleware de autenticación no comprueba el contenedor de la cadena de consulta o el contenedor de cookies para una entrada de autorización, necesito implementar dicho proveedor / recuperador / resolver, que lee este valor yo mismo.

Encontré una solución para IdentityServer pero nada sobre OpenIddict .

¿Dónde / Cómo implemento un sistema de resolución de tokens con OpenIddict ?