INTEGRITY Dokumentace

Microsoft Entra ID

Microsoft Entra ID (dříve Azure Active Directory) můžete propojit s Cloudflare One a vytvářet zásady na základě identity uživatele a členství ve skupinách. Uživatelé se pak k Cloudflare One ověřují pomocí svých přihlašovacích údajů Entra ID.

Nastavení Entra ID jako poskytovatele identity

1. Získejte nastavení Entra ID

K nastavení integrace jsou potřeba následující hodnoty Entra ID:

Chcete-li tyto hodnoty získat:

  1. Přihlaste se do Microsoft Entra admin center.

  2. Přejděte na Aplikace > Podnikové aplikace.

  3. Vyberte Nová aplikace, pak vyberte Vytvoření vlastní aplikace.

  4. Pojmenujte svou aplikaci.

  5. Vyberte Registrace aplikace pro integraci s Microsoft Entra ID (aplikace, kterou vyvíjíte). Pokud je nabídnuta, nevybírejte žádnou z aplikací z galerie. Vyberte Vytvořit.

  6. V části Redirect URI, vyberte Web platformě a zadejte následující adresu URL.

    https://<your-team-name>.cloudflareaccess.com/cdn-cgi/access/callback

    Název svého týmu najdete v Cloudflare dashboard v části Nastavení > Název a doména týmu > Název týmu.

    Registrace aplikace v Azure
  7. Vyberte Registrace.

  8. Dále se vraťte do Microsoft Entra ID a přejděte do Aplikace > Registrace aplikací.

  9. Vyberte Všechny aplikace a vyberte aplikaci, kterou jste právě vytvořili. Zkopírujte Application (client) ID a Directory (tenant) ID. Tyto hodnoty budete potřebovat, když přidání Entra ID jako poskytovatele identity v kroku 3.

    Zobrazení Application ID a Directory ID v Azure
  10. Na stejné stránce v části Přihlašovací údaje klienta, přejděte na Přidejte certifikát nebo tajný klíč. Vyberte New client secret.

  11. Pojmenujte tajný klíč klienta a zvolte dobu platnosti.

  12. Po vytvoření client secret si zkopírujte jeho Hodnota pole. Client secret uložte na bezpečné místo, protože jej lze zobrazit pouze bezprostředně po vytvoření. Tuto hodnotu client secret budete potřebovat při přidání Entra ID jako poskytovatele identity v kroku 3.

    Umístění client secret v Azure

2. Nakonfigurujte oprávnění API v Entra ID

  1. Přejděte na Registrace aplikací > Všechny aplikace > vyberte svou aplikaci > oprávnění API.

  2. Vyberte Přidejte oprávnění.

  3. Vyberte Microsoft Graph.

  4. Vyberte Delegovaná oprávnění a povolte následující oprávnění:

    • email
    • offline_access
    • openid
    • profile
    • User.Read
    • Directory.Read.All
    • GroupMember.Read.All
  1. Jakmile je povoleno všech sedm oprávnění, vyberte Přidání oprávnění.

  2. Vyberte Grant admin consent.

    Seznam nakonfigurovaných oprávnění v Azure

3. Přidejte Entra ID jako poskytovatele identity

  1. V Cloudflare dashboard, přejděte na Zero Trust > Integrace > Poskytovatelé identity.

  2. V části Vaši poskytovatelé identity, vyberte Přidat nového poskytovatele identity.

  3. Vyberte Azure AD.

  4. Zadejte Application (client) ID, Client secret, a Directory (tenant) ID získané z Microsoft Entra ID.

  5. Vyberte Save.

  6. Chcete-li test že vaše připojení funguje, vyberte Test.

  7. (Volitelné) Nakonfigurujte následující nastavení:

    • Proof Key for Code Exchange: Proveďte PKCE při všech pokusech o přihlášení.
    • Skupiny podpory: Umožněte Cloudflare číst členství uživatele ve skupině Entra ID.
    • Entra ID Policy Sync: Viz naše Návod pro podmíněný přístup Entra ID.
    • Povolení SCIM: Viz Synchronizace uživatelů a skupin.
    • Email claim: Zadejte deklaraci Entra ID, kterou chcete použít k identifikaci uživatele (například preferred_username).
    • OIDC Claims: Zadejte vlastní OIDC claimy které chcete přidat k identitě svých uživatelů.

Vytvořte POST požadavek na Poskytovatelé identity koncový bod:

