INTEGRITY Dokumentace

Vytvoření klienta OAuth

Předpoklady

Chcete-li vytvořit klienta OAuth, musíte mít pro příslušný účet jednu z těchto rolí: Super Administrator, Administrator nebo OAuth Client Write.

  1. Přihlaste se do dashboardu Cloudflare.
  2. Vyberte svůj účet.
  3. Přejděte na Manage Account > OAuth klienti.
  4. Vyberte Vytvořit klienta.
  5. Zadejte požadované konfigurační údaje:
    • Client name
    • Typ odpovědi
    • Grant type
    • Metoda ověření tokenem
    • Přesměrovací adresy URL
  6. Volitelné: Přidejte nepovinná pole.
  7. Vyberte Pokračovat a definujte scopes, které váš klient potřebuje.
  8. Volitelně: V Vyberte volitelné rozsahy, vypněte Povinné pro každý rozsah, který chcete nastavit jako volitelný. Všechny rozsahy jsou ve výchozím nastavení povinné.
  9. Vyberte Vytvořit klienta.
  10. Uložte si Client ID a Client Secret na bezpečném místě.
Přejděte na OAuth klienti ↗

Chcete-li vytvářet klienty OAuth pomocí Cloudflare API, vytvořte API token s OAuth Clients Write oprávnění.

curl -X POST "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/oauth_clients" \
	-H "Content-Type: application/json" \
	-H "Authorization: Bearer $API_TOKEN" \
	-d '{
		"client_name": "Cloudflare OAuth Client",
		"grant_types": ["authorization_code"],
		"redirect_uris": ["https://example.com/oauth/callback"],
		"scopes": ["workers-platform.read", "workers-platform.write"],
		"optional_scopes": ["workers-platform.read"],
		"post_logout_redirect_uris": ["https://example.com/logout"],
		"response_types": ["code"],
		"token_endpoint_auth_method": "client_secret_basic",
		"logo_uri": "https://example.com/logo.png",
		"policy_uri": "https://example.com/policy",
		"tos_uri": "https://example.com/tos",
		"client_uri": "https://example.com",
		"allowed_cors_origins": ["https://example.com"]
	}'

Vyberte rozsahy

Názvy OAuth scope odpovídají názvům oprávnění API tokenu Cloudflare. Oprávnění, která váš klient potřebuje, zjistíte v dokumentaci Cloudflare API.

Při vytváření nebo úpravě klienta OAuth vyberte alespoň jeden rozsah. Všechny vybrané rozsahy jsou ve výchozím nastavení povinné.

V Vyberte volitelné rozsahy, vypněte Povinné pro každý scope, který chcete nastavit jako volitelný.

Povinné rozsahy oprávnění musí být na obrazovce souhlasu uděleny, zatímco volitelné rozsahy může uživatel odmítnout.

Načtěte dostupné rozsahy (scopes) z API. Při vytváření klienta prostřednictvím API použijte ID rozsahu.

curl "https://api.cloudflare.com/client/v4/oauth/scopes" \
	-H "Content-Type: application/json" \
	-H "Authorization: Bearer $API_TOKEN"

Chcete-li označit rozsahy jako volitelné, zahrňte je do optional_scopes požadavku. Musí se jednat o podmnožinu scopes pro klienta. Volitelné rozsahy může uživatel během autorizace odmítnout.

Podporované OAuth flows

OAuth klienti Cloudflare podporují OAuth 2.0 Authorization Code flow.

Cloudflare u klientů třetích stran nepodporuje typy OAuth grantů Client Credentials, Implicit, Resource Owner Password Credentials, Device Authorization ani žádné další.

Vyberte postup

Podle následujících pokynů vyberte tok OAuth:

Client type Tok Ověřování u koncového bodu tokenu PKCE
Serverová webová aplikace nebo backendová služba Autorizační kód s client secret client_secret_basic nebo client_secret_post Volitelné/nepovinné
Aplikace v prohlížeči, mobilní, desktopová nebo aplikace CLI Autorizační kód s PKCE none Povinné, S256

