Социальный вход - разрешения - PullRequest
0 голосов
/ 26 октября 2018

У меня вопрос по поводу углового шаблона и способов реализации социальных логинов.Из того, что я собрал, мы можем обойти авторизацию по умолчанию, которая определена в "AuthConfigurer.cs", например.

`if (bool.Parse(configuration["Authentication:JwtBearer:IsEnabled"]))
            {
                services.AddAuthentication(options => {
                    options.DefaultAuthenticateScheme = "JwtBearer";
                    options.DefaultChallengeScheme = "JwtBearer";
             }).AddJwtBearer("JwtBearer", options => .........
                {`

и затем, когда мы пытаемся войти в систему, мы проверяем пользователя с помощью имени пользователя и пароля, чтобы мы могли вернуть модель результата с токеном на предъявителя и идентификатором пользователя.

public async Task<AuthenticateResultModel> Authenticate([FromBody] AuthenticateModel model)
    {
        var loginResult = await GetLoginResultAsync(
            model.UserNameOrEmailAddress,
            model.Password,
            GetTenancyNameOrNull()
        );

        var accessToken = CreateAccessToken(CreateJwtClaims(loginResult.Identity));

        return new AuthenticateResultModel
        {
            AccessToken = accessToken,
            EncryptedAccessToken = GetEncrpyedAccessToken(accessToken),
            ExpireInSeconds = (int)_configuration.Expiration.TotalSeconds,
            UserId = loginResult.User.Id
        };
    }

Кажетсядовольно просто, но, глядя на примеры и предложения, которые я нашел на форумах, мы можем использовать многочисленные способы обработки аутентификации, например.

if (bool.Parse(configuration["Authentication:Microsoft:IsEnabled"]))

services.AddAuthentication().AddGoogle(googleOptions =>
{
    microsoftOptions.ClientId = configuration["Authentication:Microsoft:ClientId"];
    microsoftOptions.ClientSecret = configuration["Authentication:Microsoft:ClientSecret"];
});

Так что моя реальная проблема, или, скорее, моя проблема, заключается в том, если мы обойдем токен носителя и изменимэто что-то вроде Microsoft, и мы аутентифицируем пользователя, что дальше?

Как мы можем предоставить разрешение для различных страниц этому аутентифицированному "пользователю"?

Можем ли мы настроить авторизацию без реального шаблонапользователь, у которого есть разрешения, и если да, то что тогда?Как мы можем получить доступ к частям нашего сайта?

...