---
id: "dex"
type: "component"
kind: "identity-provider"
provider: "default"
category: "security"
docs: "https://dexidp.io/docs/"
url: "https://localhost:3000/catalogue/components/dex"
---

# Dex

OpenID Connect service that federates authentication to upstream providers through connectors.

| | |
|---|---|
| Provider | [default](https://localhost:3000/catalogue?provider=default) |
| Kind | [Identity provider](https://localhost:3000/catalogue/kinds/identity-provider) |
| Category | Security |
| Official docs | [https://dexidp.io/docs/](https://dexidp.io/docs/) |

## Properties

| property | type | values | required | kind default | this component |
|---|---|---|---|---|---|
| `authorizationModel` | enum | `none`, `rbac`, `abac`, `rebac` | no | "rbac" | **"none"** |
| `centralised` (advanced) | boolean | — | no | true | **true** |
| `localPasswordDatabase` | boolean | — | no | false | inherited |
| `managed` | boolean | — | no | true | **false** |
| `mfa` | boolean | — | no | false | **false** |
| `protocol` | enum | `oidc`, `saml`, `oauth2`, `iam`, `custom` | no | "oidc" | **"oidc"** |
| `storageBackend` | enum | `etcd`, `kubernetes`, `postgres`, `mysql`, `sqlite`, `memory` | no | — | inherited |
| `upstreamConnectors` | boolean | — | no | true | inherited |

Bold values are the ones this component pins.

## Rules that apply · 0

No rule selects this kind or its category.

## Other products of the same kind · 47

- [Resource Access Management](https://localhost:3000/catalogue/components/alibaba-ram.md) `alibaba-ram` — alibabacloud
- [Amazon Cognito](https://localhost:3000/catalogue/components/aws-cognito.md) `aws-cognito` — aws
- [Amazon Cognito identity pool](https://localhost:3000/catalogue/components/aws-cognito-identity-pool.md) `aws-cognito-identity-pool` — aws
- [AWS Directory Service](https://localhost:3000/catalogue/components/aws-directory-service.md) `aws-directory-service` — aws
- [AWS IAM](https://localhost:3000/catalogue/components/aws-iam.md) `aws-iam` — aws
- [AWS IAM Identity Center](https://localhost:3000/catalogue/components/aws-iam-identity-center.md) `aws-iam-identity-center` — aws
- [AWS IAM Roles Anywhere](https://localhost:3000/catalogue/components/aws-iam-roles-anywhere.md) `aws-iam-roles-anywhere` — aws
- [AWS Directory Service Simple AD](https://localhost:3000/catalogue/components/aws-simple-ad.md) `aws-simple-ad` — aws
- [Microsoft Azure Attestation](https://localhost:3000/catalogue/components/azure-attestation.md) `azure-attestation` — azure
- [Microsoft Entra Domain Services](https://localhost:3000/catalogue/components/azure-entra-domain-services.md) `azure-entra-domain-services` — azure
- [Microsoft Entra External ID](https://localhost:3000/catalogue/components/azure-entra-external-id.md) `azure-entra-external-id` — azure
- [Microsoft Entra ID](https://localhost:3000/catalogue/components/azure-entra-id.md) `azure-entra-id` — azure
- [Microsoft Entra Verified ID](https://localhost:3000/catalogue/components/azure-entra-verified-id.md) `azure-entra-verified-id` — azure
- [Azure IoT Hub Device Provisioning Service](https://localhost:3000/catalogue/components/azure-iot-dps.md) `azure-iot-dps` — azure
- [Managed identities for Azure resources](https://localhost:3000/catalogue/components/azure-managed-identity.md) `azure-managed-identity` — azure
- [Cloudflare One identity provider](https://localhost:3000/catalogue/components/cloudflare-one-identity-provider.md) `cloudflare-one-identity-provider` — cloudflare
- [Active Directory Domain Services](https://localhost:3000/catalogue/components/active-directory.md) `active-directory` — default
- [Athenz](https://localhost:3000/catalogue/components/athenz.md) `athenz` — default
- [Auth0](https://localhost:3000/catalogue/components/auth0.md) `auth0` — default
- [Authelia](https://localhost:3000/catalogue/components/authelia.md) `authelia` — default
- [authentik](https://localhost:3000/catalogue/components/authentik.md) `authentik` — default
- [Clerk](https://localhost:3000/catalogue/components/clerk.md) `clerk` — default
- [FreeIPA](https://localhost:3000/catalogue/components/freeipa.md) `freeipa` — default
- [Generic identity provider](https://localhost:3000/catalogue/components/identity-provider.md) `identity-provider` — default
- [Keycloak](https://localhost:3000/catalogue/components/keycloak.md) `keycloak` — default
- [OAuth2 Proxy](https://localhost:3000/catalogue/components/oauth2-proxy.md) `oauth2-proxy` — default
- [Okta](https://localhost:3000/catalogue/components/okta.md) `okta` — default
- [OpenFGA](https://localhost:3000/catalogue/components/openfga.md) `openfga` — default
- [OpenLDAP](https://localhost:3000/catalogue/components/openldap.md) `openldap` — default
- [Ory](https://localhost:3000/catalogue/components/ory.md) `ory` — default
- [Ping Identity Platform](https://localhost:3000/catalogue/components/ping-identity.md) `ping-identity` — default
- [SpiceDB](https://localhost:3000/catalogue/components/spicedb.md) `spicedb` — default
- [SPIRE](https://localhost:3000/catalogue/components/spire.md) `spire` — default
- [Stytch](https://localhost:3000/catalogue/components/stytch.md) `stytch` — default
- [WorkOS](https://localhost:3000/catalogue/components/workos.md) `workos` — default
- [Zitadel](https://localhost:3000/catalogue/components/zitadel.md) `zitadel` — default
- [Cloud Identity](https://localhost:3000/catalogue/components/google-cloud-identity.md) `google-cloud-identity` — gcp
- [Firebase Authentication](https://localhost:3000/catalogue/components/google-firebase-auth.md) `google-firebase-auth` — gcp
- [Google Identity Platform](https://localhost:3000/catalogue/components/google-identity-platform.md) `google-identity-platform` — gcp
- [Managed Service for Microsoft Active Directory](https://localhost:3000/catalogue/components/google-managed-microsoft-ad.md) `google-managed-microsoft-ad` — gcp
- and 7 more: https://localhost:3000/catalogue/kinds/identity-provider.md

## Use it in a design

```yaml
nodes:
  - { id: "dex", component: "dex" }
```

## Source (`component` YAML, verbatim)

```yaml
# yaml-language-server: $schema=../../schema/component.schema.json
# Dex: "an identity service that uses OpenID Connect to drive authentication for other apps", acting
# as "a portal to other identity providers through 'connectors'" - LDAP, SAML, GitHub, Google, Active
# Directory. It defers authentication rather than owning a user directory, and keeps its state in
# etcd, Kubernetes, PostgreSQL, MySQL, SQLite or memory ("Documentation"). It issues tokens and leaves
# authorization to the applications that consume them.
schemaVersion: "1"
type: "component"
id: "dex"
kind: "identity-provider"
provider: "default"
docs: "https://dexidp.io/docs/"
defaults:
  managed: false
  protocol: "oidc"
  authorizationModel: "none"
  centralised: true
  mfa: false
properties:
  storageBackend:
    type: "enum"
    values: ["etcd", "kubernetes", "postgres", "mysql", "sqlite", "memory"]
  upstreamConnectors:
    type: "boolean"
    default: true
  localPasswordDatabase:
    type: "boolean"
    default: false
```

Human page: https://localhost:3000/catalogue/components/dex
