|
@ -1,4 +1,4 @@
|
|||
.github/
|
||||
.gitpod.yml
|
||||
bin/
|
||||
tmp/
|
||||
.gitpod.yml
|
||||
|
|
|
@ -13,3 +13,6 @@ indent_style = tab
|
|||
|
||||
[*.proto]
|
||||
indent_size = 2
|
||||
|
||||
[{Makefile,*.mk}]
|
||||
indent_style = tab
|
||||
|
|
0
DCO → .github/DCO
vendored
7
.gitignore
vendored
|
@ -1,5 +1,4 @@
|
|||
bin
|
||||
dist
|
||||
_output
|
||||
.idea
|
||||
/.idea/
|
||||
/bin/
|
||||
/docker-compose.override.yaml
|
||||
/vendor/
|
||||
|
|
|
@ -4,7 +4,7 @@ ARG TARGETOS
|
|||
ARG TARGETARCH
|
||||
ARG TARGETVARIANT=""
|
||||
|
||||
WORKDIR /go/src/github.com/dexidp/dex
|
||||
WORKDIR /usr/local/src/dex
|
||||
|
||||
ENV GOOS=${TARGETOS} \
|
||||
GOARCH=${TARGETARCH} \
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
Joel Speed <Joel.speed@hotmail.co.uk> (@JoelSpeed)
|
||||
Mark Sagi-Kazar <mark.sagikazar@gmail.com> (@sagikazarmark)
|
||||
Nandor Kracser <nandor@banzaicloud.com> (@bonifaido)
|
||||
Nandor Kracser <bonifaido@gmail.com> (@bonifaido)
|
||||
Rithu John <rithujohn191@gmail.com> (@rithujohn191)
|
||||
Stephen Augustus <stephen@agst.us> (@justaugustus)
|
||||
|
|
12
Makefile
|
@ -40,6 +40,18 @@ bin/example-app:
|
|||
release-binary:
|
||||
@go build -o /go/bin/dex -v -ldflags $(LD_FLAGS) $(REPO_PATH)/cmd/dex
|
||||
|
||||
docker-compose.override.yaml:
|
||||
cp docker-compose.override.yaml.dist docker-compose.override.yaml
|
||||
|
||||
.PHONY: up
|
||||
up: docker-compose.override.yaml ## Launch the development environment
|
||||
@ if [ docker-compose.override.yaml -ot docker-compose.override.yaml.dist ]; then diff -u docker-compose.override.yaml docker-compose.override.yaml.dist || (echo "!!! The distributed docker-compose.override.yaml example changed. Please update your file accordingly (or at least touch it). !!!" && false); fi
|
||||
docker-compose up -d
|
||||
|
||||
.PHONY: down
|
||||
down: clear ## Destroy the development environment
|
||||
docker-compose down --volumes --remove-orphans --rmi local
|
||||
|
||||
test: bin/test/kube-apiserver bin/test/etcd
|
||||
@go test -v ./...
|
||||
|
||||
|
|
5
NOTICE
|
@ -1,5 +0,0 @@
|
|||
CoreOS Project
|
||||
Copyright 2018 CoreOS, Inc
|
||||
|
||||
This product includes software developed at CoreOS, Inc.
|
||||
(http://www.coreos.com/).
|
|
@ -5,7 +5,7 @@
|
|||
[![go.dev reference](https://img.shields.io/badge/go.dev-reference-007d9c?logo=go&logoColor=white&style=flat-square)](https://pkg.go.dev/mod/github.com/dexidp/dex)
|
||||
[![Gitpod ready-to-code](https://img.shields.io/badge/Gitpod-ready--to--code-blue?logo=gitpod&style=flat-square)](https://gitpod.io/#https://github.com/dexidp/dex)
|
||||
|
||||
![logo](Documentation/logos/dex-horizontal-color.png)
|
||||
![logo](docs/logos/dex-horizontal-color.png)
|
||||
|
||||
Dex is an identity service that uses [OpenID Connect][openid-connect] to drive authentication for other apps.
|
||||
|
||||
|
@ -56,7 +56,7 @@ More docs for running dex as a Kubernetes authenticator can be found [here](http
|
|||
|
||||
When a user logs in through dex, the user's identity is usually stored in another user-management system: a LDAP directory, a GitHub org, etc. Dex acts as a shim between a client app and the upstream identity provider. The client only needs to understand OpenID Connect to query dex, while dex implements an array of protocols for querying other user-management systems.
|
||||
|
||||
![](Documentation/img/dex-flow.png)
|
||||
![](docs/img/dex-flow.png)
|
||||
|
||||
A "connector" is a strategy used by dex for authenticating a user against another identity provider. Dex implements connectors that target specific platforms such as GitHub, LinkedIn, and Microsoft as well as established protocols like LDAP and SAML.
|
||||
|
||||
|
|
14
docker-compose.override.yaml.dist
Normal file
|
@ -0,0 +1,14 @@
|
|||
version: "3.8"
|
||||
|
||||
services:
|
||||
mysql:
|
||||
ports:
|
||||
- "127.0.0.1:3306:3306"
|
||||
|
||||
postgres:
|
||||
ports:
|
||||
- "127.0.0.1:5432:5432"
|
||||
|
||||
etcd:
|
||||
ports:
|
||||
- "127.0.0.1:2379:2379"
|
|
@ -1,39 +1,34 @@
|
|||
# This docker-compose file provides quick setups for testing different storage backend options.
|
||||
version: "3.8"
|
||||
|
||||
services:
|
||||
mysql:
|
||||
# For using percona-xtradb you need to make strict mode permissive with:
|
||||
# docker-compose exec mysql mysql -uroot -proot -e "SET GLOBAL pxc_strict_mode=PERMISSIVE;"
|
||||
# See: https://www.percona.com/doc/percona-xtradb-cluster/5.7/features/pxc-strict-mode.html
|
||||
# image: percona/percona-xtradb-cluster:5.7
|
||||
# image: mariadb:10.5
|
||||
# image: mysql:5.6
|
||||
# image: mysql:8.0
|
||||
image: mysql:5.7
|
||||
environment:
|
||||
MYSQL_DATABASE: dex
|
||||
MYSQL_USER: mysql
|
||||
MYSQL_PASSWORD: mysql
|
||||
MYSQL_ROOT_PASSWORD: root
|
||||
ports:
|
||||
- "127.0.0.1:3306:3306"
|
||||
mysql:
|
||||
# For using percona-xtradb you need to make strict mode permissive with:
|
||||
# docker-compose exec mysql mysql -uroot -proot -e "SET GLOBAL pxc_strict_mode=PERMISSIVE;"
|
||||
# See: https://www.percona.com/doc/percona-xtradb-cluster/5.7/features/pxc-strict-mode.html
|
||||
# image: percona/percona-xtradb-cluster:5.7
|
||||
# image: mariadb:10.5
|
||||
# image: mysql:5.6
|
||||
# image: mysql:8.0
|
||||
image: mysql:5.7
|
||||
environment:
|
||||
MYSQL_DATABASE: dex
|
||||
MYSQL_USER: mysql
|
||||
MYSQL_PASSWORD: mysql
|
||||
MYSQL_ROOT_PASSWORD: root
|
||||
|
||||
postgres:
|
||||
image: postgres:10.15
|
||||
environment:
|
||||
POSTGRES_DB: dex
|
||||
POSTGRES_USER: postgres
|
||||
POSTGRES_PASSWORD: postgres
|
||||
ports:
|
||||
- "127.0.0.1:5432:5432"
|
||||
postgres:
|
||||
image: postgres:10.15
|
||||
environment:
|
||||
POSTGRES_DB: dex
|
||||
POSTGRES_USER: postgres
|
||||
POSTGRES_PASSWORD: postgres
|
||||
|
||||
etcd:
|
||||
image: gcr.io/etcd-development/etcd:v3.4.9
|
||||
environment:
|
||||
ETCD_LISTEN_CLIENT_URLS: http://0.0.0.0:2379
|
||||
ETCD_ADVERTISE_CLIENT_URLS: http://0.0.0.0:2379
|
||||
ports:
|
||||
- "127.0.0.1:2379:2379"
|
||||
etcd:
|
||||
image: gcr.io/etcd-development/etcd:v3.4.9
|
||||
environment:
|
||||
ETCD_LISTEN_CLIENT_URLS: http://0.0.0.0:2379
|
||||
ETCD_ADVERTISE_CLIENT_URLS: http://0.0.0.0:2379
|
||||
|
||||
# For testing the Kubernetes storage backend we suggest https://kind.sigs.k8s.io/:
|
||||
# kind create cluster
|
||||
# For testing the Kubernetes storage backend we suggest https://kind.sigs.k8s.io/:
|
||||
# kind create cluster
|
||||
|
|
Before Width: | Height: | Size: 88 KiB After Width: | Height: | Size: 88 KiB |
Before Width: | Height: | Size: 29 KiB After Width: | Height: | Size: 29 KiB |
Before Width: | Height: | Size: 21 KiB After Width: | Height: | Size: 21 KiB |
Before Width: | Height: | Size: 8 KiB After Width: | Height: | Size: 8 KiB |
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 10 KiB |
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 10 KiB |
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 24 KiB |
Before Width: | Height: | Size: 4 KiB After Width: | Height: | Size: 4 KiB |
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 24 KiB |
Before Width: | Height: | Size: 4 KiB After Width: | Height: | Size: 4 KiB |
|
@ -6,7 +6,7 @@ issuer: http://127.0.0.1:5556/dex
|
|||
# The storage configuration determines where dex stores its state. Supported
|
||||
# options include SQL flavors and Kubernetes third party resources.
|
||||
#
|
||||
# See the storage document at Documentation/storage.md for further information.
|
||||
# See the documentation (https://dexidp.io/docs/storage/) for further information.
|
||||
storage:
|
||||
type: sqlite3
|
||||
config:
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
# Running a Dex gRPC client
|
||||
|
||||
Using gRPC, a client application can directly call methods on a server application as if it was a local object. The schema for Dex's gRPC API calls is defined in [`api/api.proto`][api-proto]. [`client.go`][client] is an example client program that makes a bunch of API calls to the dex server. For further details on the Dex API refer [`Documentation/api.md`][api-docs].
|
||||
Using gRPC, a client application can directly call methods on a server application as if it was a local object. The schema for Dex's gRPC API calls is defined in [`api/api.proto`][api-proto]. [`client.go`][client] is an example client program that makes a bunch of API calls to the dex server. For further details on the Dex API refer the [documentation][https://dexidp.io/docs/api/].
|
||||
|
||||
## Generating Credentials
|
||||
|
||||
|
@ -60,4 +60,3 @@ Run the following command to destroy all the credentials files that were created
|
|||
```
|
||||
[api-proto]: ../../api/api.proto
|
||||
[client]: client.go
|
||||
[api-docs]: ../../Documentation/api.md
|
||||
|
|