[Post-MVC] Beyond Identity integration
## Summary
As part of https://gitlab.com/gitlab-org/gitlab/-/issues/431433+, we added an option to validate GPG keys with Beyond Identity. When the Beyond Identity integration is enabled, any new key uploaded to a user’s profile is validated against Beyond Identity. Any key that does not pass validation is rejected and the user is required to upload a new key.
When users push commits to the GitLab instance where the Beyond Identity integration is enabled, a pre-receive check is performed that validates the signed commits against the GPG key stored in the user’s profile. Any commit that is signed with the validated key in the user’s profile will be accepted and pushed to the repository.
However, there is a need for more granular options to allow skipping the Beyond Identity check in certain scenarios. Only an admin should be able to enable/disable options to skip the Beyond Identity check and this should be done from the Beyond Identity integration page. The more granular options needed are:
* [x] Add an option to allow commits from Gitlab service accounts to be pushed to the repository even if the commits are not signed.: https://gitlab.com/gitlab-org/gitlab/-/issues/454369
* [x] Add an option for admins to exclude projects from the Beyond Identity check: https://gitlab.com/gitlab-org/gitlab/-/issues/454372
* [ ] Add an option for admins to exclude groups from the Beyond Identity check: https://gitlab.com/gitlab-org/gitlab/-/issues/454372
Other improvements include:
* [x] Check the validity of the GPG keys with Beyond Identity daily: https://gitlab.com/gitlab-org/gitlab/-/issues/442098
* [x] Ensure only signed commits from GPG keys validated with Beyond Identity can be pushed by human users (No signed commits from SSH keys should be accepted): https://gitlab.com/gitlab-org/gitlab/-/merge_requests/147506
* [x] **Update 2024-04-22**: Allow SSH Keys and GPG keys that are not issued to the Beyond Identity service to be added to the user profile: https://gitlab.com/gitlab-org/gitlab/-/issues/457569
**Note**: The yellow components in the diagram below are new functionality that we plan to introduce as part of these post-MVC improvements.
_This page may contain information related to upcoming products, features and functionality. It is important to note that the information presented is for informational purposes only, so please do not rely on the information for purchasing or planning purposes. Just like with all projects, the items mentioned on the page are subject to change or delay, and the development, release, and timing of any products, features, or functionality remain at the sole discretion of GitLab Inc._
epic