Единый вход с сервером идентификации - PullRequest
0 голосов
/ 25 сентября 2018

Я должен реализовать единый вход с помощью 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));
}

Это всегда дает нулевую информацию.Любой совет?

...