The 20-year-old has only started one game for the Canaries since joining from Coventry City in January 2016, but has spent time back on loan with the Sky Blues and Aberdeen.
Maddison told the club website: "Last season was a big learning curve for me.
"I went on loan and then came back. I made a few appearances and I've only been looking forward since then."
Midfielder James Maddison has signed a contract which keeps him at Norwich City until the summer of 2021.