The 25-year-old has a Bundesliga winners' medal from a previous spell with Borussia Dortmund and has also spent time at Lazio and Stuttgart.
"I'm glad to be coming to a big team," Leitner told Norwich City TV. "I just want to play football and help the team on the pitch.
"I can't wait to feel the atmosphere in the stadium and for sure I want to celebrate with the team, the club and the fans."
Norwich head coach Daniel Farke, who worked with Leitner at Dortmund Under-23s, added: "He's a player of unbelievable potential.
"He has 100 appearances in the Bundesliga, several appearances in the Champions League, has won the German title, has won the German Cup, and was on the bench in the Champions League final.
"He is still a young player with potential, but he also has a lot of experience. He's had a difficult couple of years, but we feel we can develop him and bring him back to his full potential."