← Cloudflare One / cloudflare-one / access-controls / applications / http-apps / authorization-cookie
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.
Hlavička
{
"alg": "RS256",
"kid": "9338abe1baf2fe492f646a736f25afbf7b025e35c627be4f60c414d4c73069b8",
"typ": "JWT"
}algidentifikuje kódovací algoritmus.kididentifikuje klíč použitý k podepsání tokenu.typurčuje formát tokenu.
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-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-identityAccess vrátí strukturu JSON s následujícími údaji:
| Pole | Popis |
|---|---|
| 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 ↗.