Short answer: No, Ory Oathkeeper is not strictly required, but it’s the supported, built-in way to use Kratos sessions for access decisions. Details: - Ory Oathkeeper can act as the reverse proxy (PEP) in front of your services or as a decision engine behind other API gateways (Envoy, Nginx, Traefik, AWS API Gateway, etc.) via its Access Control Decision API. This lets those gateways delegate authn/authz decisions to Oathkeeper while they remain the data plane. [[Oathkeeper intro](
https://www.ory.sh/docs/oathkeeper); [Operating modes](
https://www.ory.sh/docs/oathkeeper#operating-modes)] - With Kratos, Oathkeeper provides first-class authenticators such as cookie_session and bearer_token that validate Kratos sessions (e.g., against /sessions/whoami) and then authorize/mutate requests accordingly. [[Zero Trust guide config](
https://www.ory.sh/docs/kratos/guides/zero-trust-iap-proxy-identity-access-proxy#configuration); [WebSockets guide config](
https://www.ory.sh/docs/oathkeeper/guides/proxy-websockets#configure-ory-oathkeeper-and-ory-kratos); [bearer_token](
https://www.ory.sh/docs/oathkeeper/pipeline/authn#bearer_token)] - If you prefer another proxy, you can integrate it by calling Oathkeeper’s Decision API from that proxy (e.g., Traefik ForwardAuth) so that Oathkeeper still evaluates Kratos sessions and returns allow/deny plus headers. [[Traefik integration](
https://www.ory.sh/docs/oathkeeper/guides/traefik-proxy-integration); [Access Control Decision API](
https://www.ory.sh/docs/oathkeeper#operating-modes)] - Kratos itself does not include API access control; you are advised to protect it with Oathkeeper or a comparable API gateway. However, using Kratos sessions for decisions without Oathkeeper would require you to implement the equivalent session checks and authorization logic in your chosen gateway or custom middleware. The docs do not provide a ready-made alternative to Oathkeeper for Kratos-session-based decisions. [[API access control](
https://www.ory.sh/docs/self-hosted/operations/api-access-control); [Kratos install note](
https://www.ory.sh/docs/kratos/install)] So, Oathkeeper isn’t a hard requirement for using an IAP, but it is the documented path to leverage Kratos sessions seamlessly—either as the proxy itself or as the decision service behind Envoy/Nginx/Traefik.