Может войти в систему с клиентом, но не может делать запросы 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 без причины. Что мне не хватает.