Požadovaná oprávnění API tokenu

Alespoň jeden z následujících oprávnění tokenu je povinné:
  • Access: Organizations, Identity Providers, and Groups Write
Přidání poskytovatele identity pro Access
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/access/identity_providers" \
	--request POST \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
	--json '{
		"name": "Entra ID example",
		"type": "azureAD",
		"config": {
				"client_id": "<your client id>",
				"client_secret": "<your client secret>",
				"directory_id": "<your azure directory uuid>",
				"support_groups": true
		}
	}'
  1. Přidejte následující oprávnění do svého cloudflare_api_token:

    • Access: Organizations, Identity Providers, and Groups Write
  2. Nakonfigurujte cloudflare_zero_trust_access_identity_provider prostředek:

    resource "cloudflare_zero_trust_access_identity_provider" "microsoft_entra_id" {
    	account_id = var.cloudflare_account_id
    	name       = "Entra ID example"
    	type       = "azureAD"
    	config 		 = {
    		client_id                  = var.entra_id_client_id
    		client_secret              = var.entra_id_client_secret
    		directory_id               = var.entra_id_directory_id
    		support_groups             = true
    		}
    }

UPN a e-mail

Pokud se UPN vaší organizace neshodují s e-mailovými adresami uživatelů, musíte přidat vlastní deklaraci pro e-mail. Pokud má například vaše organizace formát e-mailu [email protected] ale UPN je [email protected], musíte vytvořit email claim, pokud konfigurujete zásady založené na e-mailu.

Cloudflare ve výchozím nastavení nejprve vyhledá jedinečný název claimu, který jste vytvořili a nakonfigurovali v Cloudflare One pro reprezentaci e-mailu (například email_identifier) v id_token odpověď JSON. Pokud jste nenastavili jedinečný název claimu, Cloudflare poté vyhledá email claim. Nakonec, pokud neexistuje žádný z těchto claimů, Cloudflare vyhledá claim UPN.

Chcete-li obdržet e-mailový claim v id_token z Microsoft Entra musíte:

  1. V Microsoft Entra admin center, přejděte na Aplikace > Registrace aplikace > Všechny aplikace a vyberte příslušnou aplikaci.

  2. V části Správa, vyberte Token configuration.

  3. Přidejte claim pro e-mail.

    Email claim pro Entra

    Výše uvedený příklad obsahuje jak nárok UPN, tak nárok e-mail. Protože byl v konfiguraci Microsoft Entra vytvořen nárok e-mail, bude Cloudflare hledat email pár klíč-hodnota v odpovědi JSON.

  4. Pokud jste svému e-mailovému claimu dali jiný název než email, musíte aktualizovat konfiguraci v Cloudflare One:

    a. V Cloudflare dashboard, přejděte na Zero Trust > Integrace > Poskytovatelé identity > Azure AD > Úprava.

    b. V části Volitelné konfigurace > Email claim, zadejte název claimu, který představuje e-mailové adresy vaší organizace.

Object ID

Pokud se obáváte, že by se e-maily nebo UPN uživatelů mohly změnit, můžete předat ID objektu uživatele (oid) ze služby Microsoft Entra do Cloudflare Access. Chcete-li nakonfigurovat Access tak, aby přijímal ID objektu, přečtěte si vlastní OIDC claimy. V Microsoft Entra není potřeba žádná další konfigurace.

Synchronizace uživatelů a skupin

Integrace Microsoft Entra ID umožňuje synchronizovat skupiny IdP a automaticky odebírat uživatele pomocí SCIM.

SCIM ovlivňuje vyhodnocování zásad Access a Gateway odlišně.

Access vyhodnocuje identitu uživatele a členství ve skupinách na základě tvrzení SAML nebo tokenu OIDC vráceného poskytovatelem identity při ověřování. SCIM zobrazuje čitelné názvy skupin v tvůrci zásad Access, ale Access členství ve skupinách SCIM k vyhodnocení přihlášení nepoužívá. Pokud zapnete Povolte deprovisioning uživatelů, odebrání uživatele z aplikace SCIM odvolá jeho aktivní relace Access. SCIM můžete také nakonfigurovat tak, aby odvolávalo relace po změně členství ve skupině. Access vyhodnotí aktualizovaná data poskytovatele identity při příštím ověření uživatele.

