.NET에서 HttpDocumentRetriever를 사용한 프록시 OIDC 검색과 JWKS
Microsoft.IdentityModel의 구성 조회가 사용하는 retriever에 프록시를 인식하는 HttpClient를 주입하고, 새로 고침과 유효성 검사 정책은 그대로 유지합니다.
var handler = new HttpClientHandler
{
Proxy = new WebProxy("http://proxy.example:8080"),
UseProxy = true
};
var http = new HttpClient(handler);
var documents = new HttpDocumentRetriever(http);
var configuration = await OpenIdConnectConfigurationRetriever.GetAsync(
"https://issuer.example/.well-known/openid-configuration",
documents,
cancellationToken);HttpDocumentRetriever 은 Microsoft.IdentityModel.Protocols 에서 오고, OpenIdConnectConfigurationRetriever 은 그 OpenIdConnect 패키지에서 옵니다. HTTP 클라이언트는 작업이 끝날 때까지 살아 있게 두십시오. 공개 중개자가 허용되는 공개 discovery 및 JWKS URL의 경우 HTTP 프록시 목록이 WebProxy URL 후보를 제공합니다.
조회는 먼저 discovery를 가져온 뒤, 존재할 때 같은 retriever를 jwks_uri 에도 사용합니다. 이 URL들은 서로 다른 호스트일 수 있으며 프록시는 둘 다 허용해야 합니다.
프록시 인증의 경우 구성하기 전에 WebProxy 의 계정을 설정하십시오. 이것은 발급자의 클라이언트 비밀이 아닙니다.
오래 실행되는 인증 서비스에서는 들어오는 요청마다 구성을 내려받는 대신 이 retriever를 지원되는 캐시 및 새로 고침 방식에 넘기십시오. 발급자, HTTPS 신뢰, 토큰 유효성 검사 정책은 이 전송 선택과 무관하게 유지하십시오.