Búsqueda de sitios web

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 -Force
Install-Module Microsoft.Graph.Beta -AllowClobber -Force

Importante: 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.ps1

Nota: 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 users

Verificar 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 -All

Así 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                  enabled

Otra forma de verificar que las políticas de acceso condicional se importen correctamente es con el centro de administración de Microsoft Entra:

  1. Inicie sesión en el centro de administración de Microsoft Entra

  2. Expandir Identidad > Protección

  3. Haga clic en Acceso condicional

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

Artículos relacionados