Open-source alternative to AD FS Web Application Proxy

Web Application Proxy publishes AD FS and internal apps to the internet, and it is tied to AD FS farms. Pomerium or authentik's proxy provider can replace it with self-hosted pre-authentication, provided the Kerberos and header-based apps are mapped first.

On this page

Which open-source option replaces AD FS Web Application Proxy?

If your AD FS estate publishes internal applications through Web Application Proxy, the main open-source candidates for that role are Pomerium and authentik's proxy provider. Keycloak does not cover this role on its own, so it will usually sit behind one of these proxies rather than replace the publishing layer. Before choosing, confirm which applications need pre-authentication only, which send identity in headers, and which depend on Kerberos delegation, because each pattern pushes the decision in a different direction. List the certificates, load balancer rules and health checks that AD FS and Web Application Proxy currently require, since those become your replacement's responsibility.

Licensing is a useful first filter. Pomerium Core is licensed under Apache-2.0, and authentik's core is MIT licensed, with its enterprise directory under a separate authentik EE License. Confirm that the features you need sit in the edition you will run. The authentik proxy provider is listed among the free edition's protocols with community support only, so a production estate that needs ticketed support should check the Enterprise pricing and scope before committing. Pomerium's Enterprise edition is priced separately and reserves items such as directory sync and RBAC for administrators, so ask the vendor which of your requirements apply.

Test both candidates against a few of your real published applications before deciding. Ask each vendor how its proxy handles header-based apps, Kerberos-protected backends and any SharePoint-style apps that still depend on WS-Federation, because those are the cases where the proxy layer and the identity provider choice interact. Then document the outcome for each application, which becomes the input to your relying party inventory and cutover plan.

How Web Application Proxy capabilities map to open-source options

This table maps the main jobs Web Application Proxy performs for AD FS (pre-authentication, claims, header apps, Kerberos, non-web traffic, certificates and high availability) to Pomerium and authentik's proxy provider. Where the researched facts do not settle a capability, the cell says to confirm it in a proof of concept, so treat those items as open questions rather than supported features. Read each row against your own published applications before choosing a product.

CapabilityPomerium (Core, self-run)authentik proxy provider
Pre-authentication of internal web appsClientless access to internal web apps with identity-aware policy, without a corporate VPN, per the Pomerium READMEProxy provider places an authentication layer in front of apps via an outpost; confirm the flow for each published app
Claims-based access rulesAttribute-based policies and identity provider claims; confirm which AD FS claim rule types map to Pomerium policy expressionsPolicies bound to users and groups; confirm how AD-sourced attributes and group claims reach the app
Header-based appsForwards identity to upstream apps through headers; confirm header names and trust settings for each legacy appProxy mode supplies user identity headers to the upstream; confirm header passthrough and spoofing protection in your setup
Kerberos constrained delegationNot a documented capability in the facts supplied; treat as a gap and confirm with the vendor before designKerberos authentication is listed among the free-edition features; confirm whether it supports constrained delegation to back-end apps
WebSocket and non-web trafficClientless web access is the core use; native SSH, TCP and UDP access is listed on Pomerium Zero, so confirm the same in CoreProxy provider targets HTTP apps; confirm WebSocket behavior and any non-web use with a test app
Certificates and TLSCertificates are managed by the operator on the Core cluster; confirm the ACME or certificate source you will use in your environmentCertificates are handled on the outpost and the load balancer in front of it; confirm the ingress design with your load balancer team
High availabilityRun multiple Core instances behind your load balancer; confirm session affinity and shared state requirements with PomeriumServer and worker containers backed by PostgreSQL; confirm outpost redundancy and failover in the architecture guide
Known gaps to plan forDirectory sync and Rego policies sit in the Enterprise edition, so plan for Core-only policy designEnterprise features such as Microsoft Entra ID integration and mTLS sit in the paid editions, so check licensing before design

Pomerium or authentik proxy: when each one fits

Web Application Proxy sat between AD FS and the internet, so a replacement has to cover pre-authentication, header-based apps and Kerberos apps in one decision. Pomerium and authentik's proxy provider solve parts of that problem in different ways, and the cards below set out where each one fits and what to verify before choosing.

Pomerium Core as a clientless access proxy

Pomerium Core is Apache-2.0 licensed and runs in your own environment, placing identity-aware checks in front of internal web apps without a corporate VPN. It fits teams that want a proxy as a single purpose component and already run their own identity provider such as Keycloak, Microsoft Entra ID or Okta. Check which identity providers and policy features your edition covers, since directory sync, Rego policies and administrator RBAC sit in the Enterprise edition.

