Swashbuckle.AspNetCore. IdentityServer cook ie под узлом сервера идентификации - PullRequest
0 голосов
/ 24 марта 2020

Я не могу войти в свой API через интерфейс Swagger. Я использовал Swashbuckle.AspNetCore 5.2.1. По какой-то причине сервер идентификации Cook ie сохраняет Cook ie на хосте API под хостом сервера идентификации (не хостом API). Пожалуйста, советуйте:

enter image description here

Это конфигурация клиента в IdentityServer:

                new Client
            {
                ClientId = Applications.Swagger.ToString(),
                ClientName = "Swagger",
                AllowedGrantTypes = GrantTypes.Code,
                RedirectUris = { urlsSettings.Api + "/swagger/oauth2-redirect.html" },
                PostLogoutRedirectUris = { urlsSettings.Api + "/swagger" },
                AllowedCorsOrigins = { urlsSettings.Api },
                AllowedScopes = new List<string>
                {
                    IdentityServerConstants.StandardScopes.OpenId,
                    IdentityServerConstants.StandardScopes.Profile,
                    Applications.API.ToString()
                },
                ClientSecrets =  { new Secret("test-secret".Sha256()) },
                AllowAccessTokensViaBrowser = true,
                RequireConsent = false
            }

Это служба запуска в API:

            services.AddAuthentication(IdentityServerAuthenticationDefaults.AuthenticationScheme)
        .AddCookie()
        .AddIdentityServerAuthentication(options =>
        {
            options.Authority = UrlsSettings.Identity;
            options.RequireHttpsMetadata = true;
            options.ApiName = Application.ToString();
            options.ApiSecret = "test-secret";
            options.SaveToken = true;
        })
       .AddSwaggerGen(options =>
        {
            options.SwaggerDoc("v1", new OpenApiInfo
            {
                Title = "Merchant API",
                Version = "v1",
                Description = "eSales Platform API"
            });
            options.AddSecurityDefinition("oauth2", new OpenApiSecurityScheme
            {
                Type = SecuritySchemeType.OAuth2,
                Flows = new OpenApiOAuthFlows()
                {
                    AuthorizationCode = new OpenApiOAuthFlow
                    {
                        AuthorizationUrl = new Uri(UrlsSettings.Identity + "/connect/authorize"),
                        TokenUrl = new Uri(UrlsSettings.Identity + "/connect/token"),
                        Scopes = new Dictionary<string, string>
                        {
                            { Applications.API.ToString(), "eSalesPlatform API - full access" }
                        }
                    }
                }
            });
            options.AddSecurityRequirement(new OpenApiSecurityRequirement
            {
                {
                    new OpenApiSecurityScheme
                    {
                        Reference = new OpenApiReference { Type = ReferenceType.SecurityScheme, Id = "oauth2" }
                    },
                    new[] { Applications.API.ToString() }
                }
            });
            options.OperationFilter<AuthorizeCheckOperationFilter>();
        });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...