INTEGRITY Dokumentace

Managed OAuth

Když aplikaci chráníte pomocí Cloudflare Access, klienti mimo prohlížeč, například CLI, AI agenti, SDK a skripty, ve výchozím nastavení nemohou dokončit přesměrování k přihlášení, které probíhá v prohlížeči. Místo toho obdrží 302 přesměrování bez použitelného tokenu nebo autorizačního endpointu.

Managed OAuth tento problém řeší tím, že mění Access na standardní autorizační server OAuth 2.0 pro vaši aplikaci. Access vynucuje stejné zásady jako přihlášení přes prohlížeč a váš origin nevidí žádný rozdíl.

Předpoklady

Povolte spravovaný OAuth pro interně hostovanou aplikaci

  1. V Cloudflare dashboard, přejděte na Zero Trust > Řízení přístupu > Aplikace.
  2. Najděte aplikaci, kterou chcete nakonfigurovat, a poté vyberte tři tečky vpravo > Úprava.
  3. Přejděte na Pokročilá nastavení kartu a zapněte Managed OAuth.
  4. (Volitelné) Nastavte Nastavení Managed OAuth.
  5. Vyberte Save.
  1. Získejte stávající konfiguraci aplikace Access:

    Požadovaná oprávnění API tokenu

    Alespoň jeden z následujících oprávnění tokenu je povinné:
    • Access: Apps and Policies Write
    • Access: Apps and Policies Read
    Získání aplikace Access
    curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/access/apps/$APP_ID" \
    	--request GET \
    	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN"
  2. Vytvořte PUT požadavek a nastavte oauth_configuration.enabled na true. Aby nedošlo k přepsání stávající konfigurace, tělo požadavku by mělo obsahovat všechna pole vrácená předchozím GET požadavek.

    Požadovaná oprávnění API tokenu

    Alespoň jeden z následujících oprávnění tokenu je povinné:
    • Access: Apps and Policies Write
    Aktualizace aplikace Access
    curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/access/apps/$APP_ID" \
    	--request PUT \
    	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
    	--json '{
    		"oauth_configuration": {
    				"enabled": true
    		}
    	}'

Chcete-li provést test, otevřete klienta OAuth vyhovujícího RFC 8707 a odešlete požadavek do své aplikace. Klient by měl otevřít okno prohlížeče s výzvou k přihlášení do Access. Podívejte se do Autorizační tok sekci, kde najdete více informací.

Povolte spravovaný OAuth pro aplikaci serveru MCP

Managed OAuth je k dispozici na aplikace serverů MCP a umožňuje klientům MCP ověřovat uživatele přes Access pomocí standardního postupu OAuth 2.0. Tento postup použijte pro servery MCP zpřístupněné přes Cloudflare ve stejném účtu jako vaše organizace Zero Trust. Server MCP musí ověřit JWT z Access odeslaný v Cf-Access-Jwt-Assertion hlavička.

Nepovolujte Managed OAuth pro kód serveru MCP třetí strany, který už má vlastní tok OAuth a neumí ověřovat Access JWT.

  1. V Cloudflare dashboard, přejděte na Zero Trust > Řízení přístupu > Aplikace.
  2. Najděte aplikaci MCP serveru, kterou chcete nakonfigurovat, a poté vyberte tři tečky vpravo > Úprava.
  3. Přejděte na Pokročilá nastavení kartu a zapněte Managed OAuth.
  4. (Volitelné) Nastavte Nastavení Managed OAuth.
  5. Vyberte Save.
  1. Získejte stávající konfiguraci aplikace Access:

    Požadovaná oprávnění API tokenu

    Alespoň jeden z následujících oprávnění tokenu je povinné:
    • Access: Apps and Policies Write
    • Access: Apps and Policies Read
    Získání aplikace Access
    curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/access/apps/$APP_ID" \
    	--request GET \
    	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN"
  2. Vytvořte PUT požadavek a nastavte oauth_configuration.enabled na true. Aby nedošlo k přepsání stávající konfigurace, tělo požadavku by mělo obsahovat všechna pole vrácená předchozím GET požadavek.

    Požadovaná oprávnění API tokenu

    Alespoň jeden z následujících oprávnění tokenu je povinné:
    • Access: Apps and Policies Write
    Aktualizace aplikace Access
    curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/access/apps/$APP_ID" \
    	--request PUT \
    	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
    	--json '{
    		"oauth_configuration": {
    				"enabled": true
    		}
    	}'

Chcete-li provést test, otevřete klienta MCP a připojte se k chráněnému serveru MCP. Klient by měl otevřít okno prohlížeče s výzvou k přihlášení do Access. Podívejte se do Autorizační tok sekci, kde najdete více informací.

