Я пытаюсь защитить 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 распозналда, так что я могу проверить разрешения, но до сих пор я не смог.