IdentityServer4 и Web API в одном проекте - PullRequest
0 голосов
/ 27 июня 2018

У меня есть 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;
    });

Любой совет будет полезен.

...