The 29-year-old, capped 12 times by his country, has played 44 games for the Canaries since joining, initially on loan, from West Brom in February 2015.
He helped Norwich to Premier League promotion in 2015, only for the club to suffer relegation a year later.
"The last time we were in the Championship Graham had a big part in getting us up," said boss Alex Neil.
"It's good business because he'll be an important player for us this season. We want to get a balance between guys who have been there and done it before while also freshening things up."
Scotland midfielder Graham Dorrans has signed a new three-year contract with Championship side Norwich City.