This repository contains the Forward Auth
Python package and two authentication middleware modules, dachub_auth
and incore_auth
, built upon the Forward Auth package.
- dachub_auth/, incore_auth/: Source code for each authentication middleware module.
- forward_auth/: Python package with core utilities, such as
JWTAuthenticator
, for building authentication middleware. - Dockerfile.dachub_auth, Dockerfile.incore_auth: Dockerfiles for building each authentication middleware.
- GitHub Actions Workflow: Automates building and pushing Docker images with manual selection between Dockerfiles.
- Manual Only: Select either
Dockerfile.dachub_auth
orDockerfile.incore_auth
.
- Extract Dockerfile Name: Determines image name (
dachub-auth
orincore-auth
). - Build and Push: Logs into GitHub and NCSA Hub registries, builds, and pushes the image.
KEYCLOAK_PUBLIC_KEY
,KEYCLOAK_AUDIENCE
,KEYCLOAK_URL
, etc.
- DACHUB Auth Docker Image: hub.ncsa.illinois.edu/dachub/dachub_auth
To build and run dachub_auth
locally:
docker build -f Dockerfile.dachub_auth -t dachub_auth:test .
docker run -d -p 5000:5000 \
-e FLASK_APP="app.py" \
-e KEYCLOAK_PUBLIC_KEY="..." \
-e KEYCLOAK_AUDIENCE="..." \
-e KEYCLOAK_URL="..." \
dachub_auth:test
To build and run incore_auth
, replace Dockerfile.dachub_auth
and dachub_auth:test
with Dockerfile.incore_auth
and incore_auth:test
, respectively.