Может войти в систему с клиентом, но не может делать запросы API. 401

У меня есть .Net Framework Web API (старый), ссылающийся на библиотеки IdentityServer3

                  app.UseIdentityServerBearerTokenAuthentication(new IdentityServerBearerTokenAuthenticationOptions
            {
                Authority = "https://localhost:5001",
                ValidationMode = ValidationMode.Local,
                RequiredScopes = new[] { "api1" }
            });

IdentityServer5:

      new Client { ClientId = "mvc",
                    ClientSecrets = { new Secret("secret".Sha256()) },
                    AllowedGrantTypes = GrantTypes.Code,
                    RedirectUris = { "https://localhost:5002/signin-oidc" },
                    PostLogoutRedirectUris = { "https://localhost:5002/signout-callback-oidc" },
                    AllowedScopes = new List<string> { OpenId, Profile }
                }, new Client { ClientId = "client",
                    AllowedGrantTypes = GrantTypes.ClientCredentials, 
                    ClientSecrets = { new Secret("secret".Sha256()) },
                    AllowedScopes = { "api1" }}

Веб-клиент, который работает:

      services.AddAuthentication(options =>
                {   options.DefaultScheme = "Cookies";
                    options.DefaultChallengeScheme = "oidc"; })
                .AddCookie("Cookies")
                .AddOpenIdConnect("oidc", options =>
                {   options.Authority = "https://localhost:5001";
                    options.ClientId = "mvc";
                    options.ClientSecret = "secret";
                    options.ResponseType = "code";
                    options.SaveTokens = true;  });

Но когда я вызываю от клиента к API и передаю его как носитель авторизации, это не работает. Я просто получаю старый добрый 401 без причины. Что мне не хватает.

0 ответов

Другие вопросы по тегам