← Cloudflare One / cloudflare-one / access-controls / policies
Vynuťte MFA
Cloudflare Access podporuje dva způsoby vynucení vícefaktorového ověřování (MFA):
- MFA založené na poskytovateli identity : Vyžadujte konkrétní metody MFA hlášené vaším poskytovatelem identity (IdP).
- Independent MFA : Vyzve uživatele k zadání druhého faktoru přímo v Access, bez nutnosti poskytovatele identity třetí strany.
U připojení SSH k infrastructure aplikace, Access také podporuje independent MFA s klíči PIV a FIDO2.
MFA založené na poskytovateli identity
Můžete vyžadovat, aby se uživatelé přihlašovali konkrétními metodami MFA poskytovanými jejich poskytovatelem identity. Můžete tak například vytvořit pravidla, která uživatelům umožní přístup k dané aplikaci pouze v případě, že se ověří bezpečnostním klíčem přes svého IdP.
Vynucení MFA založené na IdP je k dispozici jen u následujících poskytovatelů identity:
Chcete-li u aplikace vynutit požadavek na MFA od IdP:
-
V Cloudflare dashboard ↗, přejděte na Zero Trust > Řízení přístupu > Aplikace.
-
Najděte aplikaci, pro kterou chcete vynutit MFA, a vyberte Konfigurovat. Případně vytvořit novou aplikaci.
-
Přejděte na Zásady.
-
Pokud vaše aplikace už má zásadu obsahující požadavek na identitu, najděte ji a vyberte Konfigurovat.
-
Přidejte do zásady následující pravidlo:
Typ pravidla Selektor Hodnota Require Metoda ověřování mfa - multiple-factor authentication -
Uložte zásadu.
Metody ověřování v JWT
Když se uživatelé ověří u svého poskytovatele identity, IdP sdílí jejich uživatelské jméno s Cloudflare Access. Access tuto hodnotu zapíše do JSON Web Token (JWT) vygenerovaný pro uživatele.
Někteří poskytovatelé identity také sdílejí metodu MFA, kterou uživatel použil. Access může tyto hodnoty přidat do JWT. Pokud se například uživatel ověřil pomocí hesla a bezpečnostního klíče, může IdP odeslat potvrzení službě Cloudflare Access. Access pak tuto metodu uloží do JWT vydaného uživateli.
Cloudflare Access se řídí RFC 8176 ↗, Authentication Method Reference Values, k definování metod ověřování.
Independent MFA
Independent MFA vyzve uživatele k zadání druhého faktoru přímo v Access. Díky tomu můžete vynutit požadavky na MFA, aniž byste se museli spoléhat na konfiguraci MFA u svého IdP.
Požadavky na MFA můžete nakonfigurovat na třech úrovních:
| Úroveň | Popis |
|---|---|
| Organizace | Ve výchozím nastavení vynuťte MFA pro všechny aplikace ve svém účtu. |
| Aplikace | Vyžadujte nebo vypněte MFA pro konkrétní aplikaci. |
| Zásada | Vyžadujte nebo vypněte MFA pro uživatele, kteří odpovídají konkrétní zásadě. |
Nastavení MFA se řídí tímto pořadím priority: Zásada > Aplikace > Organizace.
Předpoklady
Než na aplikacích nebo zásadách nakonfigurujete nezávislé MFA, musíte zapnutí nezávislého MFA na úrovni organizace.
Nakonfigurujte nezávislé MFA pro aplikaci
Každá aplikace má tři možnosti MFA:
| Možnost | Chování |
|---|---|
| Respektovat globální nastavení vynucování | Používá na úrovni organizace konfigurace MFA. Pokud je MFA vyžadováno globálně, uživatelé musí MFA dokončit. Pokud MFA není vyžadováno globálně, uživatelé o něj nejsou požádáni. Toto je výchozí chování. |
| Vlastní nastavení MFA | Přepisuje nastavení organizace autentizátory povolenými pro konkrétní aplikaci a dobou trvání relace. |
| Zakázat MFA | Uživatelé nejsou při přístupu k této aplikaci vyzváni k samostatnému MFA, i když je MFA vyžadováno globálně. |
Chcete-li nakonfigurovat MFA pro aplikaci:
- V Cloudflare dashboard ↗, přejděte na Zero Trust > Řízení přístupu > Aplikace.
- Najděte aplikaci, kterou chcete nakonfigurovat, a vyberte Konfigurovat.
- Přejděte níže na Ověřování a vyberte MFA.tab.
- Vyberte jednu z následujících možností:
- Chcete-li zdědit nastavení organizace, vyberte Respektovat globální nastavení vynucování.
- Chcete-li nastavit vlastní požadavky, vyberte Vlastní nastavení MFA, poté nakonfigurujte povolené metody MFA a doba trvání ověřování.
- Chcete-li aplikaci vyjmout z MFA, vyberte Zakázat MFA.
- Vyberte Save.
Chcete-li nakonfigurovat MFA pro infrastrukturní aplikaci, více informací najdete v Infrastructure aplikace.
Nakonfigurujte nezávislé MFA pro zásadu
Každá zásada má stejné tři možnosti MFA popsané v Nakonfigurujte nezávislé MFA pro aplikaci. Nastavení na úrovni zásady mají přednost před nastavením na úrovni aplikace.
- V Cloudflare dashboard ↗, přejděte na Zero Trust > Řízení přístupu > Zásady.
- Zvolte Allow zásadu a vyberte Konfigurovat.
- V části Vícefaktorové ověřování (MFA), vyberte možnost:
- Chcete-li zdědit nastavení aplikace nebo organizace, vyberte Respektovat globální nastavení vynucování.
- Chcete-li nastavit vlastní požadavky pro uživatele, na které se tato zásada vztahuje, vyberte Vlastní nastavení MFA, poté nakonfigurujte povolené metody MFA a doba trvání ověřování.
- Chcete-li z MFA vyjmout uživatele, na které se tato zásada vztahuje, vyberte Zakázat MFA.
- Vyberte Save.
Chcete-li nakonfigurovat MFA pro zásadu infrastrukturní aplikace, více informací najdete v Infrastructure aplikace.
doba trvání relace MFA
Doba trvání relace MFA určuje, jak dlouho zůstane úspěšné ověření MFA platné. Po vypršení relace MFA musí uživatel při dalším přihlášení do Cloudflare Access znovu absolvovat MFA, a to navíc k ověření u IdP. Můžete vyžadovat, aby uživatelé absolvovali MFA při každém přihlášení do Access, nebo nastavit vlastní dobu trvání. Doba trvání relace MFA se kontroluje pouze během procesu přihlášení a nemá vliv na existující relaci uživatele.
Access kontroluje relace MFA od nejspecifičtější po nejméně specifickou:
- Doba trvání relace zásady MFA : Pokud je nastaveno, platí pro uživatele, kteří odpovídají zásadě.
- Doba trvání relace MFA aplikace : Pokud je nastaveno, platí pro všechny uživatele přistupující k aplikaci.
- Doba trvání globální relace MFA : Výchozí hodnota pro všechny aplikace, které nemají nastavenou vlastní dobu trvání.
Vyžadovat MFA při každém přihlášení
Chcete-li vyžadovat MFA při každém přihlášení uživatele do aplikace, nastavte dobu trvání ověřování na Vyžadovat při každém přihlášení. Tím se zabrání tomu, aby si Access ukládal do mezipaměti úspěšnou relaci MFA.
- Organizace : Přejděte na Zero Trust > Řízení přístupu > Nastavení Access > Povolit vícefaktorové ověřování (MFA). Nastavte Doba trvání ověřování na Vyžadovat při každém přihlášení. Toto platí pro všechny aplikace, pokud není přepsáno na úrovni aplikace nebo zásady. Další podrobnosti najdete v nastavení independent MFA.
- Aplikace : Přejděte na Zero Trust > Řízení přístupu > Aplikace > vyberte svou aplikaci > Konfigurovat > Ověřování > MFA kartě. Vyberte Vlastní nastavení MFA a nastavte Doba trvání ověřování na Vyžadovat při každém přihlášení.
- Zásada : Přejděte na Zero Trust > Řízení přístupu > Zásady > vyberte svou zásadu > Konfigurovat. V části Vícefaktorové ověřování (MFA), vyberte Vlastní nastavení MFA a nastavte Doba trvání ověřování na Vyžadovat při každém přihlášení.
Chcete-li to nakonfigurovat pro aplikaci prostřednictvím API, nejprve odešlete GET požadavek k načtení úplné konfigurace aplikace a poté odešlete PUT požadavek s úplným tělem aplikace včetně aktualizovaného mfa_config. Nastavte session_duration na "0m":
curl --request PUT \
https://api.cloudflare.com/client/v4/accounts/{account_id}/access/apps/{app_id} \
--header "Authorization: Bearer <API_TOKEN>" \
--header "Content-Type: application/json" \
--data '{
"mfa_config": {
"mfa_disabled": false,
"session_duration": "0m"
}
}'Příklad priority
Uvažujme následující konfiguraci:
flowchart TD
subgraph org["Organization"]
orgSettings["**Apply global MFA settings by default**, <br/>**MFA methods**: Authenticator app + Security key, <br/>**Authentication duration**: 24 hours"]
end
subgraph appA["Application A"]
appASettings["**Respect global enforcement setting**<br/>(inherits organization settings)"]
subgraph policies["Policies"]
policy1["Policy 1<br/>**Custom MFA settings**,<br/>**MFA methods**: Security keys only,<br/>**Authentication duration**: 1 hour"]
policy2["Policy 2<br/>**Disable MFA**"]
end
end
subgraph appB["Application B"]
appBSettings["**Disable MFA**"]
end
orgSettings --> appASettings
orgSettings -.->|"overridden"| appBSettings
appASettings -.->|"overridden by"| policy1
appASettings -.->|"overridden by"| policy2
V tomto příkladu:
- Uživatelé, kteří přistupují k aplikaci A a odpovídají zásadě 1, musí použít bezpečnostní klíč a znovu se ověřit každou hodinu.
- Uživatelé, kteří přistupují k aplikaci A a odpovídají zásadě 2, nejsou vyzváni k MFA.
- Uživatelé, kteří přistupují k aplikaci A a neodpovídají žádné ze zásad, musí použít autentizační aplikaci nebo bezpečnostní klíč, s relací platnou 24 hodin.
- Uživatelé, kteří přistupují k aplikaci B, nejsou vyzváni k MFA.
Infrastructure aplikace
Infrastructure aplikace používající SSH podporují dvě metody MFA určené pouze pro infrastrukturu. piv_key používá zaregistrovaný klíč Personal Identity Verification (PIV). ssh_fido2_key používá zaregistrovaný klíč FIDO2. Žádná z těchto metod se nevztahuje na jiné typy aplikací Access ani na ověřování WebAuthn v prohlížeči.
MFA pro infrastrukturní aplikace můžete nakonfigurovat na úrovni aplikace nebo na úrovni zásady.
Nakonfigurujte MFA pro infrastrukturní aplikaci
Při konfiguraci vlastního MFA vyberte klíč PIV, klíč FIDO2, nebo obojí. Odpovídající pole API jsou ["piv_key"], ["ssh_fido2_key"], a ["piv_key", "ssh_fido2_key"].
Dashboard
- V Cloudflare dashboard ↗, přejděte na Zero Trust > Řízení přístupu > Aplikace.
- Najděte svou infrastrukturní aplikaci a vyberte Konfigurovat.
- Přejděte na Ověřování kartu a vyberte MFA.
- Vyberte jednu z následujících možností:
- Respektovat globální nastavení vynucování : Používá na úrovni organizace konfigurace MFA. Toto je výchozí chování.
- Vlastní nastavení MFA : Přepíše globální nastavení pro tuto aplikaci. Vyberte Klíč PIV, Klíč FIDO2, nebo obojí jako povolené autentizátory a poté nastavte vlastní dobu trvání relace MFA.
- Zakázat MFA : Uživatelé nejsou při přístupu k této aplikaci vyzýváni k MFA.
- Vyberte Save.
API
Chcete-li aktualizovat nastavení MFA pro infrastrukturní aplikaci, nejprve odešlete GET požadavek k načtení úplné konfigurace aplikace a poté odešlete PUT požadavek s úplným tělem aplikace včetně mfa_config objekt. PUT požadavek musí obsahovat všechna pole vrácená GET a zabraňte přepsání stávajícího nastavení.
curl --request PUT \
https://api.cloudflare.com/client/v4/accounts/{account_id}/access/apps/{app_id} \
--header "Authorization: Bearer <API_TOKEN>" \
--header "Content-Type: application/json" \
--data '{
"mfa_config": {
"mfa_disabled": false,
"session_duration": "12h",
"allowed_authenticators": ["piv_key", "ssh_fido2_key"]
}
}'| Pole | Typ | Popis |
|---|---|---|
mfa_disabled |
Boolean | Pokud true, MFA není pro tuto aplikaci vyžadováno, i když globální nastavení MFA vynucují. |
session_duration |
Řetězec | Doba, po které se uživatel musí znovu ověřit pomocí MFA (například 30m, 1h, 24h). Nastaveno na 0m a vyžadovat MFA při každém připojení SSH. |
allowed_authenticators |
Array | Použijte ["piv_key"], ["ssh_fido2_key"], nebo ["piv_key", "ssh_fido2_key"]. |
Nakonfigurujte MFA pro infrastrukturní zásadu
Pro různá uživatelská jména SSH můžete nastavit odlišné požadavky na MFA konfigurací MFA na úrovni zásady. Nastavení MFA na úrovni zásady má přednost před nastavením na úrovni aplikace.
Dashboard
- V Cloudflare dashboard ↗, přejděte na Zero Trust > Řízení přístupu > Aplikace.
- Najděte svou infrastrukturní aplikaci a vyberte Konfigurovat.
- Přejděte na Zásady a vyberte zásadu, kterou chcete nakonfigurovat.
- V části Vícefaktorové ověřování (MFA), vyberte možnost:
- Respektovat globální nastavení vynucování : Přebírá nastavení aplikace nebo organizace.
- Vlastní nastavení MFA : Vyberte Klíč PIV, Klíč FIDO2, nebo obojí jako povolené autentizátory a nastavit vlastní dobu trvání relace MFA pro uživatele, kteří odpovídají této zásadě.
- Zakázat MFA : Uživatelé, kteří odpovídají této zásadě, nejsou vyzýváni k MFA.
- Vyberte Save.
API
Chcete-li aktualizovat nastavení MFA pro zásadu, nejprve odešlete GET požadavek k načtení úplné konfigurace zásady a poté odešlete PUT požadavek s úplným tělem zásady včetně mfa_config objekt. mfa_config objekt používá stejná pole jako konfigurace na úrovni aplikace.
curl --request PUT \
https://api.cloudflare.com/client/v4/accounts/{account_id}/access/policies/{policy_id} \
--header "Authorization: Bearer <API_TOKEN>" \
--header "Content-Type: application/json" \
--data '{
"name": "Require MFA for root",
"decision": "allow",
"include": [
{
"email": {
"email": "[email protected]"
}
}
],
"mfa_config": {
"mfa_disabled": false,
"session_duration": "1h",
"allowed_authenticators": ["piv_key", "ssh_fido2_key"]
},
"connection_rules": {
"ssh": {
"usernames": ["root"],
"allow_email_alias": false
}
}
}'doba trvání relace MFA pro SSH
Doba trvání relace MFA určuje, jak dlouho mohou uživatelé otevírat nová připojení SSH bez další výzvy k MFA. Nastavte dobu trvání na 0m a vyžadovat MFA pro každé nové připojení. Vypršení platnosti aktivní připojení neukončí.
Relace MFA jsou vázány na zařízení uživatele. Pokud uživatel přejde na jiné zařízení, musí se znovu ověřit bez ohledu na zbývající dobu trvání relace.
Doba trvání relace se vyhodnocuje v tomto pořadí:
- Doba trvání na úrovni zásady : Pokud je nastaveno, platí pro uživatele, kteří odpovídají zásadě.
- Doba trvání na úrovni aplikace : Pokud není nastavena doba trvání na úrovni zásady, použije se nastavení aplikace.
- Doba trvání na úrovni organizace : Pokud dobu trvání nedefinuje ani zásada, ani aplikace, použije se globální nastavení.
Když uživatel odpovídá více zásadám, z nichž každá definuje dobu trvání relace, Access použije nejkratší doby platnosti napříč všemi odpovídajícími zásadami.
Priorita a řešení konfliktů
Konfigurace MFA se vyhodnocuje od nejspecifičtější po nejobecnější: zásada > aplikace > organizace.
| Organization MFA | MFA aplikace | Zásada MFA | Výsledek |
|---|---|---|---|
| Povinné | Povinné | Povinné | MFA vyžadováno |
| Povinné | Povinné | Disabled | MFA není vyžadováno (platí zásada) |
| Povinné | Disabled | (není nastaveno) | MFA není vyžadováno (platí nastavení aplikace) |
| Povinné | (není nastaveno) | (není nastaveno) | MFA vyžadováno (platí nastavení organizace) |
Aby uživatelé mohli registrovat klíče PIV, musí být povoleno MFA na úrovni organizace. Explicitní nastavení na nižší úrovni (zásada nebo aplikace) má přednost před vyšší úrovní. Pokud na dané úrovni neexistuje explicitní nastavení, použije se nastavení z nejbližší vyšší úrovně.