The attacker struck as people lined up to collect identity cards in the Imam Saheb district of Kunduz province, a local official said.
Kunduz has long been a stronghold for Taliban insurgents.
The attack comes one day after at least 18 people were killed in an attack on a bank in the Afghan city of Jalalabad.
The Taliban say they carried out Sunday’s assault on the Kabul Bank, targeting police and intelligence officers who had gone to collect their salaries.
The bomber in Kunduz detonated his explosives at the entrance to the government building at midday, Imam Saheb’s police chief told the Associated Press news agency. Reports say that most of the casualties in the blast were civilians.
Violence has been on the increase in Afghanistan where tens of thousands of foreign troops are based.
Civilian and military casualties in Afghanistan are at levels not seen for a decade – last year more than 2,400 civilians died.
The blast comes as a controversy erupted over Nato air strikes in eastern Afghanistan. Local officials accused Nato of killing scores of civilians in air strikes in Kunar province on Sunday.
But Nato dismissed these reports with one senior official saying he saw video footage of the battle in Kunar and that there was no evidence of civilian deaths.
Nato says it killed 36 insurgents in the area but local tribal elders and officials say 64 civilians were killed in the attack. An investigation is already under way.
But Nato have issued an apology over a separate incident on Sunday when at least two civilians were killed after an air strike mistakenly hit their home.
Earlier this month, a human rights watchdog said that 2010 was the deadliest year for Afghans since the war began in 2001.
Afghanistan Rights Monitor said the Taliban were responsible for about 60% of the 2,400 civilians killed, while US-led forces were accountable for 21%.