Мне нравится ответ Гэри, установка сертификатов кажется лучшим вариантом.
Но, я полагаю, вы можете использовать BackchannelHttpHandler, чтобы установить собственную проверку сертификата.
.AddOAuth(authenticationScheme: "the_scheme", configureOptions: oauthOptions => {
oauthOptions.ClientId = pConfiguration["the_scheme:ClientId"];
oauthOptions.ClientSecret = pConfiguration["the_scheme:ClientSecret"];
oauthOptions.CallbackPath = new PathString(pConfiguration["the_scheme:CallbackURL"]);
oauthOptions.AuthorizationEndpoint = "https://the.idm.dev/idm/oauth/authorize";
oauthOptions.TokenEndpoint = "https://the.idm.dev/idm/oauth/token";
oauthOptions.UserInformationEndpoint = "https://the.idm.dev/idm/oauth/userinfo";
oauthOptions.Scope.Add(pConfiguration["the_scheme:Scope"]);
oauthOptions.SaveTokens = true;
//Handle the certificate checks yourself,
oauthOptions.BackchannelHttpHandler = new HttpClientHandler()
{
ServerCertificateCustomValidationCallback = (message, cert, chain, errors) => {
if (cert.Thumbprint == Configuration["TrustedCertificateThumbprint"])
{
return true;
}
}
};
});
});
Это похоже к другим примерам, которые вы, возможно, уже видели, но вместо того, чтобы просто возвращать true, вы можете добавить свои собственные проверки, такие как отпечаток сертификата или, возможно, орган подписи.
Если у вас есть контроль над сервером ID, вы также можете получить сертификат с доверенным root, откуда-то вроде letsencrypt