HVERNIG ÞAÐ VIRKAR
Settu upp TerraProvider í þínum tenant og pipeline.
Það sem verkfræðingurinn sem setur upp TerraProvider þarf að vita: hvernig innskráningin virkar, hvaða heimildir eru óskað eftir, hvernig fyrsti planinn lítur út og hvernig fyrirliggjandi tenant kemst undir kóða.
- terraprovider/microsoft365wp
- Terraform and OpenTofu
- 10 builds
- version 0.20.2
Fyrsti planinn þinn í fjórum skrefum
Tekur um það bil jafn langan tíma og uppsetning á hvaða öðrum Azure provider sem er, því innskráningin virkar á sama hátt.
Skráðu forrit í Entra ID.
Einn tenant, engin redirect URI þarf. Skráðu hjá þér application (client) ID og directory (tenant) ID.Veittu Microsoft Graph heimildir.
Bættu við forritsheimildum fyrir þau hlutföll sem þú vilt stjórna (sjá töfluna hér að neðan) og veitu admin consent.Lýstu yfir provider.
StilltuARM_TENANT_IDogARM_CLIENT_ID, aukARM_CLIENT_SECRETfyrir fyrstu prófun. Í pipeline skaltu nota OpenID Connect í staðinn (sjá neðar).terraform { required_providers { microsoft365wp = { source = "terraprovider/microsoft365wp" } }}provider "microsoft365wp" {}
Plan.
Skrifaðu eitt resource, til dæmis compliance-stefnu, og keyrðuterraform planeðatofu plan. Ekkert breytist í tenantinum fyrr en þú beitir planinum.resource "microsoft365wp_device_compliance_policy" "windows_defender" { display_name = "Windows - Defender for Endpoint" windows10 = { device_threat_protection_enabled = true } scheduled_actions_for_rule = [{ scheduled_action_configurations = [{ action_type = "block" grace_period_hours = 6 }] }] assignments = [{ target = { all_licensed_users = {} } }]}
Dæmigögn.
Microsoft Graph heimildir sem er óskað eftir
Forritsheimildir, veittar með admin consent. Veittu aðeins þær sem eiga við hlutföll sem þú stjórnar; resource sem er ekki skráð hér tilgreinir heimildir sínar á skjölunarsíðu sinni.
| Heimild | Hvað er leyft |
|---|---|
| DeviceManagementConfiguration.ReadWrite.All | Intune tækjastillingar og stefnur |
| DeviceManagementApps.ReadWrite.All | Intune forrit |
| DeviceManagementServiceConfig.ReadWrite.All | Intune þjónustustillingar, svo sem skráning |
| Policy.ReadWrite.ConditionalAccess | Conditional Access stefnur |
| Policy.Read.All | Lestur á stefnum fyrirtækisins |
| Application.ReadWrite.All | Forrit |
| Directory.ReadWrite.All | Directory-gögn |
| Group.ReadWrite.All | Hópar |
| User.ReadWrite.All | Heildarsnið notenda |
| CloudPC.ReadWrite.All | Windows 365 stillingar |
Heimild: leiðarvísir provider-ins „Configuring a Service Principal for managing EntraID".
Sömu innskráningarstillingar og azuread provider
Provider-inn les sömu ARM_* stillingar og azuread provider. Stilltu ARM_TENANT_ID og ARM_CLIENT_ID, veldu síðan aðferð.
| Aðferð | Hentar fyrir | Kveiktu á því |
|---|---|---|
| OpenID Connect, GitHub Actions | Workflows án geymdrar leyndarmáls | ARM_USE_OIDC=true |
| OpenID Connect, Azure DevOps | Pipelines með service connection | ARM_USE_OIDC=trueARM_ADO_PIPELINE_SERVICE_CONNECTION_ID |
| OpenID Connect, hvaða útgefandi sem er | Önnur CI-kerfi sem gefa út ID token | ARM_USE_OIDC=trueARM_OIDC_TOKEN / ARM_OIDC_TOKEN_FILE_PATH |
| Client certificate | Runners sem geyma skírteini | ARM_CLIENT_CERTIFICATE / ARM_CLIENT_CERTIFICATE_PATH |
| Client secret | Fyrsta prófun, rannsóknaraðstaða | ARM_CLIENT_SECRET / ARM_CLIENT_SECRET_FILE_PATH |
| Managed identity | Runners á Azure | ARM_USE_MSI=true |
| AKS workload identity | Runners á Kubernetes í Azure | ARM_USE_AKS_WORKLOAD_IDENTITY=true |
| Azure CLI | Fartölvan þín | kveikt á sjálfgefið; ARM_USE_CLI=false slekkur á því |
Sérhver stilling er einnig til sem provider-argument (use_oidc, client_certificate_path og svo framvegis). OpenID Connect-leiðarvísir provider-ins sýnir hvernig Entra ID er látið treysta GitHub-geymslu. Í stuttu máli: OpenID Connect (GitHub Actions, Azure DevOps, hvaða OIDC token sem er), client certificate, client secret, managed identity, AKS workload identity, Azure CLI.
Fjórir clouds
Stilltu environment eða ARM_ENVIRONMENT. Provider-inn talar þá við Microsoft Graph endapunkt þess cloud: global, US Government L4, US Government L5 (DoD), China.
Environment
- global (einnig public)
- Viðskiptacloudið, sjálfgefið
- usgovernmentl4 (einnig usgovernment)
- US Government L4
- usgovernmentl5 (einnig dod)
- US Government L5 (DoD)
- china
- Cloud Microsoft í Kína
- Þinn eigin endapunktur
metadata_hostorARM_METADATA_HOSTNAME
Hvað planinn fylgist með
- Söfn sem þú sleppir sjálfgefast tóm, þannig að bættur meðlimur, undanþága eða forrit er sýnilegt.
- Ný Conditional Access stefna án stöðu er búin til sem
enabledForReportingButNotEnforced. - Sjálfgefið gildi hvers attribute er á skjölunarsíðu resource-ins, merkt sem provider default.
Gagnhliðin: stilling sem einhver kveikti og slökkti aftur á í gátt getur komið aftur sem false í stað þess að vera ósett og birtist einu sinni sem breyting. Eitt apply leyser það.
Í gáttinni: Engar breytingar síðan síðasta apply.
microsoft365wp_conditional_access_policy.require_mfa_admins: Refreshing state... [id=2b7f9c3e-8d41-4f6a-b0e2-5c9a1d7e3f80]No changes. Your infrastructure matches the configuration.
resource "microsoft365wp_conditional_access_policy" "require_mfa_admins" { display_name = "Require MFA for admins" state = "enabled" conditions = { users = { include_roles = ["62e90394-69f5-4237-9190-012177145e10"] } applications = { include_applications = ["All"] } } grant_controls = { operator = "OR" built_in_controls = ["mfa"] }}
Flytja út og inn fyrirliggjandi tenant í tveimur áföngum
Quickstart-geymslan inniheldur tilvísunarskilgreiningu með modules, GitHub Actions workflows og PowerShell-útflutning. Útflutningurinn fer í tveimur áföngum, því stefnur vísa í hópa og síur.
Flytja út hópa, síur og tilkynningasniðmát.
Þau eru skrifuð inn í modules quickstart-ins, með vörpunarskrá fyrir hverja tegund. Póstfærðir hópar eru hafðir utan nema þú biðjir sérstaklega um þá.Flytja þau inn.
Tólið kallar á Terraform eða OpenTofu til að flytja inn hvert útflutt hlutfall í stöðuna.Flytja út compliance- og stillingarstefnur.
Settings catalog og endpoint security stefnur teljast sem stillingarstefnur. Sérhver útflutningur geymir einnig hrá JSON-dump af því sem Microsoft Graph skilaði.Flytja þær inn.
Sama tól, annar áfangi.Plan.
Planinn sýnir hvað er enn mismunandi. Ekki er hægt að flytja út öll attributes, þannig að búast má við stuttri hreinsun áður en fyrsti hrein planinn er til.
Eitt hlutfall í einu
Fyrir allt sem útflutningurinn nær ekki yfir skrifar lítið script Terraform-skrá fyrir eitt hlutfall af hvaða resource-tegund sem er, miðað við id þess. Það notar eigin skilgreiningarsmíð Terraform, þannig að skráin inniheldur það sem provider-inn les sjálfur úr tenantinum.
Quickstart-inn á GitHubEitt resource geymir forritið, pakka þess og úthlutanir
microsoft365wp_mobile_app nær yfir 21 forritsgerðir. Fyrir .intunewin, MSI, APPX/MSIX, DMG, PKG pakka dulkóðar provider-inn skrána og hleður henni upp í Intune, og gerir það aftur aðeins þegar source_sha256 breytist. Úthlutanir eru í sama resource: öll tæki, allir leyfishafar, hópur eða undanþáguhópur, hvort og eitt með include- eða exclude-síu.locals { agent_package = "${path.module}/packages/contoso-agent-4.2.1.intunewin" agent_meta = provider::microsoft365wp::parse_intunewin_metadata(local.agent_package)}resource "microsoft365wp_mobile_app" "contoso_agent" { display_name = "Contoso Agent" publisher = "Contoso" win32_lob = { file_name = local.agent_meta.file_name setup_file_path = local.agent_meta.setup_file install_command_line = "setup.exe /quiet" uninstall_command_line = "setup.exe /uninstall /quiet" detection_rules = [{ filesystem = { detection_type = "exists" path = "C:\\Program Files\\Contoso\\Agent" file_or_folder_name = "agent.exe" } }] source_file = local.agent_package source_sha256 = filesha256(local.agent_package) } assignments = [{ target = { group = { group_id = "3d9b2f61-7a4e-4c18-9e05-6f2a8b1c4d93" } } settings = { win32_lob = {} } }]}
microsoft365wp_mobile_app.contoso_agent: Refreshing state... [id=5e0c8a17-2d94-4b6f-a3e1-9c7d0f2b8a46]No changes. Your infrastructure matches the configuration.
# microsoft365wp_mobile_app.contoso_agent will be updated in-place ~ resource "microsoft365wp_mobile_app" "contoso_agent" { ~ win32_lob = { ~ source_file = "./packages/contoso-agent-4.2.1.intunewin" -> "./packages/contoso-agent-4.3.0.intunewin" ~ source_sha256 = "9f2c41d0…" -> "b71e05aa…" # (6 unchanged attributes hidden) } # (4 unchanged attributes hidden) }Plan: 0 to add, 1 to change, 0 to destroy.
Dæmagögn.
Windows
Win32 (.intunewin), MSI, APPX/MSIX, Microsoft Store (nýr, í gegnum WinGet), Microsoft Store (eldri), Microsoft Edge, Microsoft 365 Apps, veftengar.
macOS
DMG, PKG, Microsoft Edge, Microsoft Defender, Microsoft 365 Apps, vefklippur.
iOS og iPadOS
App Store-forrit, stýrð iOS Store-forrit, vefklippur.
Android
Google Play Store-forrit, stýrð Google Play-forrit, stýrð Android Store-forrit.
Hvaða vettvangur sem er
Veftengar.
Margir tenants úr einni geymslu
tenant_id, skrifa grunnlínuna sem module og kalla á hana einu sinni á tenant. Sérhver blokk skráir sig inn sjálfstætt, þannig að sérhver tenant getur haft sinn eigin service principal með sínar eigin heimildir.- Munur milli tenanta er module-breytur, sjáanlegar í yfirferðinni.
- Nýr tenant er ein provider-blokk, eitt module-kall og einn planur.
provider "microsoft365wp" { alias = "contoso" tenant_id = "8a1f3c2e-5b7d-4e90-a6c4-2d9e7f1b0c35"}provider "microsoft365wp" { alias = "fabrikam" tenant_id = "e4c27b91-0d3a-4f86-b5e2-7a1c9d0f6b48"}module "baseline_contoso" { source = "./baseline" providers = { microsoft365wp = microsoft365wp.contoso }}module "baseline_fabrikam" { source = "./baseline" providers = { microsoft365wp = microsoft365wp.fabrikam } allow_byod = true}
Dæmagögn.
Hvernig Microsoft Graph throttling er meðhöndlað
Microsoft Graph takmarkar hversu margar beiðnir client má senda, og planur yfir stóran tenant sendir margar. Provider-inn bíður og reynir aftur á eigin spýtur.
Tilraunir
- Tilraunir á beiðni
- allt að 10
- Bið milli tilrauna
- 3 til 60 sekúndur
- Retry-After sem er núll
- Teygt að backoff-tímanum, því Microsoft Graph svarar oft þannig og tafarlaus endurtilraun hjálpar sjaldan
Byrjaðu með quickstart-inn.
Klónaðu hann, beindu honum að prófunartenant og keyrðu plan. Community Edition er ókeypis fyrir fyrirtæki með allt að 99 notendur.