0
1) Windows 인증 Windows에서 인증되지 않은 경우
2)를 사용하여 사용자를 인증합니다. Owin 액세스 토큰을 사용하여 사용자를 인증하려고 시도합니다.
내 코드가 작동하지만 Windows 인증을 사용하도록 설정하면 다음과 같다 : 다음
public static IAppBuilder EnableWindowsAuthentication(this IAppBuilder app)
{
if (!app.Properties.TryGetValue("System.Net.HttpListener", out var val))
return app;
if (val is HttpListener listener)
{
listener.AuthenticationSchemes = AuthenticationSchemes.IntegratedWindowsAuthentication;
}
return app;
}
Startup.cs 내부 :
public void Configuration(IAppBuilder app)
{
OnAppDisposing(app);
ConfigureOAuth(app);
var config = new HttpConfiguration();
var webApiConfiguration = WebApiConfig.Register(config);
app.UseCors(CorsOptions.AllowAll);
app.EnableWindowsAuthentication();
//here some owin middlewares
app.UseWebApi(webApiConfiguration);
}
private void ConfigureOAuth(IAppBuilder app)
{
OAuthBearerOptions = new OAuthBearerAuthenticationOptions();
OAuthAuthorizationServerOptions OAuthServerOptions = new OAuthAuthorizationServerOptions()
{
AllowInsecureHttp = true,
TokenEndpointPath = new PathString("/api/token"),
AccessTokenExpireTimeSpan = TimeSpan.FromMinutes(60),
Provider = new SimpleAuthorizationServerProvider()
};
// Token Generation
app.UseOAuthBearerAuthentication(OAuthBearerOptions);
app.UseOAuthAuthorizationServer(OAuthServerOptions);
}
내가 얻을 무기명 토큰을 사용하여 인증 된 엔드 포인트를 호출하려고하면 401 UnAuthorized.
제 질문은이 시나리오를 해결하고 두 인증 방법을 함께 사용하는 방법입니다.