Cómo importar políticas de acceso condicional
Queremos importar políticas de acceso condicional al inquilino de Microsoft Entra. Ahora podemos restaurar las políticas de acceso condicional utilizando el centro de administración de Microsoft Entra. Pero esa es una única carga de política de acceso condicional. ¿Qué sucede si tiene varias políticas de acceso condicional que desea importar? PowerShell es la forma más fácil y rápida. En este artículo, aprenderá cómo importar políticas de acceso condicional desde un archivo JSON a Microsoft Entra con Microsoft Graph PowerShell.
Antes de que empieces
Debe tener las políticas de acceso condicional en archivos JSON porque el script revisará los archivos JSON y los importará al inquilino de Microsoft Entra.
Si ya tiene los archivos JSON, está listo para comenzar. De lo contrario, lea más sobre Cómo exportar políticas de acceso condicional.
Instalar Microsoft Graph PowerShell
Antes de que podamos continuar y restaurar todas las políticas de acceso condicional en el inquilino de Microsoft Entra, debemos instalar Microsoft Graph PowerShell.
Inicie Windows PowerShell como administrador y ejecute los siguientes comandos.
Install-Module Microsoft.Graph -ForceInstall-Module Microsoft.Graph.Beta -AllowClobber -ForceImportante: Instale siempre los módulos Microsoft Graph PowerShell y Microsoft Graph Beta PowerShell. Esto se debe a que algunos cmdlets aún no están disponibles en la versión final y no funcionarán. Actualice ambos módulos a la última versión antes de ejecutar un cmdlet o script para evitar errores y resultados incorrectos.
Ahora que tenemos instalado el módulo SDK de Microsoft Graph PowerShell, podemos pasar al siguiente paso.
Preparar el script de PowerShell Import-CAPolicies
Cree dos carpetas en la unidad (C:):
- Temp
- Scripts
Descargue y coloque el script de PowerShell Import-CAPolicies.ps1 en la carpeta C:\scripts. La secuencia de comandos importará los archivos JSON que están presentes en la carpeta C:\temp al inquilino de Microsoft Entra.
Asegúrese de que el archivo esté desbloqueado para evitar errores al ejecutar el script. Lea más en el artículo Error sin firma digital al ejecutar el script de PowerShell.
Otra opción es copiar y pegar el siguiente código en el Bloc de notas. Asígnele el nombre Import-CAPolicies.ps1 y colóquelo en la carpeta C:\scripts.
<#
.SYNOPSIS
Import-CAPolicies.ps1
.DESCRIPTION
Import Conditional Access policies from JSON files for restore purposes.
.LINK
www.alitajran.com/import-conditional-access-policies/
.NOTES
Written by: ALI TAJRAN
Website: www.alitajran.com
LinkedIn: linkedin.com/in/alitajran
.CHANGELOG
V1.00, 11/19/2023 - Initial version
#>
# Connect to Microsoft Graph
Connect-MgGraph -Scopes "Policy.Read.All", "Policy.ReadWrite.ConditionalAccess", "Application.Read.All"
# Define the path to the directory containing your JSON files
$jsonFilesDirectory = "C:\temp\"
# Get all JSON files in the directory
$jsonFiles = Get-ChildItem -Path $jsonFilesDirectory -Filter *.json
# Check if there are no JSON files
if ($jsonFiles.Count -eq 0) {
Write-Host "No JSON files found in the directory to import." -ForegroundColor Yellow
}
else {
# Loop through each JSON file
foreach ($jsonFile in $jsonFiles) {
try {
# Read the content of the JSON file and convert it to a PowerShell object
$policyJson = Get-Content -Path $jsonFile.FullName | ConvertFrom-Json
# Create a custom object
$policyObject = [PSCustomObject]@{
displayName = $policyJson.displayName
conditions = $policyJson.conditions
grantControls = $policyJson.grantControls
sessionControls = $policyJson.sessionControls
state = $policyJson.state
}
# Convert the custom object to JSON with a depth of 10
$policyJsonString = $policyObject | ConvertTo-Json -Depth 10
# Create the Conditional Access policy using the Microsoft Graph API
$null = New-MgIdentityConditionalAccessPolicy -Body $policyJsonString
# Print a success message
Write-Host "Policy created successfully: $($policyJson.displayName) " -ForegroundColor Green
}
catch {
# Print an error message if an exception occurs
Write-Host "An error occurred while creating the policy: $_" -ForegroundColor Red
}
}
}Así es como se ve.
Preparar archivos JSON de acceso condicional
Asegúrese de que todos los archivos JSON de políticas de CA estén presentes en C:\temp.
Eliminar todas las políticas de acceso condicional con PowerShell
Tenemos muchas políticas de CA disponibles en nuestro inquilino de Microsoft Entra y queremos eliminarlas. Supongamos que desea conservar las políticas que ya están presentes o que ya están vacías, puede omitir este paso.
Eliminemos todas las políticas de CA con el script de PowerShell Remove-CApolicies.ps1.
<#
.SYNOPSIS
Remove-CAPolicies.ps1
.DESCRIPTION
Remove all Conditional Access policies from Microsoft Entra.
.LINK
www.alitajran.com/import-conditional-access-policies/
.NOTES
Written by: ALI TAJRAN
Website: www.alitajran.com
LinkedIn: linkedin.com/in/alitajran
.CHANGELOG
V1.00, 11/19/2023 - Initial version
#>
# Connect to Microsoft Graph
Connect-MgGraph -Scopes "Policy.Read.All", "Policy.ReadWrite.ConditionalAccess", "Application.Read.All"
# Get all policies
$policies = Get-MgIdentityConditionalAccessPolicy -All
# Check if there are any policiesX
if ($policies.Count -eq 0) {
Write-Host "There are no Conditional Access policies to delete." -ForegroundColor Yellow
}
else {
# Loop through each policy and delete it
foreach ($policy in $policies) {
Remove-MgIdentityConditionalAccessPolicy -ConditionalAccessPolicyId $policy.Id
Write-Host "Policy deleted successfully: $($policy.DisplayName)" -ForegroundColor Green
}
}Ahora que no hay más políticas de acceso condicional en el inquilino de Microsoft Entra, agreguemos las políticas de CA importando los archivos JSON.
Ejecute el script de PowerShell para importar políticas de acceso condicional
Ejecute el script de PowerShell Import-CAPolicies.ps1 para obtener todas las políticas JSON de acceso condicional en la carpeta C:\temp e importarlas al inquilino de Microsoft Entra.
C:\scripts\Import-CAPolicies.ps1Nota: Si ya tiene las políticas de CA en Microsoft Entra, no las sobrescribirá ni comprobará si la política está presente. Agregará la política con el mismo nombre y podrás reconocerla cuando mires la Fecha de creación. Puede eliminar las políticas que ya están presentes o deshabilitarlas.
El resultado muestra:
Policy created successfully: Block legacy authentication
Policy created successfully: Require multifactor authentication for all usersVerificar las políticas de acceso condicional
Verifique que las políticas de acceso condicional se importen correctamente con PowerShell. Ejecute el cmdlet Get-MgIdentityConditionalAccessPolicy.
Get-MgIdentityConditionalAccessPolicy -AllAsí es como se ve en nuestro ejemplo.
Id CreatedDateTime Description DisplayName ModifiedDateTime State
-- --------------- ----------- ----------- ---------------- -----
a800fccb-1912-45b6-ad7b-634e60a33c6c 11/19/2023 5:14:01 PM Block legacy authentication disabled
6bfb32e1-92cf-40fb-8fce-0143bcb39584 11/19/2023 5:14:02 PM Require multifactor authentication for all users enabledOtra forma de verificar que las políticas de acceso condicional se importen correctamente es con el centro de administración de Microsoft Entra:
Inicie sesión en el centro de administración de Microsoft Entra
Expandir Identidad > Protección
Haga clic en Acceso condicional
-
Seleccione Ver todas las políticas
En nuestro ejemplo, hay dos políticas de CA. Una de las políticas está habilitada y la otra está deshabilitada.
¡Todo luce genial!
¿Le ayudó esto a restaurar las políticas de acceso condicional desde archivos JSON al inquilino de Microsoft Entra?
Leer más: Obtenga el estado MFA en Microsoft Entra y PowerShell »
Conclusión
Aprendió a importar políticas de acceso condicional con PowerShell. Es más rápido importar las políticas de CA con PowerShell si tiene más de una política de CA. Primero, conéctese a Microsoft Graph PowerShell y ejecute el script Import-CAPolicies PowerShell. Después de eso, todas las políticas de acceso condicional y sus configuraciones están disponibles en Microsoft Entra.
Disfrutaste este artículo? También te puede interesar Exportar usuarios de Azure AD a CSV con PowerShell. No olvides seguirnos y compartir este artículo.


