INTEGRITY Dokumentace

Zabezpečení serverů MCP

Můžete zabezpečit Servery Model Context Protocol (MCP) s Cloudflare Access. Vyberte přístup podle toho, kdo spravuje kód serveru MCP a hostname:

Přístup Vhodné pro Auth zajišťuje
MCP server třetí strany spravovaný zákazníkem Kód serveru MCP třetí strany běžící na hostname, který spravujete v Cloudflare MCP server třetí strany
MCP server třetí strany spravovaný SaaS Servery MCP třetích stran hostované poskytovatelem, které podporují nastavení identity OAuth nebo OIDC dodané zákazníkem Server MCP třetí strany s Access jako poskytovatelem OIDC

MCP server třetí strany spravovaný zákazníkem

Toto nastavení použijte, pokud server MCP běží na hostname, který spravujete v Cloudflare, ale kód serveru je spravován třetí stranou a již zpracovává vlastní tok OAuth. V tomto nastavení nezapínejte Access Managed OAuth. Zároveň není třeba přidávat hostname serveru MCP jako veřejný hostname do vygenerované aplikace Access.

  1. Ujistěte se, že hostname serveru MCP má Stav proxy zapnuté ve službě Cloudflare DNS.
  2. V Cloudflare dashboard, přejděte na Zero Trust > Řízení přístupu > Ovládací prvky AI.
  3. Přejděte na MCP servery kartě.
  4. Vyberte Přidejte server MCP.
  5. Zadejte název serveru.
  6. V HTTP URL, zadejte URL adresu serveru MCP včetně cesty MCP. Například https://mcp.example.com/mcp.
  7. Nakonfigurujte Zásady Access definovat uživatele, kteří mohou používat server MCP.
  8. Nakonfigurujte, jak se budou uživatelé ověřovat:

    1. Vyberte poskytovatelé identity chcete povolit pro svou aplikaci.

    2. (Doporučeno) Pokud plánujete povolit přístup pouze přes jednoho poskytovatele IdP, zapněte Použít okamžité ověřování. Koncovým uživatelům se nezobrazí Přihlašovací stránka Cloudflare Access. Cloudflare místo toho přesměruje uživatele přímo na vaše přihlášení přes SSO.

    3. (Volitelné) Zapněte Ověření pomocí Cloudflare One Client a umožněte uživatelům ověřit se v aplikaci pomocí jejich Identita relace Cloudflare One Client.
  9. Vyberte Uložit a připojit server.
  10. Pokud vás MCP server vyzve k ověření, dokončete proces OAuth třetí strany.

MCP server třetí strany spravovaný SaaS

Toto nastavení použijte, pokud je server MCP hostován třetí stranou a umožňuje vám nakonfigurovat vlastního poskytovatele identity OAuth nebo OIDC. V tomto nastavení server MCP implementuje tok autorizačního kódu OAuth vůči Cloudflare Access a přijímá access_token který může použít k volání navazujících služeb.

Tento návod používá vzdálený server MCP na Cloudflare Workers k zobrazení nastavení Access for SaaS. U serveru spravovaného přes SaaS postupujte podle pokynů poskytovatele k nastavení a použijte hodnoty Access for SaaS vytvořené v Krok 2. Když se uživatelé připojí k serveru MCP pomocí klienta MCP, budou vyzváni k přihlášení do vašeho poskytovatel identity a přístup jim je udělen pouze tehdy, pokud projdou vaším Zásady Access.

Předpoklady

1. Nasaďte ukázkový server MCP

Chcete-li nasadit náš příklad serveru MCP do vašeho účtu Cloudflare:

  1. Vyberte následující tlačítko a spusťte tak rychlý úvodní postup:

    Nasaďte na Workers

  2. Vyberte účet, který obsahuje vaši organizaci Zero Trust.

  3. Na Vytvořit aplikaci stránce nakonfigurujte následující pole:

    • Účet Git: Vyberte existující účet nebo připojte nový účet GitHub či GitLab.
    • Vytvořit soukromé úložiště Git: Vyberte, zda má být repozitář projektu veřejný, nebo soukromý.
    • Název projektu: mcp-server-cf-access
    • Vyberte KV namespace: Vytvořit nové
    • Pojmenujte svůj KV namespace: OAUTH_KV

    Nakonfigurujeme ACCESS_CLIENT_ID a další tajné hodnoty v dalším kroku.

  4. Vyberte Vytvořit a nasadit.

Server MCP bude nasazen do vašeho *.workers.dev subdoménu na mcp-server-cf-access.<YOUR_SUBDOMAIN>.workers.dev. Ve vašem účtu GitHub nebo GitLab se pro váš server MCP vytvoří nový git repozitář, který se nakonfiguruje tak, aby se automaticky nasazoval do Cloudflare při každém push změny nebo sloučení pull requestu do hlavní větve repozitáře.

