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 ?