Most security frameworks (ie HIPAA, PCI, etc) require one key per human user. Users should never share keys any more than they would share passwords.
Each human user needs their own account, and those accounts should be removable across all servers in your entire enterprise when people move on to other projects. This is a task that begs for automation!
I work for Userify, which manages the keys for you across your teams and all of your servers and can even interface with Active Directory (Userify Enterprise), but there are other options as well, like SSH Universal Key Manager.
Your choice should depend on what your needs and budget are, and the features that you find important.
For example, many centralized systems are so centralized to the point that you might not be able to log into any of your servers, if, say, your LDAP server is down. (Userify will continue to operate properly even if AD or LDAP is down, because the layers of public key cryptography extend all the way down to the end server.)
It's important to be able to manage your SSH permissions centrally, while decentralizing the actual operation for greater reliability and control.
See also this Slant topic:
https://www.slant.co/topics/8010/~managers-for-ssh-keys