IdentityServer3 возвращает invalid_scope для конечной точки авторизации - PullRequest
0 голосов
/ 31 октября 2018

У меня установлен IdentityServer3 на моем веб-сайте ASP.NET MVC и определен клиент (подключаемый модуль NopCommerce), как указано ниже (URL-адреса только для проверки):

new Client
                   {
                       ClientName    = "Deep Stores",
                       ClientId      = "deepstores",
                       ClientSecrets = new List<Secret>
                                       {
                                           new Secret("0B0A3FD3-F30C-428C-B1A3-6E570103614D".Sha256())
                                       },
                       AccessTokenType = AccessTokenType.Reference,
                       RedirectUris    = new List<string>
                                         {
                                             "http://localhost:2030/plugins/ExternalAuthDeepStudies/logincallback"
                                         },
                       Flow                   = Flows.AuthorizationCode,
                       AllowAccessToAllScopes = true,
                       AllowedScopes          = StandardScopes.All.Select(x => x.Name).ToList()
                   }

При попытке получить токен авторизации с URL-адресом, как показано ниже, он работает впервые (появляется вход в систему и предоставляет страницу бла-бла), но для остальных запросов он возвращает error=invalid_scope для моего обратного вызова!

запрос на авторизацию конечной точки:

https://127.0.0.1/core/connect/authorize?client_id=deepstores&redirect_uri=http%3A%2F%2Flocalhost%3A2030%2Fplugins%2FExternalAuthDeepStudies%2Flogincallback&scope=profile&response_type=code

что происходит? и почему я получаю эту ошибку?

Области определены как:

public static IEnumerable<Scope> Get()
    {
        return new[]
               {
                   StandardScopes.OpenId,
                   StandardScopes.Profile,
                   StandardScopes.Email,
                   StandardScopes.Address,
                   StandardScopes.Phone,
                   StandardScopes.OfflineAccess,
                   StandardScopes.RolesAlwaysInclude,
                   StandardScopes.AllClaims,

               };
    }

Обратите внимание, что я использую EntityFramework, и все мои сотрудники хранятся в базе данных. Кроме того, я использую ASP.NET Identity для управления пользователями и ролями.

...