невозможно проверить токен с помощью IdentityServer3.AccessTokenValidation - PullRequest
1 голос
/ 01 июня 2019

Я пытаюсь проверить токен, сгенерированный из IDS4, с помощью IdentityServer3.AccessTokenValidation, но я получаю 401 каждый раз.

Я последовал предложению, которое видел в разных статьях:

public void Configuration(IAppBuilder app)
        {
            var config = new HttpConfiguration();
            var builder = new ContainerBuilder();
            builder.RegisterApiControllers(Assembly.GetExecutingAssembly());
            var executingAssembly = Assembly.GetExecutingAssembly();
            Api.Register(builder, executingAssembly);

            builder.RegisterWebApiFilterProvider(GlobalConfiguration.Configuration);
            builder.RegisterAssemblyModules(executingAssembly);
            var container = builder.Build();

            config.DependencyResolver = new AutofacWebApiDependencyResolver(container);
            var webApiResolver = new AutofacWebApiDependencyResolver(container);
            GlobalConfiguration.Configuration.DependencyResolver = webApiResolver;


            app.UseCors(CorsOptions.AllowAll);
            app.UseAutofacWebApi(config);
            app.UseCookieAuthentication(new CookieAuthenticationOptions());
            var options = new IdentityServerBearerTokenAuthenticationOptions
            {
                Authority = ConfigurationManager.AppSettings["IdentityServer:Authority"],
                AuthenticationType = "Bearer",
                RequiredScopes = new[] { ConfigurationManager.AppSettings["IdentityServer:ApiScope"] },

            };
            app.UseIdentityServerBearerTokenAuthentication(options);
            WebApiConfig.Register(config);
            config.Filters.Add(new AuthorizeAttribute());

            app.UseWebApi(config);
        }

Это должно авторизовать токен, который я отправляю из приложения, однако Авторизация применяется ко всем контроллерам, но я вижу, что конструктор контроллера находится под ударом, но действие не вызывается, означает ли это, что проверка токена работает нормально? но я вижу, что полномочия, которые я посылаю, тоже верны.

я получаю следующую ошибку после того, как я включил запись катаны:

IdentityServer3.AccessTokenValidation.ValidationEndpointTokenProvider Информация: 0: ошибка возвращена из конечной точки проверки токена: не найдено Предупреждение Microsoft.Owin.Security.OAuth.OAuthBearerAuthenticationMiddleware: 0: получен недопустимый токен носителя

1 Ответ

0 голосов
/ 03 июня 2019

Вам понадобятся ClientId и Client Secret - API - это ресурс, но, поскольку вы используете токены-ссылки, вам понадобится что-то вроде этого:

    {
        Authority = "https://idsrvurl:44333/core",
        RequiredScopes = new[] { "api1" },

        ClientId = "api1",
        ClientSecret = "secret"
    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...