Я должен реализовать единый вход с помощью identifitiserver4 (сервер OAuth).Я довольно о стандартах аутентификации, поэтому, прежде чем начать работать над этим, я провожу некоторые исследования в Интернете и обнаружил, что SSO - это, по сути, социальный логин, где провайдер не является социальной сетью.
Я прочитал, что identityserver4 реализует oidc , с которым используется SSO.
В файле Startup.cs я добавил следующее:
services.AddAuthentication(options =>
{
options.DefaultScheme = "Cookies";
})
.AddOpenIdConnect("oidc", options =>
{
//options.SignInScheme = "Cookies";
options.Authority = "<url-sso-server>";
options.ClientId = "<client-id>";
options.SaveTokens = true;
});
Достаточно ли этих настроек?Всякий раз, когда мне нужно будет добавить нового поставщика единого входа, я просто должен попросить у них url и clientId ?Конечно, им придется внести в белый список мой URL перенаправления / signin-oidc
Кроме того, у меня возникают проблемы с перехватом обратного вызова перенаправления, я не могу прочитать информацию о поставщике:
var info = await _signInManager.GetExternalLoginInfoAsync();
if (info == null)
{
return RedirectToAction(nameof(Login));
}
Это всегда дает нулевую информацию.Любой совет?