Utilizing the advantage of quantum entanglement swapping, a multi-party quantum key agreement protocol with authentication is proposed. In this protocol, a semi-trusted third party is introduced, who prepares Bell states, and sends one particle to multiple participants respectively. After that the participants can share a Greenberger-Horne-Zeilinger state by entanglement swapping. Finally, these participants measure the particles in their hands and obtain an agreement key. Here, classical hash function and Hadamard operation are utilized to authenticate the identity of participants. The correlations of GHZ states ensure the security of the proposed protocol. To illustrated it detailly, the security of this protocol against common attacks is analyzed, which shows that the proposed protocol is secure in theory.