Авторизация на основе ресурсов (императивная) и IdentityServer4
Сценарий:
- У меня есть API с .net core 2.2
- На моем контроллере я разрешаю доступ, используя IdentityServer4 с атрибутом
- Внутри одной из моих конечных точек я хочу разрешить доступ к методу только в некоторых случаях
Я реализовал авторизацию на основе ресурсов внутри своей конечной точки, как показано в документации Microsoft. Это не сработало. Я поставил точку останова в свой обработчик авторизации и попробовал отладить, но когда этот обработчик должен быть вызван, это не так. Я имею в виду, что когда выполняется следующая строка
var authorizationResult = await _authorizationService
.AuthorizeAsync(User, Document, "EditPolicy");
Обработчик должен быть вызван, но этого никогда не происходит.
Интересно, могут ли быть конфликты между IdentityServer4 и авторизацией на основе ресурсов, или, может быть, другой способ зарегистрировать его внутри служб запуска.
У кого-нибудь была такая же проблема?
1 ответ
В итоге проблема была связана с регистрацией службы в startup.cs. Я использовал TryAddScope, перейдя на AddScope, он работал нормально.