Cf-Access-Jwt-Assertion header (an RS256 JWT) to Bifrost. Bifrost validates it against your Cloudflare team domain’s JWKS and binds it to your application’s audience (AUD) tag.
How it works
- A user requests a Bifrost URL protected by a Cloudflare Access application.
- Cloudflare authenticates the user against your configured identity provider and enforces your Access policies.
- Cloudflare forwards the request to Bifrost with the
Cf-Access-Jwt-Assertionheader — a short-lived RS256 JWT signed by your team domain. - Bifrost validates the token’s signature against
https://<team>.cloudflareaccess.com/cdn-cgi/access/certs, checks the audience (AUD) tag, and resolves the user from the token’s identity claim (emailby default).
Modes
The auth proxy runs in one of two modes:Prerequisites
- A Cloudflare Zero Trust account with Access enabled
- Your Bifrost deployment reachable through Cloudflare (proxied DNS / tunnel)
- An identity provider already configured in Bifrost under User Provisioning
- Bifrost roles created for any roles you plan to map (full mode)
- For login-only mode: users already provisioned in Bifrost (via SCIM or a prior interactive login)
Step 1: Create a Cloudflare Access application
Add a self-hosted application
bifrost.yourcompany.com) so Access protects the entire dashboard and API surface.
From Access controls → Applications, click Create new application and choose Self-hosted.
Attach your identity provider and access policies
Copy the team domain and Application Audience (AUD) tag

Copy the Application Audience (AUD) tag from the application's Additional settings → AUD tag tab.
Step 2: Pass through IdP claims (full mode only)
Skip this step if you’re using login-only mode. For full mode, the IdP attributes you map on (groups, roles, department, etc.) must be present in the Cloudflare Access token. In your Cloudflare Access identity provider settings, enable the relevant OIDC / SAML claims and confirm the group or role claim is included in the token Cloudflare issues.Cf-Access-Jwt-Assertion token becomes available for attribute mapping in Bifrost.Step 3: Enable the Identity-Aware Proxy in Bifrost
Open your provider's configuration
Enable the proxy and select Cloudflare Access

Enable the Identity-Aware Proxy section, choose Cloudflare Access, and fill in the team domain and AUD tag.
Choose a mode
Fill in the Cloudflare fields
Save
Configuration reference
The Identity-Aware Proxy is stored as anauthProxy block on the SSO provider’s configuration. Fields marked string (secret) below accept a plain-text value, an env.VAR_NAME reference, or a vault.path/to/secret reference; enabled, provider, mode, and allowedAudiences are plain values.
The authProxy block lives inside your SSO provider’s config under the top-level scim_config, alongside that provider’s own fields:
audience or a non-empty allowedAudiences is required — an unbound token would be accepted across applications. All URLs must use https.Troubleshooting
Every request returns 401 Unauthorized
Cause: The token signature or audience check failed. Fix: Confirm the Team domain (issuer) exactly matches your Cloudflare team URL and that the Application AUD tag matches the value on the Access application’s Overview tab. Both must be for the same application.Users get 403 “not provisioned” in login-only mode
Cause: Login-only mode never creates users; the identity isn’t in Bifrost yet. Fix: Provision the user first via SCIM or a one-time interactive login, or switch the provider to Full mode so users are provisioned from the token.Role/team mapping doesn’t apply in full mode
Cause: The mapping claims (e.g.groups) aren’t present in the Cloudflare Access token.
Fix: Enable claim pass-through in your Cloudflare Access identity provider settings (see Step 2).
Next steps
- Generic OIDC proxy - front Bifrost with any OIDC-based identity-aware proxy
- RBAC - define the roles the proxy authenticates against
- User provisioning - SCIM and OIDC provider setup

