Couper les aubergines en tranches d'environ 1cm d'épaisseur, les saler et les laisser dégorger pendant 30 minutes. Les rincer et les sécher.
Faire chauffer un peu d'huile d'olive dans une poêle et y faire revenir les tranches d'aubergines jusqu'à ce qu'elles soient dorées. Les égoutter sur du papier absorbant.
Dans la même poêle, faire revenir l'oignon et l'ail. Ajouter l'agneau haché et faire cuire jusqu'à ce qu'il soit doré. Ajouter les tomates concassées, le concentré de tomates, la cannelle, la noix de muscade, le sel et le poivre. Laisser mijoter pendant 15 minutes.
Pour la sauce béchamel, faire fondre le beurre dans une casserole, ajouter la farine et cuire quelques minutes. Ajouter le lait petit à petit en remuant constamment jusqu'à obtention d'une sauce onctueuse. Retirer du feu, ajouter le parmesan râpé et les œufs battus. Saler et poivrer.
Dans un plat allant au four, alterner les couches d'aubergines et de viande. Verser la sauce béchamel par-dessus.
Enfourner pendant 45 minutes, jusqu'à ce que le dessus soit doré.
Laisser reposer pendant 10 minutes avant de servir.