Gateway vyhodnocuje zásady založené na identitě vůči User Registry identity. SCIM tuto identitu aktualizuje při každé změně uživatele nebo členství ve skupině, aniž by čekal, až se uživatel znovu ověří. Profily zařízení Cloudflare One Client používají stejnou synchronizovanou identitu.

Předpoklady

1. Povolte SCIM v Cloudflare One

  1. V Cloudflare dashboard, přejděte na Zero Trust > Integrace > Poskytovatelé identity.

  2. Najděte integraci Entra ID a vyberte Úprava.

  3. Zapněte Povolení SCIM a Skupiny podpory.

  4. (Volitelné) Nakonfigurujte následující nastavení:

  1. Vyberte Regenerate Secret. Zkopírujte SCIM Endpoint a SCIM Secret. Tyto hodnoty budete muset zadat do Entra ID.

  2. Vyberte Save.

Platnost tajného klíče SCIM nikdy nevyprší, ale kdykoli ho můžete ručně vygenerovat znovu.

2. Nakonfigurujte SCIM v Entra ID

  1. V nabídce Microsoft Entra ID přejděte na Podnikové aplikace.

  2. Vyberte Nová aplikace > Vytvoření vlastní aplikace.

  3. Pojmenujte svou aplikaci (například Cloudflare Access SCIM).

  4. Vyberte Integrujte libovolnou další aplikaci, kterou v galerii nenajdete (Non-gallery). Pokud je nabídnuta, nevybírejte žádnou z aplikací z galerie. Vyberte Vytvořit.

  5. Po vytvoření aplikace přejděte do Zřizování > vyberte Nová konfigurace.

  6. V Tenant URL pole zadejte SCIM Endpoint získané z vaší integrace Entra ID v Cloudflare One v předchozím kroku.

  7. V Tajný token pole zadejte SCIM Secret získané z vaší integrace Entra ID v Cloudflare One v předchozím kroku.

  8. Vyberte Otestovat připojení zajistit, že byly přihlašovací údaje zadány správně. Pokud test selže, přejděte k integraci Entra ID v Cloudflare One a vyberte Regenerate Secret, vyberte Save, a zadejte nové SCIM Secret v Tajný token .

  9. Vyberte Vytvořit.

  10. Jakmile je aplikace SCIM vytvořena, přiřadit uživatele a skupiny k aplikaci.

  1. Přejděte na Zřizování a vyberte Spustit zřizování.

  2. Pro Režim zřizování, výchozí režim by měl být nastaven společností Microsoft na Automaticky.

  3. Na Přehled na stránce v Entra ID uvidíte stav synchronizace.

Chcete-li zjistit, kteří uživatelé a skupiny byli synchronizováni, vyberte Protokoly zřizování.

Chcete-li zkontrolovat, zda byly identity uživatelů v Cloudflare One aktualizovány, zobrazte si Protokoly zřizování SCIM.

Chcete-li sledovat výměnu identitních údajů mezi Cloudflare Access a Microsoft Entra ID, přejděte do Cloudflare dashboard > Zero Trust > Insights > Protokoly > Protokoly zřizování SCIM a zobrazte Protokoly aktivity SCIM.

Atributy zřizování

Atributy zřizování definují vlastnosti uživatelů, které bude Entra ID synchronizovat s Cloudflare Access. Chcete-li atributy zřizování upravit, přejděte na Mapování atributů a vyberte Zřízení uživatelů Microsoft Entra ID.

Pokud ještě nejsou nakonfigurována, Cloudflare doporučuje zapnout následující mapování atributů uživatele:

customappsso Attribute Entra ID Attribute Doporučení
userName userPrincipalName nebo mail Povinné. Musí odpovídat e-mailové adrese uživatele v Cloudflare One.
emails[type eq "work"].value mail Povinné. Musí odpovídat e-mailové adrese uživatele v Cloudflare One.
name.givenName givenName Doporučeno
name.familyName surname Doporučeno

Skupiny Entra v zásadách Zero Trust

Automatický vstup

Když Synchronizace SCIM je povolena, názvy vašich skupin Entra se automaticky zobrazí v tvůrcích zásad Access a Gateway.

Pokud vytváříte zásadu Access, vyberte Skupiny Azure selektor. Názvy skupin Azure zobrazené v nástroji Access Policy Builder

Pokud vytváříte zásadu Gateway, vyberte User Group Names selektor.

Ruční zadání

