Skip to content

azophy/authduck

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

77 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Authduck Logo

AuthDuck

OIDC Server Playground for development & testing

Problem Statement

Sometime when developing a web app, its easier to integrate OIDC early in the process, as it allows to skip many important auth-related feature (login, registration, password reset, etc). however setting up IdP for development purposes often takes a lot of effort. this project aims to provide a simple IdP server for this purposes, with minimal features

registering on a cloud OIDC provider is not always straightforward (google, twitter, etc). distributing the credentials is also another minefield. so a mock IdP server seems like the best option

How to use

Curently we only provide a generic OIDC server module. However in the future we plan to add mock server for popular services such as Google, Github, Keycloak, etc.

To start playing with this tools as a Generic OIDC Server, you could use any OIDC client you have (for example: openidconnect.net , an OIDC client playground by Auth0), and then use the /.well-known/openid-configuration path to populate all the required fields. You could also view request history to known client by visiting the request history page.

There are a tutorial in our wiki page if you wish for a more detailed guidance.

How To Install

For many cases, using our public instance at authduck.fly.dev should be enough. However if you wish to install it on your own server, we provide several methods:

1. Download available executables from releases page

we provided executables for various platforms, just extract the file and run in. see our releases page.

2. Use available docker image

docker run -it ghcr.io/azophy/authduck:latest

3. Compile from source

commonly for development. just prepare go version 1.22+ and run go build.

Configurations

Using environment variables or via .env file. please see .env.example for available options

Features

  • well known endpoint
  • jwks endpoint
  • customize call back payload
  • define accepted clients & users
  • deployable as single binary
  • dockerized in dockerhub
  • rate limiter to protect from abuse
  • scheduler to clear stale data
  • mock for popular OIDC providers: google, facebook, github, keycloak, ory, etc

Tech stack

  • go 1.22
  • in memory sqlite (configurable)
  • tacit css framework
  • HTMX
  • JWX package for JWT, JWK, and JWS operations