2016-11-25 2 views
1

ASP.NET Core Web ApiOpenIddict을 인증 프레임 워크로 사용하는 서버가 있습니다. 이제 SignalR 호스트를 추가했으며 여기에 권한을 추가하려고합니다.SignalR 및 OpenId Connect

different sourcesSignalR (JS 클라이언트)은 웹 소켓이 헤더를 지원하지 않으므로 쿼리 문자열이나 쿠키로 액세스 토큰을 보내려고합니다.

인증 미들웨어가 인증 항목에 대한 쿼리 문자열 또는 쿠키 컨테이너를 확인하지 않아서이 값을 직접 읽는 제공자/검색 자/확인자를 구현해야합니다.

solution for IdentityServer을 찾았지만 OpenIddict에 대한 정보가 없습니다.

여기/OpenIddict과 같은 토큰 분석기를 구현하려면 어떻게해야합니까?

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

을 아니면 IdentityServerAuthentication를 사용하는 경우 당신은 TokenRetriever 사용할 수 있습니다 (테스트하지를하지만이 같은되어야합니다) : 당신이 JwtBearerAuthentication를 사용하는 경우

+0

[this] (https://github.com/mikebridge/IdentityServer4SignalR)이 무엇을하려는 것입니까? 질의 문자열과 헤더를 모두 받아들이 기 위해 [미들웨어의 두 가지 수준] (https://github.com/mikebridge/IdentityServer4SignalR/blob/master/src/ChatAPI/Auth/JWTInitialization.cs#L80-L87)이 있습니다. – mikebridge

답변

2

다음 토큰 설정 OnMessageReceived을 사용할 수 있습니다

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