Como criar um AuthorizeAttribute customizado no ASP.NET Core?

Preciso que somente alguns poucos endpoints da minha API usem um token diferente, porque eles vão ser chamados por uma aplicação menos segura e não quero que esse outro token tenha acesso a toda aplicação igual ao token padrão que o Identity gera para usar nos endpoints com o [Authorize].
Até agora o que fiz foi:
– Gerar manualmente um token com um algoritmo que eu criei
– Retornar esse token através de um endpoint seguro somente para usuários [Authorize]

Agora para autorizar os endpoints eu tenho que fazer a validação também manualmente, resgatando do banco e comparando o token que recebi, mas eu gostaria que essa parte pudesse pelo menos usar um [decorator] também.
– Tentei sobrescrever o AuthorizeAttribute, mas isso não é mais possível no .net core
– Tentei criar uma policy e chamar [Authorize(Policy = "NovoToken")], mas antes de chamar a validação da policy já retornava Unauthorized porque não tinha o token do identity.
– E por último tentei implementar um IAuthorizationFilter. Isso até funcionou, mas pra ele funcionar eu preciso usar o [AllowAnonymous] junto e fica feio ter que colocar esses dois decorator.

Finalmente minhas perguntas são:
1. Tem uma maneira melhor de criar um decorator que não vai cair na validação padrão do Identity e deixar eu fazer só a minha validação?
2. Ou teria como usar o próprio Identity pra criar e validar um token alternativo, mas deixando ele com permissão para endpoints específicos da API?