편집 : SSL 오프로드를 수행하도록 설정설정 신원 서버 4 리버스 프록시
nginx를 리버스 프록시 : 더 자세한 설명
우리는 다음과 같은 설정이있다. 모든 내부 통신은 HTTP를 통해 이루어집니다. 리디렉션의 설정은 다음과 같이이다 :
proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection keep-alive; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Original-For $proxy_add_x_forwarded_for; proxy_set_header X-Original-Proto $scheme; proxy_cache_bypass $http_upgrade;
IS4는
FALSE로 설정되고 클라이언트 측 RequireHttpsMetadata에 app.UseIdentityServervar fordwardedHeaderOptions = new ForwardedHeadersOptions { ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto }; fordwardedHeaderOptions.KnownNetworks.Clear(); fordwardedHeaderOptions.KnownProxies.Clear(); app.UseForwardedHeaders(fordwardedHeaderOptions);
전에 다음과 같은 설정을 가지고
IS4 쪽에서 모든 클라이언트는 "리디렉션"에 대한 HTTPS 주소를 갖도록 구성됩니다 Uris "및"PostLogoutRedirectUris "가 있습니다. 클라이언트 측 IdentityServerAuthenticationOptions에
- 은 다음과 같이 구성됩니다
new IdentityServerAuthenticationOptions { Authority = "https://[OAUTH_ADDRESS]", ApiName = "[API_NAME]", ApiSecret = "[API_SECRET]", RequireHttpsMetadata = false }
무엇 실제로 일어나는 것은 그 우리는 우리의 등록 IS4에서 클라이언트 중 하나를 방문하려고 요청이 리디렉션 될 때 인증을 위해 IS4에 "Unauthorized client"메시지 화면이 있습니다. 또한 리디렉션 된 요청의 쿼리 문자열을 검사 한 후에 반환 URL이 HTTPS가 아닌 HTTP임을 알 수 있습니다.
알려 주시기 바랍니다.
당신은 IS4에 대한 HTTPS를 사용하지 않아도됩니다. 보안 영향없이 불필요한 복잡성과 성능 저하를 피하기 위해 백엔드에 대한 ssl 오프로드를 수행하는 잘 알려진 방법입니다. MS Azure는 유사한 건축가 개념을 적용합니다. more here : https://docs.microsoft.com/en-us/aspnet/core/publishing/linuxproduction?tabs=aspnetcore2x#why-use-a-reverse-proxy-server –