Add README (#1)
This commit is contained in:
53
README.md
Normal file
53
README.md
Normal file
@@ -0,0 +1,53 @@
|
||||
# OpenID Connect Identity Provider for Sign-In with Ethereum
|
||||
|
||||
## Getting Started
|
||||
|
||||
### Dependencies
|
||||
|
||||
Redis, or a Redis compatible database (e.g. MemoryDB in AWS), is required.
|
||||
|
||||
### Starting the IdP
|
||||
|
||||
The Docker image is available at `ghcr.io/spruceid/siwe_oidc:0.1.0`. Here is an
|
||||
example usage:
|
||||
```bash
|
||||
docker run -p 8000:8000 -e SIWEOIDC_ADDRESS="0.0.0.0" -e SIWEOIDC_REDIS_URL="redis://redis" ghcr.io/spruceid/siwe_oidc:latest
|
||||
```
|
||||
|
||||
It can be configured either with the `siwe-oidc.toml` configuration file, or
|
||||
through environment variables:
|
||||
* `SIWEOIDC_ADDRESS` is the IP address to bind to.
|
||||
* `SIWEOIDC_REDIS_URL` is the URL to the Redis instance.
|
||||
* `SIWEOIDC_BASE_URL` is the URL you want to advertise in the OIDC configuration
|
||||
(e.g. `https://oidc.example.com`).
|
||||
* `SIWEOIDC_RSA_PEM` is the signing key, in PEM format. One will be generated if
|
||||
none is provided.
|
||||
|
||||
### OIDC Functionalities
|
||||
|
||||
The current flow is very basic -- after the user is authenticated you will
|
||||
receive an Ethereum address as the subject (`sub` field).
|
||||
|
||||
For the core OIDC information, it is available under
|
||||
`/.well-known/openid-configuration`.
|
||||
|
||||
### TODO Items
|
||||
|
||||
* Additional information, from native projects (e.g. ENS domains), to more
|
||||
traditional ones (e.g. email).
|
||||
|
||||
## Development
|
||||
|
||||
A Docker Compose is available to test the IdP locally with Keycloak.
|
||||
|
||||
1. You will first need to run:
|
||||
```bash
|
||||
docker-compose up -d
|
||||
```
|
||||
|
||||
2. And then edit your `/etc/hosts` to have `siwe-oidc` point to `127.0.0.1`.
|
||||
This is so both your browser, and Keycloak, can access the IdP.
|
||||
|
||||
3. In Keycloak, you will need to create a new IdP. You can use
|
||||
`http://siwe-oidc:8000/.well-known/openid-configuration` to fill the settings
|
||||
automatically. As for the client ID/secret, you can use `sdf`/`sdf`.
|
||||
Reference in New Issue
Block a user