(a) All electrons have magnetic moment.
(b) All protons have magnetic moment.
Electrons of an atom moves in circular path around the nucleus and constitute electric current. Since a current loop has magnetic moment, therefore electron also has magnetic moment due to this orbit motion. It also has magnetic moment due to the spinning about its own axis.
Orbital motion of electron around the nucleus give rise to magnetic field around the proton (nucleus). This create a torque and thus magnetic dipole moment on proton.
All nuclei also have magnetic moment but it is several thousand times smaller than the magnetic moment of the electron so it can be ignored in comparison to the magnetic moment of an eletron.
Generally, an atom has no magnetic moment. Because the magnetic moments of electrons of an atom have a tendency to cancel in pairs.