Fast-Paced Multiplayer (Part I): Client-Server Game Architecture
I used this guide when implementing my own real-time multiplayer platforming game.It really understates the importance of authority.  It blows my mind how many games, especially FPSes, give a lot of authority to the client.  Lag compensation for shooting is one thing, but clients should not be able to shoot through walls or speed hack.  These types of cheats are easy to prevent server-side, but developers don't because .... ?  No idea.  I've always guessed that it's to reduce server-side CPU load, but that's all I can guess.