Tool to link accounts
The Account LInking SErvice ALISE implements the concept of site-local account linking. For this a user can log in with one local account and with any number of supported external accounts (e.g. Helmholtz-ID and Google). The local account is on at an HPC centre, which also comprises the Unix-User name.
Federated services can use this informatin whenever they need to map a federated identity to a local Unix account at a computer centre.
Examples for this are http/webDAV file access. WeDAV supports Basic Authentication, which is transported via an OIDC Access Token to convey the federated users' identity. The server needs to store the uploaded data with a specific account name, such that the same user could later access the uploaded date from e.g. computing jobs on that same server.
Alise may be used to ask users for linking their federatd identity to a local one, so that the webDAV server could find the users' corresponding local unix ID.
Account LInking SErvice is available on PyPI. Install using pip
:
pip install alise
You can also install from the git repository:
git clone https://github.com/marcvs/alise
pip install -e ./alise
ALISE depends on gunicorn:
apt install gunicorn
# from the dir where alise is installed:
gunicorn alise.daemon:app -k "uvicorn.workers.UvicornWorker"
Then point your browser to http://localhost:8000
We provide an nginx configuration file in alise/etc/nginx.alise
(github). Simply
copy or it to nginx like:
ln -s $PWD/alise/etc/nginx.alise /etc/nginx/sites-enabled
We provide a systemd service file in alise/etc/alise.service
(github). Simply
copy link it to systemd like:
ln -s $PWD/alise/etc/alise.service /etc/systemd/system/
systemctl daemon-reload
systemctl enable alise.service
systemctl start alise.service
Place content of alise/static
to place that nginx can serve as /static
Place an icon of your site into /static/<name of your sites config entry
.svg
(Yep that's a bit hacky)
ALISE is configured via a single config file. A template is provided in
alise/etc/alise.conf
(github). It should be self-explanatory.