Povolte spravovaný OAuth pro portál serveru MCP

Managed OAuth je k dispozici na portály serveru MCP a jde o mechanismus, který umožňuje MCP klientům ověřovat uživatele prostřednictvím portálu bez použití cookie v prohlížeči.

  1. V Cloudflare dashboard, přejděte na Zero Trust > Řízení přístupu > Ovládací prvky AI.
  2. Najděte portál, který chcete nakonfigurovat, a poté vyberte tři tečky vpravo > Úprava.
  3. Přejděte na Pokročilá nastavení kartě zapněte Managed OAuth.
  4. (Volitelné) Nastavte Nastavení Managed OAuth.
  5. Vyberte Save.
  1. Získejte stávající konfiguraci aplikace Access, na které je portál založen:

    Požadovaná oprávnění API tokenu

    Alespoň jeden z následujících oprávnění tokenu je povinné:
    • Access: Apps and Policies Write
    • Access: Apps and Policies Read
    Získání aplikace Access
    curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/access/apps/$APP_ID" \
    	--request GET \
    	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN"
  2. Vytvořte PUT požadavek a nastavte oauth_configuration.enabled na true. Aby nedošlo k přepsání stávající konfigurace, tělo požadavku by mělo obsahovat všechna pole vrácená předchozím GET požadavek.

    Požadovaná oprávnění API tokenu

    Alespoň jeden z následujících oprávnění tokenu je povinné:
    • Access: Apps and Policies Write
    Aktualizace aplikace Access
    curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/access/apps/$APP_ID" \
    	--request PUT \
    	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
    	--json '{
    		"oauth_configuration": {
    				"enabled": true
    		}
    	}'

Chcete-li provést test, otevřete klienta MCP a připojit se k portálu MCP. Klient by měl otevřít okno prohlížeče s výzvou k přihlášení do Access. Podrobnosti najdete v Autorizační tok sekci, kde najdete více informací.

Nastavení Managed OAuth

Nakonfigurujte tato nastavení v Pokročilá nastavení kartu své self-hosted aplikace, aplikace serveru MCP, nebo portál serveru MCP.

  • Povolit klienty localhost: Povolit jakémukoli klientovi s přesměrovacími URI na localhost.
  • Povolit loopback klienty: Povolit jakémukoli klientovi s přesměrovacími URI na 127.0.0.1.
  • Povolené přesměrovací URI: Přesměrovací URI povolené pro dynamicky registrované klienty (například https://playground.ai.cloudflare.com/*). Adresa URL musí používat https. Cesty mohou končit na /* tak, aby odpovídalo všem podcestám.
  • Doba trvání relace grantu: Jak dlouho zůstává platný refresh token OAuth.
  • Doba platnosti tokenu Access: Jak dlouho lze token OIDC Access použít k ověření u vaší aplikace. Cloudflare doporučuje nakonfigurovat krátkou Doba platnosti tokenu Access (výchozí hodnota 15 minut) v kombinaci s delší Doba trvání relace grantu. Když platnost přístupového tokenu vyprší, Cloudflare pomocí obnovovacího tokenu vydá nový poté, co znovu vyhodnotí uživatele podle vašich zásad Access. Když platnost obnovovacího tokenu vyprší, uživatel se musí znovu ověřit u poskytovatele identity.

Nakonfigurujte tato nastavení prostřednictvím oauth_configuration objekt na Aplikace Access koncový bod.

Nastavení Dashboardu Pole API
Povolit klienty localhost dynamic_client_registration.allow_any_on_localhost
Povolit loopback klienty dynamic_client_registration.allow_any_on_loopback
Povolené přesměrovací URI dynamic_client_registration.allowed_uris
Doba trvání relace grantu grant.session_duration
Doba platnosti tokenu Access grant.access_token_lifetime
  1. Získejte stávající konfiguraci aplikace Access:

    Požadovaná oprávnění API tokenu

    Alespoň jeden z následujících oprávnění tokenu je povinné:
    • Access: Apps and Policies Write
    • Access: Apps and Policies Read
    Získání aplikace Access
    curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/access/apps/$APP_ID" \
    	--request GET \
    	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN"
  2. Vytvořte PUT požadavek s vaším nastavením Managed OAuth. Aby nedošlo k přepsání stávající konfigurace, tělo požadavku by mělo obsahovat všechna pole vrácená předchozím GET požadavek.

    Požadovaná oprávnění API tokenu

    Alespoň jeden z následujících oprávnění tokenu je povinné:
    • Access: Apps and Policies Write
    Aktualizace aplikace Access
    curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/access/apps/$APP_ID" \
    	--request PUT \
    	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
    	--json '{
    		"oauth_configuration": {
    				"enabled": true,
    				"dynamic_client_registration": {
    						"enabled": true,
    						"allow_any_on_localhost": true,
    						"allow_any_on_loopback": true,
    						"allowed_uris": [
    								"https://playground.ai.cloudflare.com/*"
    						]
    				},
    				"grant": {
    						"access_token_lifetime": "5m",
    						"session_duration": "24h"
    				}
    		}
    	}'