Pomerium ingress for Kubernetes services

Pomerium publishes a Kubernetes Ingress Controller under Apache-2.0, so internal services running in clusters can sit behind the same policy layer as your other apps. This suits platform teams that already expose workloads through ingress and want authorization in front of them. Confirm the controller version and route model against your cluster's ingress version before planning a migration of published AD FS-era applications.

authentik proxy provider with embedded outpost

The authentik proxy provider runs an embedded outpost inside the same server that handles its SSO, so one product covers sign-in and the protected application path. It fits organizations that want one self-hosted system for SSO, LDAP, RADIUS and proxy access, and it stores its configuration in PostgreSQL. Plan for the server and worker containers and the database as a single operational unit, and confirm which outpost placement suits your network zones.

Free edition support and proxy scope

authentik's open-source core is MIT licensed, and the free edition lists proxy authentication among its supported features. Support in the free edition is community only through Discord, so an application outage has no contracted response time. Decide whether your team can operate the proxy in-house or whether a support subscription is needed, and ask for that support model in writing before depending on it for production sign-in.

Header and Kerberos app coverage

AD FS-era estates often include header-based intranet apps and some Kerberos-protected services that Web Application Proxy handled through pass-through. Neither option replaces Kerberos delegation by itself, so test each published app with its real authentication path, including header injection and any Kerberos constraint. List these apps during inventory and assign each one to a proxy or a native integration, rather than assuming one proxy covers all of them.

Certificates and load balancer rules

AD FS imposed certificate and load balancer requirements, including the federation service name, back-end certificates and sticky sessions on the front end. Pomerium and authentik each need their own public hostnames, TLS certificates and forwarded headers, and the load balancer must pass them correctly. Record every rule the old Web Application Proxy depended on, then test each one against the new proxy path before cutover.

Running the proxy next to AD FS and Active Directory during transition

The lowest-change option keeps AD FS as the identity provider and places the new proxy in front of applications that already sign users in through it. Pomerium authenticates users with OAuth 2.0 and OIDC, so the proxy acts as a client of AD FS, while AD FS keeps its existing trusts, MFA and claim rules for everything else. Pomerium's identity provider documentation is the place to confirm which upstream configurations it supports.

  • Upstream endpoints: Confirm that your AD FS farm exposes the OpenID Connect endpoints the proxy needs before committing to this layout.
  • Claims: Map the UPN and group claims that proxy policies depend on to the claims AD FS already issues, and test them in a non-production relying party.
  • Farm stays in service: AD FS and its Web Application Proxy servers keep serving existing relying parties, so their certificates, patching and licensing continue through the transition.
  • Session behavior: Users may see more than one sign-in prompt if the proxy and existing apps hold separate sessions, so set session lifetimes on purpose.

Check the AD FS farm version and token signing certificate renewal schedule before you start, because both determine how long this layout can stay in place.

Moving published apps from Web Application Proxy to a new proxy

This sequence moves each published application from Web Application Proxy to a new reverse proxy one at a time, so every app has a tested path, a known authentication mode and a rollback route before its public name changes.

  1. Inventory published applications and authentication modes

    Export the list of published applications from the Web Application Proxy servers and record, for each one, the external and backend URLs, the preauthentication setting, the AD FS relying party it uses, the certificate in use and the owner. Include the load balancer virtual IPs and DNS records that point at each publication. The step is done when every published app appears in one inventory with an owner and an authentication mode, and the team has confirmed the list with the application owners rather than relying on the server configuration alone.

  2. Classify apps as header, Kerberos or claims

    Sort each application into one of three groups. Header-based apps accept identity in a request header and suit a proxy that injects trusted headers after sign-in. Kerberos apps rely on integrated Windows authentication to the backend, which needs delegated Kerberos or constrained delegation to be designed explicitly. Claims apps expect a token from AD FS and must be re-pointed to a new OpenID Connect or SAML client. Mark any app whose vendor does not document its header or ticket handling, because those apps need a vendor check before testing starts.

  3. Stand up the new proxy in a test zone

    Deploy Pomerium or the authentik proxy outpost in a test network segment that can reach the backends but is not yet published on the internet. Connect it to the identity provider you chose for the migration and load a route for one representative app from each group in the classification. Confirm that a sign-in completes, that the identity headers or tokens reach the backend, and that a user outside the allowed group is refused. The step closes when each group has one working route with logged access decisions.

  4. Re-point DNS and load balancer rules

    Prepare the new public records and load balancer rules for each app, but keep the existing Web Application Proxy targets as the live path. Lower the time-to-live on the records ahead of the change window where your DNS policy allows it, and write the rule that sends each host name to the new proxy. Document the old and new targets side by side, so the rollback is a single known change. The check is that the staged records resolve as expected from inside and outside the network before any user traffic moves.

  5. Move certificates for each published name

    Issue or import the TLS certificates for every public host name the new proxy will serve, including any wildcard or subject alternative names used today. Install them on the new proxy and on the load balancer where TLS terminates, and confirm the certificate chain is complete for clients on your supported devices. Where the old certificate is also bound to AD FS endpoints, plan that separately so the federation service keeps working during the cut. The step is done when each host presents a valid chain from both test and production paths.

  6. Cut over app by app

    Move one application at a time, starting with a low-risk app that has a clear owner and a tested rollback. Switch its DNS or load balancer rule to the new proxy, run a sign-in test with a named pilot user, and check the backend logs and the proxy access log. Keep the old publication in place until the app has run without incident through its normal use. Repeat the cycle for the remaining apps in groups, starting with header apps, then claims apps, and leaving Kerberos apps for last because they need the most delegation testing.

  7. Retire Web Application Proxy servers

    After every inventory item has been moved or formally retired, remove the publications from the Web Application Proxy servers, disable the service, and keep the configuration exported for audit. Remove the related DNS records, load balancer targets and certificates that no longer serve traffic, and update the asset register. Record the final state in the change log and confirm with the security and compliance owners that the old published paths are closed. The step is done when no external request reaches the old servers and the inventory shows every app on the new proxy.

