Authenticating OAuth2 Proxy to Entra ID Using Kubernetes Workload Identity

January 7, 2026 - Patrick Kerwood

In this post, I’ll demonstrate how to configure an Azure App Registration with federated credentials and configure OAuth2 Proxy to use Kubernetes-issued workload identity tokens to authenticate itself during an OpenID Connect login flow.

Read More

Installing the Crossplane AzureAD Provider with Federated Credentials

January 4, 2026 - Patrick Kerwood

Workload Identity Federation is rapidly becoming the modern standard for authenticating workloads. In this post, I will configure the Crossplane AzureAD provider to use a Kubernetes-issued service account token to authenticate to Azure, eliminating the need for long-lived secrets.

Read More

Simplifying Azure Authentication from Kubernetes with Workload Identity Federation

December 30, 2025 - Patrick Kerwood

In this blog post, I’ll walk you through an example of creating an Azure App Registration with a Federated Credential that trusts tokens issued by my Kubernetes cluster. I’ll then exchange that token for an Azure token and use it to make an API call to retrieve information about my own user.

Read More

Secure Your Caddy File Server with Keycloak

December 29, 2025 - Patrick Kerwood

In a previous post, I showed how to set up a simple HTTP file server using Caddy with Basic Authentication. In this post, I replace Basic Auth with GoGatekeeper as an authentication proxy and demonstrate how to implement path-based authorization using Keycloak roles assigned via group membership.

Read More

Setting up Workload Identity Federation between Kubernetes and Google Cloud.

November 11, 2025 - Patrick Kerwood

In this blog post, I’ll show how to set up Workload Identity Federation between a non-GKE Kubernetes cluster and Google Cloud Platform. This setup allows an application running in Kubernetes to use its Kubernetes service account to impersonate a Google service account and access cloud resources.

Read More

Setting up Workload Identity Federation between Keycloak and Google Cloud.

November 4, 2025 - Patrick Kerwood

In this blog post, I’ll demonstrate how to set up a Workload Identity Federation between Keycloak and Google Cloud Platform, allowing a Keycloak client to impersonate a Google service account to create a Cloud Storage bucket.

Read More

Setting Up Keycloak SAML Federation with Azure Entra ID

October 10, 2025 - Patrick Kerwood

In this guide, we’ll walk through setting up federated authentication between Azure Entra ID and Keycloak using SAML 2.0. By the end, you’ll have Entra ID as an identity provider and Keycloak properly configured to consume claims and group memberships.

Read More

Setting Up Keycloak with Docker Compose

September 24, 2025 - Patrick Kerwood

In this post, I’ll guide you through installing Keycloak with Docker Compose, with or without an SQL backend, and configuring it using my default Traefik setup. We’ll set up a dedicated URL for a realm and add a redirect from the realm’s root URL to its admin console.

Read More

Setting Up an HA VPN Between Google Cloud and CentOS 9 with strongSwan and BIRD

September 14, 2025 - Patrick Kerwood

In this guide, I’ll walk through setting up a site-to-site VPN between Google Cloud and a CentOS 9 VM hosted on DigitalOcean. We’ll use strongSwan to establish the IPsec tunnel, and the BIRD Internet Routing Daemon to peer with a Google Cloud Router and exchange routes dynamically using BGP.

Read More

Using Caddy as a Simple HTTP File Server

August 18, 2025 - Patrick Kerwood

Looking for a simple way to serve files over HTTP? In this guide, I'll walk through setting up a file server using Caddy, a modern web server written in Go. With minimal configuration, built-in directory browsing, and optional basic authentication, Caddy makes it easy to share files.

Read More