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
UPPSETNING

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.

  1. Skráðu forrit í Entra ID.

    Einn tenant, engin redirect URI þarf. Skráðu hjá þér application (client) ID og directory (tenant) ID.
  2. 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.
  3. Lýstu yfir provider.

    Stilltu ARM_TENANT_ID og ARM_CLIENT_ID, auk ARM_CLIENT_SECRET fyrir fyrstu prófun. Í pipeline skaltu nota OpenID Connect í staðinn (sjá neðar).
    main.tf
    terraform {  required_providers {    microsoft365wp = {      source = "terraprovider/microsoft365wp"    }  }}provider "microsoft365wp" {}
  4. Plan.

    Skrifaðu eitt resource, til dæmis compliance-stefnu, og keyrðu terraform plan eða tofu plan. Ekkert breytist í tenantinum fyrr en þú beitir planinum.
    compliance.tf
    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.

HEIMILDIR

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.

Microsoft Graph heimildir sem er óskað eftir
HeimildHvað er leyft
DeviceManagementConfiguration.ReadWrite.AllIntune tækjastillingar og stefnur
DeviceManagementApps.ReadWrite.AllIntune forrit
DeviceManagementServiceConfig.ReadWrite.AllIntune þjónustustillingar, svo sem skráning
Policy.ReadWrite.ConditionalAccessConditional Access stefnur
Policy.Read.AllLestur á stefnum fyrirtækisins
Application.ReadWrite.AllForrit
Directory.ReadWrite.AllDirectory-gögn
Group.ReadWrite.AllHópar
User.ReadWrite.AllHeildarsnið notenda
CloudPC.ReadWrite.AllWindows 365 stillingar

Heimild: leiðarvísir provider-ins „Configuring a Service Principal for managing EntraID".

INNSKRÁNING

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ð.

Sömu innskráningarstillingar og azuread provider
AðferðHentar fyrirKveiktu á því
OpenID Connect, GitHub ActionsWorkflows án geymdrar leyndarmálsARM_USE_OIDC=true
OpenID Connect, Azure DevOpsPipelines með service connectionARM_USE_OIDC=true
ARM_ADO_PIPELINE_SERVICE_CONNECTION_ID
OpenID Connect, hvaða útgefandi sem erÖnnur CI-kerfi sem gefa út ID tokenARM_USE_OIDC=true
ARM_OIDC_TOKEN / ARM_OIDC_TOKEN_FILE_PATH
Client certificateRunners sem geyma skírteiniARM_CLIENT_CERTIFICATE / ARM_CLIENT_CERTIFICATE_PATH
Client secretFyrsta prófun, rannsóknaraðstaðaARM_CLIENT_SECRET / ARM_CLIENT_SECRET_FILE_PATH
Managed identityRunners á AzureARM_USE_MSI=true
AKS workload identityRunners á Kubernetes í AzureARM_USE_AKS_WORKLOAD_IDENTITY=true
Azure CLIFartölvan þínkveikt á 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_host or ARM_METADATA_HOSTNAME
DRIFT

Hvað planinn fylgist með

Terraform ber saman stillingar þínar við það sem tenantinn tilkynnir. TerraProvider lætur þá samanburð ná til heils hlutarins: sérhvert attribute sem þú stillir ekki fær sjálfgefið gildi, sótt úr því sem Microsoft-vefgáttirnar senda þegar þú stofnar sama hlutinn þar. Þannig birtist undanþága bætt við stefnu í gáttinni, rofi kveikt í Intune admin center eða stilling breytt með skriftu í næsta plan, hvort sem skráin þín nefnir það eða ekki.
  • 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.
Dæmigögn.
EXISTING TENANT

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.

  1. 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 þá.
  2. Flytja þau inn.

    Tólið kallar á Terraform eða OpenTofu til að flytja inn hvert útflutt hlutfall í stöðuna.
  3. 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.
  4. Flytja þær inn.

    Sama tól, annar áfangi.
  5. 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 á GitHub
FORRIT

Eitt 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 = {} }  }]}

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.

TENANTS

Margir tenants úr einni geymslu

Provider-blokk skráir sig inn í einn tenant. Fyrir marga tenants skaltu lýsa yfir einni blokk á tenant með alias og 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.
main.tf
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.