Back to Authelia

Cloudflare Zero Trust

docs/content/integration/openid-connect/clients/cloudflare-zerotrust/index.md

4.39.193.9 KB
Original Source

Tested Versions

{{% oidc-common bugs="client-credentials-encoding,claims-hydration" %}}

Assumptions

This example makes the following assumptions:

  • Cloudflare Team Name: example-team
  • Authelia Root URL: https://{{< sitevar name="subdomain-authelia" nojs="auth" >}}.{{< sitevar name="domain" nojs="example.com" >}}/
  • Client ID: cloudflare
  • Client Secret: insecure_secret

Some of the values presented in this guide can automatically be replaced with documentation variables.

{{< sitevar-preferences >}}

Configuration

Authelia

The following YAML configuration is an example Authelia client configuration for use with Cloudflare which will operate with the application example:

yaml
identity_providers:
  oidc:
    ## The other portions of the mandatory OpenID Connect 1.0 configuration go here.
    ## See: https://www.authelia.com/c/oidc
    clients:
      - client_id: 'cloudflare'
        client_name: 'Cloudflare ZeroTrust'
        client_secret: '$pbkdf2-sha512$310000$c8p78n7pUMln0jzvd4aK4Q$JNRBzwAo0ek5qKn50cFzzvE9RXV88h1wJn5KGiHrD0YKtZaR/nCb2CJPOsKaPK0hjf.9yHxzQGZziziccp6Yng'  # The digest of 'insecure_secret'.
        public: false
        authorization_policy: 'two_factor'
        require_pkce: true
        pkce_challenge_method: 'S256'
        redirect_uris:
          - 'https://example-team.cloudflareaccess.com/cdn-cgi/access/callback'
        scopes:
          - 'openid'
          - 'profile'
          - 'email'
        response_types:
          - 'code'
        grant_types:
          - 'authorization_code'
        access_token_signed_response_alg: 'none'
        userinfo_signed_response_alg: 'none'
        token_endpoint_auth_method: 'client_secret_basic'

Configuration Escape Hatch

{{% oidc-escape-hatch-claims-hydration client_id="cloudflare" %}}

Application

{{< callout context="caution" title="Important Note" icon="outline/alert-triangle" >}} It is a requirement that the Authelia URL's can be requested by Cloudflare's servers. This usually means that the URLs are accessible to foreign clients on the internet. There may be a way to configure this without accessibility to foreign clients on the internet on Cloudflare's end, but this is beyond the scope of this document. {{< /callout >}}

To configure Cloudflare Zero Trust there is one method, using the Web GUI.

Web GUI

To configure Cloudflare Zero Trust to utilize Authelia as an OpenID Connect 1.0 Provider, use the following instructions:

  1. Visit the Cloudflare Zero Trust Dashboard
  2. Visit Integrations
  3. Visit Identity providers
  4. Select Add an identity provider
  5. Select OpenID Connect
  6. Configure the following options:
    • Name: Authelia
    • App ID: cloudflare
    • Client Secret: insecure_secret
    • Auth URL: https://{{< sitevar name="subdomain-authelia" nojs="auth" >}}.{{< sitevar name="domain" nojs="example.com" >}}/api/oidc/authorization
    • Token URL: https://{{< sitevar name="subdomain-authelia" nojs="auth" >}}.{{< sitevar name="domain" nojs="example.com" >}}/api/oidc/token
    • Certificate URL: https://{{< sitevar name="subdomain-authelia" nojs="auth" >}}.{{< sitevar name="domain" nojs="example.com" >}}/jwks.json
    • Enable Proof Key for Code Exchange (PKCE)
    • Add the following OIDC Claims: preferred_username, mail
  7. Click Save

See Also