How the proxy sits between users and internal apps

A proxy-based replacement for Web Application Proxy works by putting a gateway in front of each internal app. The user's browser reaches the proxy first, not the app. The proxy redirects the user to the identity provider, which is Keycloak, authentik or another OIDC source, and checks the returned token or assertion against a policy before any request reaches the app. Once the session is established, the proxy either forwards identity headers, such as a user name or group claim, or keeps the session at its own edge and passes only authorized requests through. Confirm which of these modes each candidate uses for your app types, because the app's own login logic, not the proxy, decides whether a forwarded header can be trusted.

The trust boundary therefore sits at the proxy, not at the app. Any header the proxy injects is only as trustworthy as the network path between the proxy and the app. Make the app reachable only from the proxy, strip client-supplied identity headers at the edge, and document which hosts may send them. Review these rules during design, because a misconfigured header path lets any internal caller impersonate a user. Ask the vendor how each candidate handles header stripping, upstream TLS and the signing or validation of identity data passed to the app.

Kerberos-protected apps need separate design work. Web Application Proxy, with AD FS, could perform Kerberos constrained delegation on the user's behalf, so the app saw the user's Active Directory identity. A proxy that only forwards OIDC or header identity does not do this by default. Inventory which apps depend on Integrated Windows Authentication, decide whether each needs delegation or a different identity model, and then plan the service accounts, Service Principal Names and Active Directory configuration those apps require. Treat this as its own workstream with its own test plan, not as a line item in the proxy rollout.

Questions buyers ask before replacing Web Application Proxy

What does it cost to replace Web Application Proxy with open-source components?

The cost falls into four components: the software, the servers that run it, certificates and DNS, and labor for design, cutover and operations. Pomerium Core and authentik's open-source edition carry no license fee, so the recurring spend is infrastructure, certificates, staff time and any support subscription you choose. Web Application Proxy servers add Windows Server licensing and patching to that picture, which you can compare line by line. Ask any implementation partner for a quote that lists each component separately, including who pays for what, which items are one-time and which recur each year, and what changes if the application count grows.

Does Pomerium Zero or authentik Enterprise change the picture?

Yes, because both move some capabilities from the free tier into paid tiers. Pomerium Core is Apache-2.0 and self-run, while Pomerium Zero adds a managed control plane with per-user pricing, and Enterprise reserves directory sync, Rego policies, RBAC for administrators and session management. authentik's free edition supports proxy authentication with community support only, and its Enterprise tier adds features such as mTLS client certificate authentication and ticket-based support. Pomerium Zero keeps application traffic in your environment because you run the Core cluster yourself. Check which features your apps need before choosing a tier, and confirm current pricing directly with each vendor.

How long does the migration take and what drives the timeline?

The timeline depends on the number of published applications, how many use header-based authentication or Kerberos, how many certificates and load balancer rules must be re-created, and how many change windows your organization allows. A small set of web apps with OIDC support moves faster than a farm with Kerberos constrained delegation and legacy header trust. No duration is set in this page, so ask for a schedule in the written scope, with milestones for inventory, pilot apps, cutover and decommissioning of the old proxy servers.

