diff --git a/assets/scss/_custom.scss b/assets/scss/_custom.scss
index 3c598673ad..5eb26c2e54 100644
--- a/assets/scss/_custom.scss
+++ b/assets/scss/_custom.scss
@@ -71,6 +71,22 @@ body.td-404 main .error-details {
max-width: 80%;
border: 1px solid rgb(222, 226, 230);
border-radius: 5px;
+ margin-bottom: 1rem;
+ padding-top: 1rem;
+ padding-bottom: 1rem;
+
+ // mermaid diagram - sequence diagram
+ .actor {
+ fill: #326ce5 !important;
+ }
+ text.actor {
+ font-size: 18px !important;
+ stroke: white !important;
+ fill: white !important;
+ }
+ .activation0 {
+ fill: #c9e9ec !important;
+ }
}
/* HEADER */
diff --git a/content/en/docs/reference/access-authn-authz/authentication.md b/content/en/docs/reference/access-authn-authz/authentication.md
index c0ff47909c..8c0d1bf97b 100644
--- a/content/en/docs/reference/access-authn-authz/authentication.md
+++ b/content/en/docs/reference/access-authn-authz/authentication.md
@@ -282,7 +282,33 @@ from the OAuth2 [token response](https://openid.net/specs/openid-connect-core-1_
as a bearer token. See [above](#putting-a-bearer-token-in-a-request) for how the token
is included in a request.
-![Kubernetes OpenID Connect Flow](/images/docs/admin/k8s_oidc_login.svg)
+{{< mermaid >}}
+sequenceDiagram
+ participant user as User
+ participant idp as Identity Provider
+ participant kube as Kubectl
+ participant api as API Server
+
+ user ->> idp: 1. Login to IdP
+ activate idp
+ idp -->> user: 2. Provide access_token,
id_token, and refresh_token
+ deactivate idp
+ activate user
+ user ->> kube: 3. Call Kubectl
with --token being the id_token
OR add tokens to .kube/config
+ deactivate user
+ activate kube
+ kube ->> api: 4. Authorization: Bearer...
+ deactivate kube
+ activate api
+ api ->> api: 5. Is JWT signature valid?
+ api ->> api: 6. Has the JWT expired?(iat+exp)
+ api ->> api: 7. user authorized?
+ api -->> kube: 8. Authorized: Perform
action and return result
+ deactivate api
+ activate kube
+ kube --x user: 9. Return result
+ deactivate kube
+{{< /mermaid >}}
1. Login to your identity provider
2. Your identity provider will provide you with an `access_token`, `id_token` and a `refresh_token`