Declarative authorization techniques