我目前正在开发一个 Web 应用程序,该应用程序需要从开发环境中使用自签名证书的 IDM 系统中检索数据(我不知道原因)。它使用 OAuth 作为授权方法,所以我目前正在使用 .Net Core 3.1 OAuth 库,它在从 IDM 成功重定向后抛出 SSL 异常。我从 IDM 获得了自签名证书(PFX 文件),但我不知道在哪里添加它。
public void ConfigureServices(IServiceCollection services)
{
//services.Configure<KestrelServerOptions>(pConfiguration.GetSection("Kestrel"));
services.AddControllers();
services.AddControllersWithViews();
services
.AddAuthentication(authenticationOptions => {
authenticationOptions.DefaultAuthenticateScheme = CookieAuthenticationDefaults.AuthenticationScheme;
authenticationOptions.DefaultSignInScheme = CookieAuthenticationDefaults.AuthenticationScheme;
authenticationOptions.DefaultChallengeScheme = "the_scheme_challenge";
})
.AddCookie()
.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;
});
}
任何建议都会被接受,我不想用一些不安全的代码从头开始编写所有的 HTTP 请求和逻辑(比如允许接受任何证书)。
我已经针对其他 OpenID 提供程序测试了代码并且它有效。