MSAL.NET에 재사용 가능한 프록시 클라이언트 제공
공유 프록시 인식 HttpClient를 감싸는 IMsalHttpClientFactory를 구현하고 MSAL 애플리케이션 빌더에 연결합니다.
MSAL.NET은 IMsalHttpClientFactory에서 HTTP 전송을 가져올 수 있습니다. 프록시용으로 구성된 클라이언트를 감싸십시오.
sealed class TokenHttpFactory : IMsalHttpClientFactory
{
private readonly HttpClient client;
public TokenHttpFactory(HttpClient client)
{
this.client = client;
}
public HttpClient GetHttpClient() => client;
}처리기와 클라이언트를 애플리케이션 수명 동안 한 번만 만들고, 기존 MSAL 빌더 구성 중에 팩터리를 연결하십시오.
var proxy = new WebProxy("http://proxy.example:8080");
var handler = new HttpClientHandler { Proxy = proxy, UseProxy = true };
var tokenHttp = new HttpClient(handler);
builder.WithHttpClientFactory(new TokenHttpFactory(tokenHttp));빌더는 애플리케이션의 기존 MSAL 애플리케이션 빌더입니다. 해당 authority, 클라이언트 등록 및 자격 증명 구성을 유지하십시오. 프록시 계정 없이 허용된 공개적으로 연결 가능한 HTTPS authority 경로의 경우 HTTP 프록시 목록의 HTTP 주소로 예제 WebProxy를 채울 수 있습니다. 필요할 때 WebProxy에 프록시 자격 증명을 구성하십시오.
팩터리는 스레드 안전해야 합니다. 각 GetHttpClient 호출 안에서 새로 만드는 대신 클라이언트를 재사용하십시오. MSAL은 제공된 클라이언트를 삭제하지 않으며, 소유자가 해당 수명을 관리합니다.
이것은 MSAL의 HTTP 요청을 제어합니다. 대화형 로그인은 네트워크가 별도인 브라우저를 열 수 있습니다. 따라서 브라우저 로그인이 성공해도 토큰 HTTP 클라이언트가 같은 경로를 사용한다는 증거는 아닙니다.