From 004f14d1feb0613a0e9960393ea86875be462105 Mon Sep 17 00:00:00 2001 From: Livio Amstutz Date: Thu, 18 Nov 2021 19:15:09 +0100 Subject: [PATCH] docs: add openid certification (#2705) --- README.md | 2 ++ docs/static/logos/oidc-cert.png | Bin 0 -> 11748 bytes 2 files changed, 2 insertions(+) create mode 100644 docs/static/logos/oidc-cert.png diff --git a/README.md b/README.md index 6da4d23c5..7d77e93f2 100644 --- a/README.md +++ b/README.md @@ -7,6 +7,8 @@ [![Go Report Card](https://goreportcard.com/badge/github.com/caos/zitadel)](https://goreportcard.com/report/github.com/caos/zitadel) [![codecov](https://codecov.io/gh/caos/zitadel/branch/main/graph/badge.svg)](https://codecov.io/gh/caos/zitadel) +[![OpenID Connect Certified](./docs/static/logos/oidc-cert.png)](https://openid.net/certification/#OPs) + ## What Is ZITADEL **ZITADEL** is a "Cloud Native Identity and Access Management" solution built for the cloud era. ZITADEL uses a modern software stack consisting of [**Golang**](https://golang.org/), [**Angular**](https://angular.io/) and [**CockroachDB**](https://www.cockroachlabs.com/) as sole storage and follows an event sourced pattern. diff --git a/docs/static/logos/oidc-cert.png b/docs/static/logos/oidc-cert.png new file mode 100644 index 0000000000000000000000000000000000000000..3c99d1202286ebd1cf7a219f882bf25a5cb1cf0f GIT binary patch literal 11748 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