INTEGRITY Dokumentace

Token aplikace

Cloudflare Access připojuje token aplikace ke všem ověřeným požadavkům směřujícím na váš origin. Typický JWT vypadá takto:

eyJhbGciOiJSUzI1NiIsImtpZCI6IjkzMzhhYmUxYmFmMmZlNDkyZjY0.eyJhdWQiOlsiOTdlMmFhZ TEyMDEyMWY5MDJkZjhiYzk5ZmMzNDU5MTNh.zLYsHmLEginAQUXdygQo08gLTExWNXsN4jBc6PKdB

Jak je uvedeno výše, JWT obsahuje tři hodnoty Base64-URL oddělené tečkami:

Pokud vaše aplikace není k Access připojena přes Cloudflare Tunnel, musí ověřit token zajistit zabezpečení vašeho originu. Samotné ověření hlavičky nestačí: je nutné potvrdit JWT a podpis, aby se zabránilo podvržení identity.

{
	"alg": "RS256",
	"kid": "9338abe1baf2fe492f646a736f25afbf7b025e35c627be4f60c414d4c73069b8",
	"typ": "JWT"
}

Payload

Payload obsahuje samotný claim a informace o uživateli, které se předávají aplikaci. Obsah payloadu se liší podle toho, zda jste se k aplikaci ověřili pomocí poskytovatele identity, nebo pomocí token služby.

Ověřování založené na identitě

{
	"aud": ["32eafc7626e974616deaf0dc3ce63d7bcbed58a2731e84d06bc3cdf1b53c4228"],
	"email": "[email protected]",
	"exp": 1659474457,
	"iat": 1659474397,
	"nbf": 1659474397,
	"iss": "https://yourteam.cloudflareaccess.com",
	"type": "app",
	"identity_nonce": "6ei69kawdKzMIAPF",
	"sub": "7335d417-61da-459d-899c-0a01c76a2f94",
	"country": "US"
}
Pole Popis
aud Značka audience (AUD) aplikace aplikace Access.
e-mail E-mailová adresa ověřeného uživatele, potvrzená poskytovatelem identity.
exp Časové razítko vypršení platnosti tokenu (Unix time).
iat Časové razítko vydání tokenu (Unix time).
nbf Časové razítko not-before pro token (Unix time), které slouží ke kontrole, zda token nebyl přijat dříve, než měl být použit.
iss URL adresa domény Cloudflare Access pro aplikaci.
typ Typ Access tokenu (app pro token aplikace nebo org pro globální token relace).
identity_nonce Cache key použitý k získání identita uživatele.
sub ID uživatele. Tato hodnota je pro danou e-mailovou adresu v rámci účtu jedinečná. Uživatel by získal jiné sub pokud jsou odebráno a znovu přidáni do vaší organizace Zero Trust, nebo pokud se přihlásí do jiné organizace.
země Země, ze které se uživatel ověřil.

Vlastní atributy SAML a OIDC claims

Access umožňuje přidat do JWT vlastní atributy SAML a nároky OIDC pro důkladnější ověřování, pokud to váš poskytovatel identity podporuje. Nastavuje se to při konfiguraci SAML nebo OIDC poskytovatel. Skupiny poskytovatele identity jsou do tokenu zahrnuty pouze tehdy, když explicitně nakonfigurujete groups jako vlastní atribut SAML nebo claim OIDC. Access je nepřidává automaticky.

Identita uživatele

Identita uživatele je užitečná pro kontrolu oprávnění aplikace. Aplikace tak může například ověřit, že daný uživatel je členem skupiny Okta nebo Microsoft Entra ID, například Finance-Team.

Vzhledem k omezením velikosti cookie a šířky pásma obsahuje token aplikace pouze část identity uživatele. Chcete-li získat úplnou identitu uživatele, odešlete CF_Authorization cookie na https://<your-team-name>.cloudflareaccess.com/cdn-cgi/access/get-identity. Váš požadavek by měl mít následující strukturu:

curl -H 'cookie: CF_Authorization=<user-token>' https://<your-team-name>.cloudflareaccess.com/cdn-cgi/access/get-identity

Access vrátí strukturu JSON s následujícími údaji:

Pole Popis
e-mail E-mailová adresa uživatele.
idp Data z vašeho poskytovatele identity.
geo Země, ze které se uživatel ověřil.
user_uuid ID uživatele.
devicePosture Atributy kontroly stavu zařízení.
account_id ID účtu vaší organizace.
iat Časové razítko udávající, kdy se uživatel přihlásil.
ip IP adresa uživatele.
auth_status Stav při ověřování pomocí mTLS.
common_name Common Name na klientském certifikátu mTLS.
service_token_id Client ID tokenu služby použitého k ověřování.
service_token_status True, pokud ověření proběhlo pomocí service tokenu místo IdP.
is_warp True, pokud uživatel povolil WARP.
is_gateway True, pokud uživatel povolil Cloudflare One Client a ověřil se v týmu Zero Trust.
gateway_account_id ID vygenerované klientem Cloudflare One po ověření v týmu Zero Trust.
device_id ID zařízení použitého k ověření.
verze Verze get-identity objekt.
device_sessions Seznam všech relací zahájených uživatelem.

Ověřování pomocí service tokenu

{
	"type": "app",
	"aud": ["32eafc7626e974616deaf0dc3ce63d7bcbed58a2731e84d06bc3cdf1b53c4228"],
	"exp": 1659474457,
	"iss": "https://yourteam.cloudflareaccess.com",
	"common_name": "e367826f93b8d71185e03fe518aff3b4.access",
	"iat": 1659474397,
	"sub": ""
}
Pole Popis
typ Typ Access tokenu (app pro token aplikace nebo org pro globální token relace).
aud application audience (AUD) tag aplikace Access.
exp Časové razítko vypršení platnosti JWT (Unix time).
iss URL adresa domény Cloudflare Access pro aplikaci.
common_name Client ID tokenu služby (CF-Access-Client-Id).
iat Časové razítko vydání JWT (Unix time).
sub Obsahuje prázdný řetězec, pokud k ověření došlo pomocí tokenu služby.

Podpis

Cloudflare vytváří podpis podepsáním zakódované hlavičky a payloadu pomocí algoritmu SHA-256 (RS256). V RS256 podepisuje JWT soukromý klíč a samostatný veřejný klíč ověřuje podpis.

Další informace o JWT najdete v jwt.io.