archlinux/single auth db
Signed-off-by: Nico Schottelius <nico@kr.ethz.ch>
This commit is contained in:
parent
13f1a5c22c
commit
09b8fc5e50
1 changed files with 101 additions and 0 deletions
101
blog/archlinux-single-authentication-database.mdwn
Normal file
101
blog/archlinux-single-authentication-database.mdwn
Normal file
|
@ -0,0 +1,101 @@
|
||||||
|
[[!meta title="Archlinux: One way to create one account for all systems"]]
|
||||||
|
|
||||||
|
## Introduction
|
||||||
|
|
||||||
|
If you use archlinux and use more than one of the web tools, you'll have
|
||||||
|
multiple accounts, because each tool has its own authentication database.
|
||||||
|
|
||||||
|
## Motivation
|
||||||
|
|
||||||
|
Having Single-Sign-On (SSO) or at least one account for all systems
|
||||||
|
would simplify life with the webtools.
|
||||||
|
|
||||||
|
## Quick overview
|
||||||
|
|
||||||
|
As of today, I see at least four systems being used:
|
||||||
|
|
||||||
|
* [bugs/flyspray](https://bugs.archlinux.org/)
|
||||||
|
* [wiki/mediawiki](https://wiki.archlinux.org/)
|
||||||
|
* [aur/aur](https://aur.archlinux.org/)
|
||||||
|
* [forum/fluxbb](https://bbs.archlinux.org/)
|
||||||
|
* [mailinglist/mailman](http://mailman.archlinux.org/mailman/listinfo/)
|
||||||
|
|
||||||
|
## Quick analysis
|
||||||
|
|
||||||
|
In the bugtracker you can see a
|
||||||
|
[bug](http://bugs.archlinux.org/task/10703) in which using
|
||||||
|
openid is described. [OpenID](http://openid.net/) may be an
|
||||||
|
interesting option, though I see another one that could
|
||||||
|
be doable.
|
||||||
|
|
||||||
|
## Database support
|
||||||
|
|
||||||
|
All applications with the exception of mailman, are database based.
|
||||||
|
Fluxbb support at least MySQL and PostgreSQL, Mediawiki
|
||||||
|
support MySQL and PostgreSQL, Flyspray supports
|
||||||
|
MySQL and PostgreSQL and aur seems to use MySQL
|
||||||
|
(seen in ***support/schema/aur-schema.sql***).
|
||||||
|
|
||||||
|
Mailman has no database support, but from my point of view,
|
||||||
|
it makes sense to leave mailman seperated, as mailman's
|
||||||
|
primary key is an email address, which may be different
|
||||||
|
for each mailinglist anyway (I'm using a different e-mail address
|
||||||
|
for every person / mailinglist).
|
||||||
|
|
||||||
|
## One database, multiple schemas
|
||||||
|
|
||||||
|
All these tools have their own schemas and are not written to
|
||||||
|
support each other. But there's a very elegant way supported
|
||||||
|
by PostgreSQL to access different "views" in a read-write
|
||||||
|
manner: schemas.
|
||||||
|
|
||||||
|
PostgreSQL normally has one default schema, named "public".
|
||||||
|
With PostgreSQL one could create a new database that contains
|
||||||
|
all the authentication information and map it into the
|
||||||
|
schemas of the other databases.
|
||||||
|
|
||||||
|
## This is a proposal
|
||||||
|
|
||||||
|
I'm not good in politics, nor interested in arguing or fighting
|
||||||
|
for a solution. Instead, I'm giving this proposal, which I'm
|
||||||
|
willing to help and/or coordinate with Archlinux Sysadmins.
|
||||||
|
|
||||||
|
## One way to do it
|
||||||
|
|
||||||
|
Coming back to the original idea, here's one way to do it:
|
||||||
|
|
||||||
|
### Test the proposal
|
||||||
|
|
||||||
|
* Create a new userdb
|
||||||
|
* Analyse schemas of applications
|
||||||
|
* Create mappings from application schemas to userdb
|
||||||
|
* Verify that applications work
|
||||||
|
|
||||||
|
### Prepare the migration
|
||||||
|
|
||||||
|
* Try to import data from current live sources
|
||||||
|
* Fix any collisions
|
||||||
|
* Define what a fix is: Delete or merge or rename or whatever
|
||||||
|
* Ensure that AUR also supports postgresql
|
||||||
|
|
||||||
|
### Test the migration
|
||||||
|
|
||||||
|
* Import data from live systems into the new databases
|
||||||
|
* Setup tools on test system to use new database
|
||||||
|
* Verify everything works
|
||||||
|
|
||||||
|
### Do the migration
|
||||||
|
|
||||||
|
* Announce migration date
|
||||||
|
* Freeze database
|
||||||
|
* Import data
|
||||||
|
* Change applications to use the databases
|
||||||
|
* Test each application
|
||||||
|
* Allow access from outside again
|
||||||
|
* Announce migration finish
|
||||||
|
|
||||||
|
## Comments?
|
||||||
|
|
||||||
|
I'm reachable as telmich in #archlinux or [[the usual way|about]].
|
||||||
|
|
||||||
|
[[!tag unix]]
|
Loading…
Reference in a new issue