Какие настройки IdentityServer4 могут вызвать не аутентификацию на действующем URL - PullRequest
1 голос
/ 01 декабря 2019

Я использую IdentityServer4 с проектом запуска React из ASP.NET Core 3.0, изначально созданным с помощью следующего кода из командной строки:

dotnet new react -o <output_directory_name> -au Individual 

У меня нет проблем с аутентификацией локально или при запуске смой домен .azurewebsites.net, использующий https.

Однако, когда я переключаюсь на свой URL .COM, также размещенный в Azure, мой бэкэнд не аутентифицирует пользователя, хотя аутентификационный интерфейс реагирует. SSL настраивается с использованием LetsEncrypt и обновляется каждые 90 дней.

Следующий метод на контроллере API возвращает Unauthorized (), поскольку пользователь не прошел проверку подлинности только на моем URL-адресе .COM:

    [Authorize]      
    [HttpGet("roles")]
        public async Task<ActionResult> GetRoleAndBuilding() {

            var userId = User.Claims.FirstOrDefault(c => c.Type == ClaimTypes.NameIdentifier).Value;
            var user = await _context.Users.FirstOrDefaultAsync(u => u.Id == userId);
            var roles = await _userManager.GetRolesAsync(user);
            var BuildingId = user.BuildingID ?? 0;
            return Json(new { roles = roles, userId = userId, buildingID = BuildingId, });
        }

User.Identity.IsAuthenticated возвращает false.

Я пытаюсь сделать все вызовы через .azurewebsites.net, включив CORS на identityserver4 при запуске, но это постыдный хак, и я уверен, что есть лучшее решение.

Буду крайне признателен за любые советы о том, что может быть причиной этого и потенциальных решений, сайт работает и перенаправление на azurewebsites.net вызывает неловкость.

...