General manager Mitch Kupchak made the anticipated announcement Monday, ending speculation that Bryant could end up with another team after this season.
"This is a very happy day for Lakers fans and for the Lakers organization," Kupchak said in a statement. "We've said all along that our priority and hope was to have Kobe finish his career as a Laker, and this should ensure that that happens."
Bryant tweeted a picture of his signature on a contract later Monday morning with the hashtag: Laker4Life.
Terms of the deal were not released.
The fourth-leading scorer in NBA history hasn't played this season as he recovers from surgery on his torn Achilles tendon in April.
He returned to practice earlier this month but isn't sure when he'll be back in uniform. He said last week that he could adjust his game and contribute something to the Lakers right now, but he wants to make sure he's ready to play for the long haul when he returns for his 18th NBA season.
Coach Mike D'Antoni has said Bryant will return whenever he says he's ready.
During his recovery, Bryant has spent plenty of time with Steve Nash, the 39-year-old point guard currently sidelined with the latest in a series of injuries. Nash has been out with nerve root irritation, a back problem stemming from a broken leg last season.
Bryant and Nash intend to be back in the Lakers' lineup together soon.