What does the internal team need to provide?

Plan for the people who know the applications, the network team that owns firewall and load balancer rules, and the identity team that owns the directory and certificate authority. Typically that means an inventory of every published application with its owner, authentication method and hostnames, access to DNS and certificate issuance, and a named approver for each cutover. Ask the implementation partner to confirm exactly which of these inputs they need before work starts.

Can our own team run this replacement without outside help?

Yes, a capable platform team can deploy Pomerium or authentik and move applications on its own, especially if it already runs Linux, containers and reverse proxies. The gaps usually appear in application-specific details, such as Kerberos delegation for internal sites, header trust for legacy apps and certificate lifecycle. An external implementation partner is most useful for a fixed-scope engagement that covers design, hardening, documentation and a supported cutover. Decide based on the skills you already have and how many applications must move.

Does DeployOpen issue an audit report or certification for the new proxy?

No. DeployOpen plans, implements, hardens and documents self-hosted platforms, and it prepares systems, controls and evidence for compliance assessments. Independent auditors and certification bodies issue audit reports, attestations and certifications. If your assessor needs evidence for access control, logging or change management around the proxy, DeployOpen can help assemble that material, but the assessor makes the determination.

What happens to Kerberos and header-based apps after the switch?

Kerberos and header-based apps need the most design work, because the proxy has to pass the right identity to the backend without weakening trust. Pomerium and authentik both support proxy-style authentication, but the exact method for Kerberos constrained delegation and for each header scheme must be tested against the application. Ask for a written test plan for these apps and confirm the specific configuration with each vendor's documentation before committing to a design.

What the proxy replacement costs by component

The cost of replacing Web Application Proxy is not one number. It is a set of components with different payers and different timing. On the AD FS side, the recurring cost sits in the Windows Server hosts that run the proxy role in the DMZ, their Windows Server licensing and CALs, the patching window, and the monitoring that goes with them. Those hosts do not disappear on day one, so the first thing to pin down is how long both paths will run in parallel and how many proxy nodes sit behind the load balancer today. Ask your Microsoft licensing partner or account team to confirm the license basis for each host, since it depends on your agreement and edition, not on this page.

On the replacement side, the open-source software itself carries no license fee for Pomerium Core (Apache-2.0) or authentik's open-source edition (MIT for most of the code). The costs that remain are the virtual machines or containers that run the proxy and identity components, the PostgreSQL database that authentik requires, the TLS certificates for each published hostname, and the load balancer rules that replace the ones AD FS imposed. Certificates and load balancing are mostly one-time design work followed by small renewal and change costs. Hosting is recurring. Confirm your certificate authority terms and whether your load balancer can run health checks and header forwarding for the new endpoints before you size anything.

Optional commercial editions change the picture. authentik Enterprise adds licensed per-user pricing and an external-user component on its pricing page, and Pomerium Enterprise is quoted on request. Those fees recur and scale with users or features, so they belong in the quote alongside support. The largest variable is usually implementation and operations labor: designing routes, mapping Kerberos and header-based apps, running cutover tests and maintaining upgrades. That labor is one-time for migration and recurring for operations. Ask any implementation partner for a fixed-scope quote that lists each component, who is paid for it, which items recur, and which assumptions about app count and user count it depends on.

Risks to test before cutover

Moving off Web Application Proxy changes how requests reach your applications, how identity headers arrive, and how sessions expire. The cards below cover the failure modes that most often surface after cutover, each with the check to run in a staging environment before any user is moved.

Kerberos delegation breaks

Web Application Proxy in pass-through mode forwards Kerberos traffic to internal apps, so integrated Windows authentication may work today without any change on the app side. A proxy such as Pomerium terminates the user session and typically cannot pass a Kerberos ticket through to a backend. Test every app that relies on Windows integrated authentication or constrained delegation, and confirm whether it needs a different path, such as a service account or a SAML or OIDC front end.

Identity header spoofing

When a proxy injects identity headers such as the authenticated user or group claims, the backend trusts whatever arrives in them. If the proxy is misconfigured, a client can send the same header directly and impersonate another user. Confirm that the app is reachable only through the proxy, that the proxy strips inbound copies of identity headers, and that a direct request with a forged header is rejected.

Forgotten WS-Federation apps

Some relying parties reach AD FS through WS-Federation, which neither Pomerium nor a plain proxy route handles the way AD FS did. Inventory every published application behind the proxy and tag its protocol before cutover. Apps that need WS-Federation need their own plan, for example authentik's WS-Federation provider on an Enterprise license, or a different identity provider altogether.