Můžete použít Wrangler CLI vytvořit MCP server na svém místním počítači a nasadit ho do Cloudflare.

  1. Otevřete terminál a naklonujte náš ukázkový projekt:

    npm create cloudflare@latest -- mcp-server-cf-access --template=cloudflare/ai/demos/remote-mcp-cf-access

    Během nastavení vyberte následující možnosti: - Pro Chcete přidat soubor AGENTS.md, který pomůže nástrojům pro AI programování pochopit rozhraní Cloudflare API?, vyberte No. - Pro Chcete používat git pro správu verzí?, vyberte No. - Pro Chcete nasadit svou aplikaci?, vyberte No (před nasazením provedeme ještě několik změn).

  2. Přejděte do adresáře projektu:

    cd mcp-server-cf-access
  3. Vytvořte Workers KV namespace k uložení klíče. Název vazby by měl být OAUTH_KV, pokud chcete spustit příklad tak, jak je napsaný.

    npx wrangler kv namespace create "OAUTH_KV"

    Příkaz vypíše název vazby a ID KV namespace:

    {
    	"kv_namespaces": [
    		{
    			"binding": "OAUTH_KV",
    			"id": "<YOUR_KV_NAMESPACE_ID>"
    		}
    	]
    }
  4. Otevřete wrangler.jsonc v editoru a vložte svůj OAUTH_KV ID namespace:

    "kv_namespaces": [
    	{
    		"binding": "OAUTH_KV",
    		"id": "<YOUR_KV_NAMESPACE_ID>"
    	}
    ],
  5. Nyní můžete Worker nasadit do globální sítě Cloudflare:

    npx wrangler deploy

Worker bude nasazen do vašeho *.workers.dev subdoménu na mcp-server-cf-access.<YOUR_SUBDOMAIN>.workers.dev.

2. Vytvořte aplikaci Access for SaaS

  1. V Cloudflare dashboard, přejděte na Zero Trust > Řízení přístupu > Aplikace.

  2. Vyberte Vytvořit novou aplikaci.

  3. Vyberte Aplikace SaaS.

  4. V Aplikace, zadejte vlastní název (například MCP server) a vyberte textové pole, které se zobrazí níže.

  5. Vyberte OIDC jako autentizační protokol.

  6. Vyberte Přidat aplikaci.

  7. V Přesměrovací adresy URL, zadejte autorizační callback URL svého serveru MCP. Callback URL pro náš příklad serveru MCP je https://mcp-server-cf-access.<YOUR_SUBDOMAIN>.workers.dev/callback.

  8. Zkopírujte následující hodnoty pro zadání do našeho ukázkového serveru MCP. Jiné servery MCP mohou vyžadovat odlišné sady vstupních hodnot.

    • Client secret
    • Client ID
    • Token endpoint
    • Autorizační endpoint
    • Klíčový endpoint
  9. (Volitelné) V části Pokročilá nastavení, zapněte Obnovovací tokeny, pokud chcete snížit počet přihlášení, které musí uživatel provést u poskytovatele identity.

  10. Nakonfigurujte Zásady Access definovat uživatele, kteří mají přístup k serveru MCP.

  11. Nakonfigurujte, jak se budou uživatelé ověřovat:

    1. Vyberte poskytovatelé identity chcete povolit pro svou aplikaci.

    2. (Doporučeno) Pokud plánujete povolit přístup pouze přes jednoho poskytovatele IdP, zapněte Použít okamžité ověřování. Koncovým uživatelům se nezobrazí Přihlašovací stránka Cloudflare Access. Cloudflare místo toho přesměruje uživatele přímo na vaše přihlášení přes SSO.

    3. (Volitelné) Zapněte Ověření pomocí Cloudflare One Client a umožněte uživatelům ověřit se v aplikaci pomocí jejich Identita relace Cloudflare One Client.
  12. Vyberte Vytvořit.

  1. Vytvořte POST požadavek na Aplikace Access koncový bod:

    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
    Přidejte aplikaci Access
    curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/access/apps" \
    	--request POST \
    	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
    	--json '{
    		"name": "MCP server",
    		"type": "saas",
    		"saas_app": {
    				"auth_type": "oidc",
    				"redirect_uris": [
    						"https://mcp-server-cf-access.<YOUR_SUBDOMAIN>.workers.dev/callback"
    				],
    				"grant_type": [
    						"authorization_code",
    						"refresh_tokens"
    				],
    				"refresh_token_options": {
    						"lifetime": "90d"
    				}
    		},
    		"policies": [
    				"f174e90a-fafe-4643-bbbc-4a0ed4fc8415"
    		],
    		"allowed_idps": []
    	}'
  2. Zkopírujte client_id a client_secret vrácená v odpovědi.

  3. Sestavit URL adresy endpointu OAuth pomocí svých název týmu a client_id vrácená v odpovědi:

    Endpoint URL
    Token endpoint https://<TEAM_NAME>.cloudflareaccess.com/cdn-cgi/access/sso/oidc/<CLIENT_ID>/token
    Autorizační endpoint https://<TEAM_NAME>.cloudflareaccess.com/cdn-cgi/access/sso/oidc/<CLIENT_ID>/authorization
    Klíčový endpoint https://<TEAM_NAME>.cloudflareaccess.com/cdn-cgi/access/sso/oidc/<CLIENT_ID>/jwks

