Penemuan OIDC melalui proksi dan JWKS dalam .NET dengan HttpDocumentRetriever
Suntikkan HttpClient yang sedar proksi ke dalam retriever yang digunakan oleh carian konfigurasi Microsoft.IdentityModel, sambil mengekalkan dasar penyegaran dan pengesahan.
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 berasal daripada Microsoft.IdentityModel.Protocols; OpenIdConnectConfigurationRetriever berasal daripada pakej OpenIdConnect-nya. Kekalkan klien HTTP hidup sepanjang beban kerjanya. Untuk URL discovery dan JWKS awam yang membenarkan perantara awam, senarai proksi HTTP menyediakan calon untuk URL WebProxy.
Carian mengambil discovery dahulu, kemudian menggunakan retriever yang sama untuk jwks_uri apabila ada. URL itu mungkin berada pada hos berbeza, dan proksi mesti membenarkan kedua-duanya.
Untuk pengesahan proksi, konfigurasikan akaun WebProxy sebelum pembinaan. Ia bukan rahsia klien pengeluar.
Dalam perkhidmatan pengesahan jangka panjang, serahkan retriever ini kepada susunan cache dan penyegaran yang disokong dan bukan memuat turun konfigurasi bagi setiap permintaan masuk. Kekalkan dasar pengeluar, kepercayaan HTTPS dan pengesahan token bebas daripada pilihan pengangkutan ini.