-
Notifications
You must be signed in to change notification settings - Fork 52
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Improved separation between IRR records and authentication #617
Labels
enhancement
New feature or request
Comments
Have you considered to support Oauth integrations? I believe we will see something in this direction by the RIRs in some time from now. |
Not yet, but it's an interesting idea. Added it to the list to explore. |
mxsasha
changed the title
Improved seperation between IRR records and authentication
Improved separation between IRR records and authentication
May 25, 2022
77 tasks
77 tasks
mxsasha
added a commit
that referenced
this issue
Aug 26, 2022
mxsasha
added a commit
that referenced
this issue
Dec 5, 2022
mxsasha
added a commit
that referenced
this issue
Dec 5, 2022
mxsasha
added a commit
that referenced
this issue
Apr 25, 2023
mxsasha
added a commit
that referenced
this issue
Apr 25, 2023
mxsasha
added a commit
that referenced
this issue
Apr 25, 2023
mxsasha
added a commit
that referenced
this issue
May 16, 2023
mxsasha
added a commit
that referenced
this issue
Jun 29, 2023
11 tasks
mxsasha
added a commit
that referenced
this issue
Jul 13, 2023
Renames database_readonly to readonly_standby as an intentional breaking change due to additional setup requirements.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
This is the big picture issue for RPSL authentication improvements in IRRD. Some of it may be split off to smaller issues, and this is an initial plan that will probably be adjusted. Replaces #122
Current problems
In traditional IRR databases, including the current IRRDv4, authentication is performed by creating mntner objects in the database, which have one or more authentication methods. This is not an ideal setup: it mixes the operational IRR data with authentication data.
There are several issues with this design. First, hashed passwords are directly contained in the mntner objects. As mntners are RPSL objects like others, they are fundamentally public, which is problematic for authentication information. For this reason, IRRDv4 already masks authentication hashes, but this is not an ideal solution. It makes it complex for users to update objects, and especially difficult and error prone when they would like to provide access under multiple different passwords. A second issue is that, while email notifications are supported, it is difficult for users to discover what modifications have been made to their objects, and how those were authorised. Third, this design is not very extendable. Fourth, IRRDv4 allows administrators to bypass authentication for any object using a single override password, which is a low level of security for such extensive access.
New authentication options
The more fundamental solution is to separate authentication data, which is private, from the operational RPSL data in the IRR, which is public by design. This not only resolves issues around authentication hashes, but also allows new features like API keys or having users with different permission levels. In the future, it could allow RPSL authentication to be linked to an SSO solution.
The initial implementation plan is as follows. All of this is opt-in, i.e. IRRD can keep working entirely as is for operators who prefer that.
will be a separate data store, which is not mixed with regular IRR objects. It
will be part of the existing PostgreSQL database.
new style maintainers. In new style maintainers, the IRR object is kept simple,
and all authentication data is kept in IRRD’s authentication store.
human users. This is the portal where authentication information will be
managed.
optional two factor authentication. The e-mail address will be validated.
valid current password for that mntner, and a confirmation link sent to the mntner’s
admin-c. The current user is automatically authorised on the mntner at user
management permission levels.
that existing integrations continue working. They will be removed from the
object in the IRR database and moved to IRRD’s authentication store.
other users (that have already made an account) to/from a mntner.
the same format as an email, without needing manual authentication
information (similar to RIPE syncupdates).
using legacy password authentication, offering a more secure channel than
emailing tokens or passwords.
object submission interfaces over email and the HTTPS API. API tokens can
be restricted to a submission method and/or IP range.
management permissions, for that mntner.
mntner, including those performed with API keys, and changes to objects.
This is visible to all users with user management permissions.
Resetting the two factor authentication can only be done by IRRD
administrators.
Authenticator, Authy and many other apps, and U2F tokens, like the
YubiKey, on supported browsers.
a single password. The initial user in this case is created through a new IRRD
command.
They will not gain new features like the action log.
data is not in IRR objects. An additional import/export method will be
designed for this data.
Other ideas to consider:
[ ] OAuth integration(out of scope at this time)The text was updated successfully, but these errors were encountered: