У меня есть IdentityServer и MVC-клиент , IdentityServer имеет собственный веб-API для управления пользователями своих клиентов.
Клиент MVC использует HybridAndClientCredentials
тип предоставления для взаимодействия с IdentityServer. У меня нет проблем с аутентификацией пользователя клиента. Проблема в том, что когда я пытаюсь вызвать какой-либо API из IdentityServer с аутентифицированным пользователем, сервер возвращает представление входа в систему вместо результата API.
Вот моя конфигурация клиента:
new Client
{
ClientId = "mvc.identity.management",
ClientName = "Identity Management",
AllowedGrantTypes = GrantTypes.Hybrid,
RequireConsent = false,
ClientSecrets =
{
new Secret("somesecret".Sha256())
},
RedirectUris = { "http://localhost:5001/signin-oidc" },
PostLogoutRedirectUris = { "http://localhost:5001/signout-callback-oidc" },
AllowedScopes =
{
IdentityServerConstants.StandardScopes.OpenId,
IdentityServerConstants.StandardScopes.Profile
}
}
И клиент
JwtSecurityTokenHandler.DefaultInboundClaimTypeMap.Clear();
services.AddAuthentication(options =>
{
options.DefaultScheme = "Cookies";
options.DefaultChallengeScheme = "oidc";
})
.AddCookie("Cookies")
.AddOpenIdConnect("oidc", options =>
{
options.SignInScheme = "Cookies";
options.Authority = "http://localhost:5000";
options.RequireHttpsMetadata = false;
options.ClientSecret = "somesecret";
options.ResponseType = "code id_token";
options.GetClaimsFromUserInfoEndpoint = true;
options.ClientId = "mvc.identity.management";
options.SaveTokens = true;
});
Любой совет будет полезен.