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 신뢰, 토큰 유효성 검사 정책은 이 전송 선택과 무관하게 유지하십시오.

관련 글