service: add base authorize() function