0

.net core 2.0 웹 API에서 openiddict를 설정하고 코드 및 비밀번호 흐름을 작동 시켰습니다. 요청자가 401 상태 코드를 찾는 권한을 부여받지 않은 경우 API의 잠긴 조치가 거부되도록하는 테스트 사례가 있습니다.무단 웹 API 호출 (코어 2.0)에 대해 401 대신 404를 반환하는 Openiddict

이 테스트를 실행하면 401 대신에 404가 없으므로 테스트가 실패합니다. 익명을 허용 할 때 200을 반환하기 때문에 경로가 정확하다는 것을 알고 있습니다. 인증없이 잠긴 작업에 액세스하려고하면 404가 표시됩니다. 인증되지 않은 채 리소스에 액세스하려고 할 때 openiddict의 기본 상태입니까? 이 문제는 브라우저, 우편 배달부 또는 테스트 사례에서 실행되었는지 여부에 관계없이 발생합니다. 401을 반환하도록 구성하는 방법은 무엇입니까? 아래에 구성을 제공했습니다.

services.AddOpenIddict<int>(options => 
{ 
    options.AddEntityFrameworkCoreStores<ApplicationContext>(); 
    options.AddMvcBinders(); 
    options.EnableAuthorizationEndpoint("/connect/authorize"); 
    options.EnableTokenEndpoint("/connect/token"); 
    options.AllowAuthorizationCodeFlow(); 
    options.AllowPasswordFlow(); 
    options.AllowRefreshTokenFlow(); 
    options.RequireClientIdentification(); 
    options.SetAccessTokenLifetime(TimeSpan.FromMinutes(1)); 
    options.SetRefreshTokenLifetime(TimeSpan.FromMinutes(20160)); 
    options.DisableHttpsRequirement(); 
}); 
services.AddAuthentication() 
    .AddFacebook(o => { o.ClientId = settings.FacebookAppID; o.ClientSecret = settings.FacebookAppSecret; }) 
    .AddOAuthValidation(); 

답변

2

기본 시도를 oauth로 지정하여 원하는 401을 얻을 수있었습니다. 리디렉션을 시도한 위치를 파악하는 것이 좋습니다.

services.AddAuthentication(o => 
    { 
     o.DefaultAuthenticateScheme = OAuthValidationDefaults.AuthenticationScheme; 
     o.DefaultChallengeScheme = OAuthValidationDefaults.AuthenticationScheme; 
    }) 
    .AddFacebook(o => { o.ClientId = settings.FacebookAppID; o.ClientSecret = settings.FacebookAppSecret; }) 
    .AddOAuthValidation(); 
+0

ASP.NET 코어 아이덴티티 옵션에 설정된 "액세스가 거부되었습니다"페이지에'리다이렉트를 시도한 곳을 알면 좋을까요? '->. 표시되는 동작은 Identity에서 사용하는 쿠키 처리기 (기본 구성표로 구성된 쿠키 처리기)와 403 응답을 반환하는 대신 리디렉션하는 것으로 인해 발생합니다. 액세스 거부 페이지가 앱에 존재하지 않으므로 궁극적으로 404 응답을받습니다. – Pinpoint

+0

(이전에 언급 한 내용이 분명하지 않은 경우를 대비하여 OpenIddict 자체와는 아무런 관련이 없습니다.) – Pinpoint

+0

그건 완전히 이해가됩니다. 정말 따라와 주셔서 감사합니다. 나는 openiddict에 초보자이기 때문에 메커니즘이나 무언가가 내장되어 있는지 알지 못했습니다. 그건 그렇고 ...이 포럼을 모니터링 해 주셔서 감사합니다 ... 나에게 여러 번 도움을 주셨습니다 ... 환호! – Geekn