Můžete vytvořit zásady Access a Gateway pro skupiny, které nejsou synchronizovány prostřednictvím SCIM. Entra ID zobrazuje skupiny adresáře ve formátu, který se skládá z náhodných řetězců, Object Id, které se liší od Name.

  1. Ujistěte se, že povolíte Skupiny podpory při nastavování Microsoft Entra ID v Cloudflare One.

  2. V dashboardu Microsoft Entra si poznamenejte Object Id pro skupinu Entra. V níže uvedeném příkladu má skupina s názvem Admins ID 61503835-b6fe-4630-af88-de551dd59a2.

    Zobrazení ID skupiny Azure v dashboardu Azure
  3. Pokud vytváříte zásadu Access, vyberte Skupiny Azure selektor. Pokud vytváříte zásadu Gateway, vyberte User Group IDs selektor.

  4. V Hodnota pole zadejte Object Id pro skupinu Entra.

    Zadání ID skupiny Azure do Cloudflare One

Vnořené skupiny

Ověřování

Zásady Access a Gateway pro skupinu Entra se budou vztahovat i na všechny vnořené skupiny. Pokud například uživatel patří do skupiny US devs, a US devs je součástí širší skupiny Devs, uživatel by byl povolen nebo blokován všemi zásadami vytvořenými pro Devs.

Zajišťování SCIM

U zajišťování SCIM, vnořené skupiny nejsou podporovány. Implementace SCIM v Microsoft Entra ID neodesílá do Cloudflare informace o vnořeném členství ve skupinách. Poskytnuti budou pouze uživatelé, kteří jsou přímými členy explicitně přiřazené skupiny. Aby bylo členství ve skupinách správně synchronizováno, musíte v Entra ID zploštit své skupiny tak, že uživatele přiřadíte přímo do skupin, které chcete poskytovat.

Požadavek SCIM od Microsoftu neobsahuje informace o vnořených skupinách, takže ani Cloudflare, ani Microsoft nemohou upozornit na to, že se vnořené skupiny nesynchronizují.

Vynutit interakci uživatele při opětovném ověření klienta zařízení

Můžete od uživatelů vyžadovat, aby znovu zadali své přihlašovací údaje do Entra ID pokaždé, když znovu ověřit svou relaci Cloudflare One Client. Chcete-li toto nastavení nakonfigurovat:

  1. Vytvořte GET požadavek na Endpoint poskytovatelů identity a zkopírujte odpověď pro poskytovatele identity Entra ID.

    Požadovaná oprávnění API tokenu

    Alespoň jeden z následujících oprávnění tokenu je povinné:
    • Access: Organizations, Identity Providers, and Groups Write
    • Access: Organizations, Identity Providers, and Groups Read
    Získání poskytovatele identity Access
    curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/access/identity_providers/$IDENTITY_PROVIDER_ID" \
    	--request GET \
    	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN"
  2. Aktualizujte poskytovatele identity Entra ID pomocí PUT požadavek. Do těla požadavku zahrňte všechny stávající konfigurace a nastavte prompt parametr na login nebo select_account. Například:

    Požadovaná oprávnění API tokenu

    Alespoň jeden z následujících oprávnění tokenu je povinné:
    • Access: Organizations, Identity Providers, and Groups Write
    Aktualizujte poskytovatele identity Access
    curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/access/identity_providers/$IDENTITY_PROVIDER_ID" \
    	--request PUT \
    	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
    	--json '{
    		"id": "f174e90a-fafe-4643-bbbc-4a0ed4fc8415",
    		"type": "azureAD",
    		"uid": "f174e90a-fafe-4643-bbbc-4a0ed4fc8415",
    		"name": "Entra ID",
    		"version": "31e74e9b4f033e16b604552091a72295",
    		"config": {
    				"azure_cloud": "default",
    				"client_id": "<CLIENT_ID>",
    				"conditional_access_enabled": false,
    				"directory_id": "<AZURE_DIRECTORY_ID>",
    				"redirect_url": "https://<TEAM_NAME>.cloudflareaccess.com/cdn-cgi/access/callback",
    				"prompt": "login",
    				"support_groups": true
    		},
    		"scim_config": {
    				"enabled": true,
    				"user_deprovision": true,
    				"seat_deprovision": false,
    				"group_member_deprovision": false,
    				"identity_update_behavior": "automatic"
    		},
    		"scim_base_url": "https://<TEAM_NAME>.cloudflareaccess.com/populations/f174e90a-fafe-4643-bbbc-4a0ed4fc8415/scim/v2"
    	}'