Client secret

Authorization Code flow je určen pro zabezpečené serverové aplikace, které dokážou ochránit client secret před vyzrazením.

PKCE

Proof Key for Code Exchange (PKCE) rozšiřuje tok Authorization Code pro veřejné klienty, jako jsou mobilní nebo jednostránkové aplikace, kde nelze bezpečně uložit client secret.

Privátní a veřejní klienti

Nové klienty OAuth mají ve výchozím nastavení soukromou viditelnost. Soukromé klienty mohou autorizovat pouze členové nadřazeného účtu Cloudflare. Veřejné klienty umožňují autorizaci libovolnému uživateli Cloudflare.

Než klienta nastavíte jako veřejného, dokončete požadované kroky a vyplňte povinná pole.

Povinná pole

Povinné akce

OAuth klienti musí dokončit ověření domény pro URL klienta, než mohou být zveřejněny.

Povýšit klienta na veřejný

  1. Přejděte na Manage Account > OAuth klienti.
  2. Otevřete nabídku akcí pro svého klienta.
  3. Vyberte Změnit viditelnost.
Přejděte na OAuth klienti ↗
curl -X PATCH "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/oauth_clients/$CLIENT_ID" \
	-H "Content-Type: application/json" \
	-H "Authorization: Bearer $API_TOKEN" \
	-d '{ "visibility": "public" }'

Ověření vlastnictví domény pro Client URL

Předtím než se klient stane veřejným, Cloudflare vyžaduje ověření vlastnictví domény URL klienta. Pokud je váš klient určen pouze k soukromému použití členy účtu, ověření vlastnictví domény není nutné.

Zkopírujte ověřovací kód a vytvořte TXT záznam s touto hodnotou do konfigurace DNS. Záznam musí obsahovat celý text, včetně cloudflare_oauth_client_publisher= prefix.

Cloudflare tento DNS záznam opakovaně kontroluje, dokud jej nenajde, nebo dokud po dvou dnech nevyprší časový limit požadavku.

Restartovat ověření

Pokud procesu ověření vyprší časový limit, vyberte Restartovat ověření v nabídce akcí klienta.

Chcete-li restartovat neúspěšné nebo časově vypršelé ověření, odešlete PATCH požadavek se stávajícím client_uri beze změny.

curl -X PATCH "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/oauth_clients/$CLIENT_ID" \
	-H "Content-Type: application/json" \
	-H "Authorization: Bearer $API_TOKEN" \
	-d '{ "client_uri": "https://example.com" }'

Obměnit client secrets

Každý klient může mít dva tajné klíče. Díky tomu můžete vytvořit nový tajný klíč, aktualizovat klienta, aby používal nový tajný klíč, a poté starý tajný klíč odstranit.

  1. Přejděte na Manage Account > OAuth klienti.
  2. Otevřete nabídku akcí pro svého klienta.
  3. Vyberte Obměnit client secret.
  4. Nový tajný klíč uložte na bezpečné místo.
  5. Jakmile klient začne používat nový tajný klíč, starý tajný klíč odstraňte.
Přejděte na OAuth klienti ↗

Chcete-li zjistit, zda klient právě provádí rotaci tajného klíče, vyhledejte has_rotated_secret v GET odpověď. Pokud je hodnota true, starý tajný klíč odstraňte dříve, než vytvoříte další tajný klíč.

Vytvoření nového tajného klíče

curl -X POST "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/oauth_clients/$CLIENT_ID/rotate_secret" \
	-H "Content-Type: application/json" \
	-H "Authorization: Bearer $API_TOKEN"

Odstraňte starý tajný klíč

curl -X DELETE "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/oauth_clients/$CLIENT_ID/rotate_secret" \
	-H "Content-Type: application/json" \
	-H "Authorization: Bearer $API_TOKEN"