Не уверен, поможет ли это вам, но вот мой ответ.
Я использую неявный поток с учетными данными клиента со следующими настройками на моем клиенте.
Запуск.cs
services.AddAuthentication(option => {
option.DefaultScheme = "Cookies";
option.DefaultChallengeScheme = "oidc";
}).AddCookie("Cookies")
.AddOpenIdConnect("oidc", options => {
options.SignInScheme = "Cookies";
options.Authority = Configuration["Authentication:Authority"];
options.RequireHttpsMetadata = false;
options.ClientId = Configuration["Authentication:ClientId"];
options.SaveTokens = true;
options.GetClaimsFromUserInfoEndpoint = true;
options.ClientSecret = "secret";
options.AuthenticationMethod = OpenIdConnectRedirectBehavior.FormPost;
});
На контроллере, который вы пытаетесь защитить, есть атрибут [Authorize].
в моем клиентском приложении, у меня есть это.
[Authorize]
public IActionResult performlogin()
{
return RedirectToAction("index", "home");
}
Это должно перенаправить вас на сервер идентификации для входа в систему.
Моя подпись метода для входа в систему на сервере идентификации выглядит следующим образом.
public async Task<IActionResult> Login(string returnUrl){
// do login code and redirect
// returnUrl should have the redirect path with query string.
}
При успешном входе в систему перенаправьте
Надеюсь, это поможет