3. Nakonfigurujte server MCP

Váš server MCP musí provést autorizační tok OAuth 2.0, aby získal access_token z aplikace SaaS vytvořené v Krok 2. Při nastavování klienta OAuth na svém serveru MCP budete muset vložit endpointy OAuth a přihlašovací údaje z aplikace Access for SaaS.

Chcete-li přidat OAuth endpointy a přihlašovací údaje do našeho příklad serveru MCP:

  1. V Cloudflare dashboard, přejděte do Workers & Pages stránce.

    Přejděte na Workers & Pages ↗
  2. Vyberte mcp-server-cf-access Worker.

  3. Přejděte na Nastavení.

  4. V části Proměnné a tajné klíče, u každého tajného klíče aktualizujte hodnotu na odpovídající hodnotu získanou z Aplikace Access for SaaS.

    Workers secret Pole aplikace SaaS
    ACCESS_CLIENT_ID Client ID
    ACCESS_CLIENT_SECRET Client secret
    ACCESS_TOKEN_URL Token endpoint
    ACCESS_AUTHORIZATION_URL Autorizační endpoint
    ACCESS_JWKS_URL Klíčový endpoint
  5. Pro COOKIE_ENCRYPTION_KEY, pomocí následujícího příkazu můžete vygenerovat náhodný řetězec:

    openssl rand -hex 32

    Zadejte výstup tohoto příkazu do COOKIE_ENCRYPTION_KEY.

  1. Vytvořte následující Workers secrets:

    npx wrangler secret put ACCESS_CLIENT_ID
    npx wrangler secret put ACCESS_CLIENT_SECRET
    npx wrangler secret put ACCESS_TOKEN_URL
    npx wrangler secret put ACCESS_AUTHORIZATION_URL
    npx wrangler secret put ACCESS_JWKS_URL
  2. Až budete vyzváni k zadání tajné hodnoty, vložte odpovídající hodnoty získané z Aplikace Access for SaaS.

    Workers secret Pole aplikace SaaS
    ACCESS_CLIENT_ID Client ID
    ACCESS_CLIENT_SECRET Client secret
    ACCESS_TOKEN_URL Token endpoint
    ACCESS_AUTHORIZATION_URL Autorizační endpoint
    ACCESS_JWKS_URL Klíčový endpoint
  3. Vygenerujte náhodný řetězec pro šifrovací klíč cookie:

    openssl rand -hex 32

    Výstup tohoto příkazu uložte jako Workers secret:

    npx wrangler secret put COOKIE_ENCRYPTION_KEY

4. Otestujte připojení

Nyní se můžete připojit ke svému serveru MCP na https://mcp-server-cf-access.<YOUR_SUBDOMAIN>.workers.dev/mcp pomocí Workers AI Playground, MCP inspector, nebo další klienti MCP které podporují vzdálené servery MCP.

Chcete-li otestovat ve Workers AI Playground:

  1. Přejděte na Workers AI Playground.

  2. V části MCP Servers, zadejte https://mcp-server-cf-access.<YOUR_SUBDOMAIN>.workers.dev/mcp pro adresu URL serveru MCP.

  3. Vyberte Připojit.

  4. Zobrazí se vyskakovací okno s žádostí o přístup k serveru MCP. Vyberte Schválit.

  5. Podle zobrazených pokynů se přihlaste u svého poskytovatele identity.

Workers AI Playground zobrazí Připojeno stavu. Server MCP by měl úspěšně získat access_token ze služby Cloudflare Access.

Další kroky

Chcete-li serveru MCP umožnit odesílat jménem uživatele autentizované požadavky na jiné self-hosted aplikace, vytvořte Linked App Token zásadu na navazující aplikaci. Server MCP předává Cf-Access-Jwt-Assertion hlavičku, kterou obdrží od Access, jako Cf-Access-Token hlavičku navazující aplikaci.