Autorizační tok

Pokud je zapnutý spravovaný OAuth, Access vrátí 401 odpověď místo 302 přesměrování neprohlížečovým klientům. 401 obsahuje WWW-Authenticate hlavičku, která nasměruje klienta na OAuth discovery metadata Access.

Autorizační tok probíhá následovně:

  1. Klient načte metadata autorizačního serveru OAuth z /.well-known/ koncový bod:

    https://<your-app-domain>/.well-known/oauth-authorization-server

    Tento endpoint odpovídá RFC 8414 a RFC 9728 a vrátí adresy URL autorizačního a tokenového endpointu aplikace.

  2. Klient zahájí tok authorization code. Otevře uživateli prohlížeč na autorizačním endpointu Access, kde se uživatel jako obvykle přihlásí ke svému IdP.

  3. Access vystaví klientovi přístupový token OAuth. Klient tento token používá v následných požadavcích na chráněnou aplikaci.

Token format

Managed OAuth vydává neprůhledný přístupových tokenů (například oauth:CvNoo...), nikoli JSON Web Tokens (JWT). Je to záměr: tok OAuth dává klientům možnost provádět požadavky jménem uživatele, aniž by klientovi vystavoval identifikační údaje.

Když klient předloží vaší aplikaci neprůhledný token, Cloudflare jej na backendu přeloží na identitu uživatele a na váš origin server přepošle podepsané tvrzení. Z pohledu vašeho origin serveru vypadá požadavek stejně jako požadavek ověřený v prohlížeči.

Protože je token neprůhledný (opaque), klient jej nemůže dekódovat ani přeposílat přímo jako JWT jiným aplikacím. Chcete-li provádět ověřené požadavky vůči navazujícím aplikacím Access, použijte Linked App Token vzor: váš origin čte Cf-Access-Jwt-Assertion hlavičku a přeposílá ji navazujícím aplikacím jako Cf-Access-Token.

Aplikace s více doménami

Pokud je vaše aplikace Access nakonfigurována s více domén, token OAuth získaný prostřednictvím kterékoli domény je platný pro všechny domény ve stejné aplikaci. Uživatel se ověří jednou a stejný token pak může použít pro přístup ke všem doménám bez dalších výzev.

Hodí se to, když máte více interních služeb sdílejících společnou hranici důvěry. Místo konfigurace samostatných aplikací Access s Linked App Token zásady můžete přidat všechny domény do jedné aplikace a ověřit se jednou pomocí Managed OAuth.

Managed OAuth oproti service tokenům

Jak spravovaný OAuth, tak service tokeny umožňují klientům mimo prohlížeč ověřovat se u aplikací chráněných službou Access, ale slouží k odlišným účelům:

Managed OAuth Service tokens
Model ověřování Na základě uživatele: koncový uživatel se přihlašuje přes svého poskytovatele identity Na základě zařízení: sdílený tajný klíč ověřuje samotnou službu
Vhodné pro Interaktivní nástroje CLI, agenti AI a SDK, kde požadavek zahajuje člověk Plně automatizované systémy, cron úlohy, CI/CD pipeline, komunikace mezi servery
Identita uživatele Access ví, který uživatel odeslal požadavek Žádná identita uživatele: požadavky jsou přiřazeny service tokenu
Vynucování zásad Umí používat zásady založené na identitě (například vyžadovat konkrétní skupiny nebo e-maily) Vyžaduje Service Auth akce zásady
Správa přihlašovacích údajů Žádné sdílené tajné klíče k distribuci: uživatelé se ověřují pomocí vlastních přihlašovacích údajů Vyžaduje distribuci a rotaci Client ID a Client Secret

Spravovaný OAuth použijte, pokud chcete, aby neprohlížečoví klienti ověřovali uživatele stejným způsobem jako prohlížeč: uživatel se přihlásí jednou a klient obdrží token OAuth, kterým může jeho jménem zadávat požadavky.

Service tokens použijte, pokud není zapojen žádný člověk a potřebujete identitu stroje pro programový přístup k vaší aplikaci.