Authenticating OAuth2 Proxy to Entra ID Using Kubernetes Workload Identity
January 7, 2026 - Patrick KerwoodIn 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 MoreInstalling the Crossplane AzureAD Provider with Federated Credentials
January 4, 2026 - Patrick KerwoodWorkload 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 MoreSimplifying Azure Authentication from Kubernetes with Workload Identity Federation
December 30, 2025 - Patrick KerwoodIn 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 MoreSecure Your Caddy File Server with Keycloak
December 29, 2025 - Patrick KerwoodIn 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 MoreSetting up Workload Identity Federation between Kubernetes and Google Cloud.
November 11, 2025 - Patrick KerwoodIn 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 MoreSetting up Workload Identity Federation between Keycloak and Google Cloud.
November 4, 2025 - Patrick KerwoodIn 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 MoreSetting Up Keycloak SAML Federation with Azure Entra ID
October 10, 2025 - Patrick KerwoodIn 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 MoreSetting Up Keycloak with Docker Compose
September 24, 2025 - Patrick KerwoodIn 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 MoreSetting Up an HA VPN Between Google Cloud and CentOS 9 with strongSwan and BIRD
September 14, 2025 - Patrick KerwoodIn 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 MoreUsing Caddy as a Simple HTTP File Server
August 18, 2025 - Patrick KerwoodLooking 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