Проблема при защите API с сервером идентификации - не работает после входа в Angular - PullRequest
0 голосов
/ 20 мая 2019

Я пытаюсь защитить API в .net Core 2.0 с сервером идентификации, пользовательский интерфейс был выполнен с Angular, я думаю, что уже выполнил большую часть работы, но после входа в систему angular я вижу эту ошибку в консоли:

Доступ к XMLHttpRequest по адресу https://localhost:44375/connect/authorize?client_id=js&redirect_uri=http%3A%2F%2Flocalhost%3A58906%2Fsignin-oidc&response_type=id_token%20token&scope=openid%20profile%20roles%20api1%20offline_access&response_mode=form_post&nonce=636939599510409570.MGYzMTFjMzItZmUyMC00ODU3LTg4ZjctM2U4MmI0NzAzMGZlNGE3YTNmODEtNzkyNi00MDViLTgxY2MtYWQ0ZjYxZmU0NWJm&state=CfDJ8O2EEtV_W31JlCz9gl525Qd1Jg8V7r2jAMhzD_Q_VVDwSnlzrivuvFibSJD1WOjL_gueXbDQIQd8A3zpDTGQ5cQofWOyiWfCuEMJG361u6mJM1PCGKF0W0O40sfhv698VRw6m1z0lJklAaAx27g4MbdSLiq3WcCcpfX-Q30Hy3DFRyRuT-calMfySkYfyejpptDyBGb2uv-rP4D9vEHBRvyRS3Cq60VqSTn7-r_bpA52xM7vG0UFbEqQ4EMqAW2S2-6I1ccqKDJat8eKBo9p8jmp6YoOjCv3wcGKY1RPJz7b-Auu7xIPQwm2FeJ2j-LQF_v6ao2VY7fm4SW7CnNAinNJwaRtDOOxbNqPhjVOvayPJc2BR79Uitf2KaSUFg11Xv-llTuEv9aInJJRL2V1ZYH72iTp8jhndThWNFNtDpBU&x-client-SKU=ID_NETSTANDARD1_4&x-client-ver=5.2.0.0' (перенаправлен из 'http://localhost:58906/api/ClienteES/ConsultarClientes?CantidadRegistros=30&PaginaActual=1') из источника' null 'был заблокирован политикой CORS: Ответ на запрос предполетного полета не проходитпроверка контроля доступа: в запрашиваемом ресурсе отсутствует заголовок «Access-Control-Allow-Origin».

Я уже зарегистрировал клиентов в проекте сервера идентификации, а также выполнил настройку в angularв API.

это код в Startup.cs в API

        services.AddAuthentication(options =>
        {
            options.DefaultScheme = "cookie";
            options.DefaultChallengeScheme = "oidc";
        })
        .AddCookie("cookie")
        .AddOpenIdConnect("oidc", options =>
        {
            options.Authority = "https://localhost:44375/";
            options.ClientId = "ApiPrincipal";
            options.ClientSecret = "mysecret";
            options.SignInScheme = "cookie";
            options.SaveTokens = true;
            options.ResponseType = "code id_token";
            options.Scope.Add("openid");
            options.Scope.Add("profile");//
            options.Scope.Add("offline_access");

        });

- это угловая конфигурация -

authority: 'https://localhost:44375/',
client_id: 'js',
redirect_uri: 'http://localhost:4200/auth-callback',
post_logout_redirect_uri: 'http://localhost:4200/',
response_type: "id_token token",
scope: "openid profile api1 roles offline_access",
filterProtocolClaims: true,
loadUserInfo: true

это клиенты в проекте сервера идентификации (ядро .net) новый клиент

- клиент под углом -

        {
            ClientId = "js",
            ClientName = "JavaScript Client",
            AllowedGrantTypes = GrantTypes.Implicit,
            AllowAccessTokensViaBrowser = true,
            AccessTokenLifetime = 151200,
            RequireConsent = false,
            RedirectUris = redirects.RedirectUris,
            PostLogoutRedirectUris = redirects.PostLogoutRedirectUris,
            AllowedCorsOrigins = redirects.AllowedCorsOrigins,
            AllowedScopes =
                {
                    StandardScopes.OpenId.Name,
                    StandardScopes.Profile.Name,
                   // StandardScopes.Roles.Name,
                   "roles",
                    StandardScopes.OfflineAccess.Name,
                    "api1"
                }
        }

- клиент для API -

            {
                ClientId = "ApiPrincipal",
                ClientName = "Cliente utilizado por el api principal de Mawa",
                RequireConsent = false,
                ClientSecrets = new List<Secret> { new Secret("mysecret".Sha256()) },
                AllowedGrantTypes = GrantTypes.HybridAndClientCredentials,
                //AllowRememberConsent = true,
                AlwaysSendClientClaims=true,
                AllowedScopes = new List<string>
                {
                    StandardScopes.OpenId.Name,
                    StandardScopes.Profile.Name,
                    StandardScopes.OfflineAccess.Name//,
                    //"ApiAuditor"
                },
                //RedirectUris = new List<string> { "http://localhost:1424/signin-oidc" },//MTA
                //PostLogoutRedirectUris = new List<string> { "http://localhost:1424/" }//MTA
                RedirectUris = new List<string> { "http://localhost:58906/signin-oidc" },//Pemarsa
                PostLogoutRedirectUris = new List<string> { "http://localhost:58906/" }//Pemarsa
             }

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...