Issue #5: Implement authorization