Discuss a central identity access management service for projects
At the Adoptium project we are constantly evaluating our secure engineering practices and looking for ways to improve. An area of interest is identity access management, and ensuring that we have the confidence that contributors to Adoptium are known and trusted at an appropriate level within the project.
Clearly, we have an open community and welcome contributions from anyone. Contributions include discussions and ideas on Slack/e-mail, documentation, code contributions, and eventually committer and limited administration/PMC privileges. At Adoptium each 'level' of contribution comes with expectations of trust in the individual contributor in addition to technical ability. We apply a different level of trust to contributors of a simple Slack message that we do to someone contributing infrastructure changes.
In line with Eclipse Foundation policy we use the ECA validation bot for GitHub PR contributions. It is my understanding, however, that the ECA does not involve a natural person check. Is it possible for a fictitious actor to create an Eclipse account, submit an ECA and claim an associated GitHub id without any background checks performed? That is, as an online community we do not actually know if a contribution comes from a traceable natural person.
Following on from that, we have various points in the project where we handle identity information for more advanced contributors. For example, granting rights to review code contributions, run builds, and eventually even push builds to our public repositories and administer our infrastructure. At these additional levels of trust we aim to know well the individual and their associated online identities. The administration of these rights is spread across various systems, such as GitHub, a PKI system, and direct password management.
To date we have been able to meet in person those with extended trust and rights in the project, and there have been no problems or concerns with establishing identity or trusting their online accounts and secrets management hygiene. We follow the 2FA requirement in GitHub, and watch for any unusual behavior in our system logs. Everyone with enhanced rights at the project has been given a FIPS-compliant hardware authentication token (Yubikey) to be used on systems that support it.
It would seem desirable to have a strong identity access management service at the Eclipse Foundation that goes beyond the current ECA check. Having a trusted system that validates identity, preferably at different trust levels, and manages access rights would be very useful to incorporate into the Adoptium project in place of the multiple systems and locations we have today. Rather than do that at an individual project level, it seems appropriate that this is a broader service managed at the foundation level and integrated with the Eclipse account system. This issue is intended to discuss the concept rather than the actual implementation.