Certificate chain errors

Each published hostname needs a certificate that clients trust, and the full intermediate chain must be served with it. Chain gaps often pass in a browser that caches intermediates but fail in mobile clients, command-line tools and service accounts. Test each public hostname from outside your network with several clients, and confirm renewal automation covers every route, since the proxy now holds the certificates AD FS and Web Application Proxy once managed.

Session and timeout differences

Session lifetime, idle timeout and token refresh behavior differ between AD FS, Pomerium and authentik. Users may be prompted to sign in more or less often, and long-running uploads or API clients may be cut off mid-request. Compare the timeouts in your current configuration with the new ones, and test a full working day of realistic use on a pilot group, including a session that stays idle overnight.

Single points of failure

A single proxy instance or a single load balancer in front of it becomes the only path to every published app, and a failed health check can take all of them offline together. Confirm how many proxy instances run, how the load balancer detects a failed node, and how a failed control plane or identity provider affects existing sessions. Rehearse failover of one node during the pilot rather than assuming the redundancy works.

What changes for your users and help desk

The most visible change is that users stop arriving at an AD FS sign-in page on your own domain and start arriving at the sign-in experience of the new identity provider, reached through Pomerium or authentik's proxy provider. Users who open a published internal app will be redirected to the new login page, which may look different from the AD FS form they know. Plan a short notice before cutover that shows the new login screen, explains that the bookmark may change, and tells people who to contact if sign-in loops or fails. Confirm with your chosen product whether the login page can carry your logo and help text, and whether it supports the same username format your users type today, such as UPN or sAMAccountName.

MFA prompts and the password change flow need the most attention from the help desk. Today many organizations have AD FS prompt for MFA through a separate provider, and users may be surprised if the prompt wording, device enrollment steps or number of prompts changes. Before go-live, list every MFA method in use, test each one against a pilot group, and confirm how password expiry and change requests are handled once the identity provider is the one that checks credentials. Where passwords are validated against Active Directory through LDAP, expired-password messages may appear differently or not at all, so agree with the help desk on a fallback path for locked-out and expired accounts.

For the help desk, update the runbook before users are moved, not after. Replace references to AD FS admin pages, Web Application Proxy publishing steps and certificate renewal checks with the new product's equivalents, and add a first-line checklist covering clearing browser sessions, checking the bookmark URL, and confirming the user's account is synced. Record the expected sign-in redirect URLs for each published app so agents can tell a misconfigured route from a user error. Ask your implementation partner or the product's documentation which logs show a denied or failed sign-in, and make sure agents can read them. Run a tabletop exercise with the help desk on three or four realistic ticket types before the pilot begins.

How DeployOpen scopes and delivers a proxy replacement

DeployOpen plans, implements, integrates, hardens, documents and supports self-hosted open-source platforms inside your own infrastructure. For a replacement of AD FS Web Application Proxy, we start from an inventory of the published applications and their authentication patterns, then agree a written, fixed scope before any build work begins.

How we scope

  • Inventory every published application, its hostname, authentication method and whether it uses headers, Kerberos or a native login.
  • Record the certificates, DNS names and load balancer rules that AD FS publishing depends on today.
  • Agree in writing which applications move to Pomerium or authentik, and which stay on the current path until a later phase.

How we build

  • Deploy the chosen proxy in your own cloud accounts, data centers or isolated network, with no application traffic leaving your environment.
  • Configure identity provider connections, route policies and certificate handling, and test each published application against its original behavior.
  • Confirm Kerberos and header-based apps with pilot users before cutover, and record the results as test evidence.

How we hand over

  • Deliver architecture notes, route and policy inventories, runbooks and configuration documentation for your operations team.
  • Document rollback steps for each application so that the previous AD FS publishing path can be restored if needed.
  • Prepare control and evidence documentation for your compliance assessors, who issue any audit report or attestation.

How we support

  • Ongoing support, upgrades and continuous security testing of the proxy are available as retainers after handover.
  • Ask us for a written quote that lists scope, deliverables and timelines, since engagements are fixed-scope and agreed in advance.
  • Confirm with your team which upgrade cadence and vendor support terms apply to the proxy version you select.

Sources and further reading

Talk to our team.

Tell us what you're working on, whether it's a deployment, an audit, a security test or a cyber range. You'll speak with an engineer who can help you scope it.

  • 30-minute call: free, with no obligation.
  • NDA on request: we can sign before you share details.
  • Clear next steps: a scope and plan after the call.