"Limits are not unethical: they help to maintain acceptance within society," Joachim Gauck told the world's political and economic elite gathering at Davos.
"Without acceptance, a society is not open and not willing to take in refugees," said Gauck, noting that this was why EU leaders are battling to stem the continent's biggest migrant crisis since the Second World War," said the former Protestant pastor.
"A limitation strategy can be both morally and politically necessary to preserve the state's ability to function," he said.
"It may also be necessary in order to ensure that refugees receive all the assistance they require once they have arrived."
Debate is raging in Germany over the country's ability to cope with a record 1.1 million asylum seekers who arrived in 2015.
Gauck stressed however that the drastic action of slamming the door shut to refugees - as sought by populists and the far-right - was not an option.
An isolation strategy is different from setting limits, he said, urging supporters of democracy to take ownership of the debate rather than give ground to the extremists.
"If democrats are unwilling to talk about limits, then they will be leaving the field to populists and xenophobes," he added.
In Germany, he said, the political debate is "very clear that we should expect some form of control and limits to kick in this year".
Like Gauck, Chancellor Angela Merkel has rebuffed calls to close the German borders.
Instead, she has pledged a "tangible reduction" of arrivals in coming months and is counting on a raft of measures at the national and EU level to deliver on that promise.
These include reinforcing controls at the EU's external borders and getting other members of the bloc to take a bigger share of refugees.
Berlin is also tightening its scrutiny of asylum seekers by reintroducing individual interviews for all applicants, including Syrians, as well as ramping up the deportation process for those who have failed to win asylum.
Cases of deportations doubled in 2015 from a year ago, the interior ministry told AFP, with 21,000 forcibly removed from Germany last year.
The country earlier put several Balkan states on a list of "safe countries of origin", whose citizens are unlikely to gain refugee status.
Berlin is now looking to add to the list several North African countries, such as Algeria, Morocco and Tunisia.