کشف OIDC از طریق پروکسی و JWKS در .NET با HttpDocumentRetriever
HttpClient آگاه از پروکسی را به retrieverی تزریق کنید که جستوجوی پیکربندی Microsoft.IdentityModel از آن استفاده میکند، در حالی که سیاست بازتازهسازی و اعتبارسنجی دستنخورده میماند.
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 که واسطههای عمومی در آنها مجاز است، فهرست پروکسی HTTP نامزدهایی برای نشانی WebProxy فراهم میکند.
جستوجو نخست discovery را میگیرد و سپس همان retriever دادهشده را برای jwks_uri، در صورت وجود، به کار میبرد. این نشانیها میتوانند میزبانهای متفاوت داشته باشند و پروکسی باید هر دو را مجاز کند.
برای احراز هویت پروکسی، حساب WebProxy را پیش از ساخت پیکربندی کنید. این رمز کلاینت صادرکننده نیست.
در یک سرویس احراز هویت طولانیمدت، این retriever را به سازوکار پشتیبانیشدهٔ حافظه نهان و بازتازهسازی بسپارید، بهجای آنکه پیکربندی را برای هر درخواست ورودی دانلود کنید. سیاست صادرکننده، اعتماد HTTPS و اعتبارسنجی توکن را مستقل از این انتخاب انتقال نگه دارید.