Uso de identidades administradas de Azure para conectarse a PowerShell de Exchange Online
Con el módulo Exchange Online PowerShell V3, puede conectarse a Exchange Online PowerShell mediante una identidad administrada de Azure asignada por el usuario o asignada por el sistema. Para obtener más información sobre las identidades administradas, consulte ¿Qué son las identidades administradas para los recursos de Azure?.
A diferencia de otros métodos de conexión que usan el módulo de PowerShell de Exchange Online, no puede ejecutar los comandos de conexión en una sesión de Windows PowerShell en el equipo local. En su lugar, se conecta en el contexto del recurso de Azure asociado a la identidad administrada (por ejemplo, una cuenta de Azure Automation o una máquina virtual de Azure).
En el resto de este artículo se explica cómo conectarse mediante la identidad administrada y los requisitos para crear y configurar los recursos adecuados con identidades administradas en Azure.
Nota:
En PowerShell de Exchange Online, no puede usar los procedimientos de este artículo con los siguientes cmdlets de grupo de Microsoft 365:
Puede usar Microsoft Graph para reemplazar la mayor parte de la funcionalidad de esos cmdlets. Para obtener más información, consulte Trabajar con grupos en Microsoft Graph.
Las conexiones de API REST en el módulo V3 requieren los módulos PowerShellGet y PackageManagement. Para obtener más información, vea PowerShellGet para conexiones basadas en REST en Windows.
Conexión a Exchange Online PowerShell mediante la identidad administrada asignada por el sistema
Después de crear y configurar una identidad administrada asignada por el sistema, use la sintaxis siguiente para conectarse a Exchange Online PowerShell:
Connect-ExchangeOnline -ManagedIdentity -Organization <YourDomain>.onmicrosoft.com
Por ejemplo:
Connect-ExchangeOnline -ManagedIdentity -Organization contoso.onmicrosoft.com
En el resto de esta sección se explica cómo conectarse mediante recursos de Azure admitidos. Por ejemplo:
- Runbook de PowerShell en la cuenta de Azure Automation con identidad administrada asignada por el sistema.
- Una máquina virtual de Azure con una identidad administrada asignada por el sistema.
Una vez conectado el recurso, los cmdlets y parámetros de PowerShell de Exchange Online están disponibles en función del rol de RBAC que asignó en el paso 5: Asignación de roles de Microsoft Entra a la identidad administrada.
Conexión a Exchange Online PowerShell mediante cuentas de Azure Automation con identidad administrada asignada por el sistema
Cree un runbook de PowerShell en la cuenta de Automation. Para obtener instrucciones, consulte Administración de runbooks en Azure Automation.
El primer comando del runbook de PowerShell debe ser el Connect-ExchangeOnline...
comando tal y como se describe al principio de esta sección. Por ejemplo:
Connect-ExchangeOnline -ManagedIdentity -Organization contoso.onmicrosoft.com
Después, como prueba, puede empezar con un comando sencillo y de bajo impacto en el runbook antes de pasar a comandos o scripts más complejos. Por ejemplo:
Get-AcceptedDomain | Format-Table Name
Después de crear, guardar y publicar correctamente el runbook de PowerShell, siga estos pasos para ejecutarlo en el futuro:
- En la página Cuentas de Automation de https://portal.azure.com/#view/HubsExtension/BrowseResource/resourceType/Microsoft.Automation%2FAutomationAccounts, seleccione la cuenta de Automation.
- En el control flotante de detalles que se abre, empiece a escribir "Runbooks" en el Cuadro de búsqueda y, a continuación, seleccione Runbooks en los resultados.
- En el control flotante Runbooks que se abre, seleccione el runbook.
- En la página de detalles del runbook, seleccione Iniciar.
Conexión a Exchange Online PowerShell mediante máquinas virtuales de Azure con identidad administrada asignada por el sistema
En una ventana de Windows PowerShell en la máquina virtual de Azure, use el comando como se describe al principio de esta sección. Por ejemplo:
Connect-ExchangeOnline -ManagedIdentity -Organization contoso.onmicrosoft.com
Conexión a Exchange Online PowerShell mediante la identidad administrada asignada por el usuario
Después de crear y configurar una identidad administrada asignada por el usuario, use la sintaxis siguiente para conectarse a Exchange Online PowerShell:
Connect-ExchangeOnline -ManagedIdentity -Organization <YourDomain>.onmicrosoft.com -ManagedIdentityAccountId <UserAssignedManagedIdentityClientIdValue>
Obtiene el <valor UserAssignedManagedIdentityClientIdValue> del paso 3: Almacenar la identidad administrada asignada por el usuario en una variable.
En el resto de esta sección se explica cómo conectarse mediante recursos de Azure admitidos. Por ejemplo:
- Runbook de PowerShell en la cuenta de Azure Automation con identidad administrada asignada por el usuario.
- Una máquina virtual de Azure con una identidad administrada asignada por el usuario.
Una vez conectado el recurso, los cmdlets y parámetros de PowerShell de Exchange Online están disponibles en función del rol RBAC que asignó en Paso 6: Asignar roles de Microsoft Entra a la identidad administrada.
Conexión a Exchange Online PowerShell mediante cuentas de Azure Automation con identidades administradas asignadas por el usuario
Cree un runbook de PowerShell en la cuenta de Automation. Para obtener instrucciones, consulte Administración de runbooks en Azure Automation.
El primer comando del runbook de PowerShell debe ser el Connect-ExchangeOnline...
comando tal y como se describe al principio de esta sección. Por ejemplo:
Connect-ExchangeOnline -ManagedIdentity -Organization contoso.onmicrosoft.com -ManagedIdentityAccountId bf6dcc76-4331-4942-8d50-87ea41d6e8a1
El valor managedIdentityAccount se obtiene del paso 3: almacenar la identidad administrada asignada por el usuario en una variable.
Después, como prueba, puede empezar con un comando sencillo y de bajo impacto en el runbook antes de pasar a comandos o scripts más complejos. Por ejemplo:
Get-AcceptedDomain | Format-Table Name
Una vez que haya creado correctamente el runbook de PowerShell, siga estos pasos para ejecutarlo en el futuro:
- En la página Cuentas de Automation de https://portal.azure.com/#view/HubsExtension/BrowseResource/resourceType/Microsoft.Automation%2FAutomationAccounts, seleccione la cuenta de Automation.
- En el control flotante de detalles que se abre, empiece a escribir "Runbooks" en el Cuadro de búsqueda y, a continuación, seleccione Runbooks en los resultados.
- En el control flotante Runbooks que se abre, seleccione el runbook.
- En la página de detalles del runbook, seleccione Iniciar.
Conexión a Exchange Online PowerShell mediante máquinas virtuales de Azure con identidades administradas asignadas por el sistema
En una ventana de Windows PowerShell en la máquina virtual de Azure, use el comando como se describe al principio de esta sección. Por ejemplo:
$MI_ID = (Get-AzUserAssignedIdentity -Name "ContosoMI1" -ResourceGroupName "ContosoRG2").ClientId
Connect-ExchangeOnline -ManagedIdentity -Organization contoso.onmicrosoft.com -ManagedIdentityAccountId $MI_ID
Creación y configuración de una identidad administrada asignada por el sistema
Estos pasos son:
- (Opcional) Creación de un recurso con identidad administrada asignada por el sistema
- Almacenar la identidad administrada asignada por el sistema en una variable
- Agregar el módulo de PowerShell de Exchange Online a la identidad administrada
- Conceda al API Exchange.ManageAsApp permiso para que la identidad administrada llame a Exchange Online.
- Asignación de roles de Microsoft Entra a la identidad administrada
Después de completar los pasos, está listo para conectarse a Exchange Online PowerShell mediante la identidad administrada asignada por el sistema.
Paso 1: Creación de un recurso con identidad administrada asignada por el sistema
Si va a usar un recurso existente que ya está configurado con la identidad administrada asignada por el sistema, puede ir al paso siguiente. Se admiten los siguientes tipos de recursos:
- Cuentas de Azure Automation
- Máquinas virtuales de Azure (VM)
Creación de cuentas de Azure Automation con identidades administradas asignadas por el sistema
Cree una cuenta de Automation configurada para la identidad administrada asignada por el sistema mediante las instrucciones de Inicio rápido: Creación de una cuenta de Automation mediante Azure Portal.
Las cuentas de Automation están disponibles en la página Cuentas de Automation en https://portal.azure.com/#view/HubsExtension/BrowseResource/resourceType/Microsoft.Automation%2FAutomationAccounts.
Al crear la cuenta de Automation, la identidad administrada asignada por el sistema se selecciona de forma predeterminada en la pestaña Avanzadas de los detalles de la cuenta de Automation.
Para habilitar la identidad administrada asignada por el sistema en una cuenta de Automation existente, consulte Habilitación de la identidad administrada asignada por el sistema.
Para crear la cuenta de Automation con identidad administrada asignada por el sistema en Azure PowerShell, siga estos pasos:
Conéctese a Azure Az PowerShell mediante la ejecución del siguiente comando:
Connect-AzAccount
Si es necesario, cree un grupo de recursos de Azure para usarlo con la cuenta de Automation mediante la ejecución del siguiente comando:
New-AzResourceGroup -Name "<ResourceGroupName>" -Location "<Location>"
- <ResourceGroupName> es el nombre único del nuevo grupo de recursos.
-
<La ubicación> es un valor válido del comando :
Get-AzLocation | Format-Table Name
.
Por ejemplo:
New-AzResourceGroup -Name "ContosoRG" -Location "West US"
Para obtener instrucciones completas, consulte Creación de grupos de recursos.
Use la sintaxis siguiente para crear una cuenta de Automation con una identidad administrada asignada por el sistema:
New-AzAutomationAccount -Name "<AutomationAccountName>" -ResourceGroupName "<ResourceGroupName>" -Location "<Location>" -AssignSystemIdentity
- <AutomationAccountName> es el nombre único de la nueva cuenta de Automation.
-
<ResourceGroupName> es el nombre del grupo de recursos existente que desea usar. Los valores válidos están visibles en la salida del comando:
Get-AzResourceGroup
. -
<La ubicación> es un valor válido del comando :
Get-AzLocation | Format-Table Name
.
Por ejemplo:
New-AzAutomationAccount -Name "ContosoAzAuto1" -ResourceGroupName "ContosoRG" -Location "West US" -AssignSystemIdentity
Para obtener información detallada sobre la sintaxis y los parámetros, consulte New-AzAutomationAccount.
Configuración de máquinas virtuales de Azure con identidades administradas asignadas por el sistema
Para obtener instrucciones, consulte los artículos siguientes:
Identidad administrada asignada por el sistema en Azure Portal
Identidad administrada asignada por el sistema en PowerShell
Paso 2: Almacenar la identidad administrada asignada por el sistema en una variable
Use la siguiente sintaxis para almacenar el valor del identificador (GUID) de la identidad administrada en una variable que usará en los próximos pasos de Azure Az PowerShell.
$MI_ID = (Get-AzADServicePrincipal -DisplayName "<ResourceName>").Id
Donde <ResourceName> es el nombre de la cuenta de Azure Automation o la máquina virtual de Azure. Por ejemplo:
$MI_ID = (Get-AzADServicePrincipal -DisplayName "ContosoAzAuto1").Id
Para comprobar que la variable se capturó correctamente, ejecute el comando $MI_ID
. La salida debe ser un valor GUID (por ejemplo, 9f164909-3007-466e-a1fe-28d20b16e2c2).
Para obtener información detallada sobre la sintaxis y los parámetros, vea Get-AzADServicePrincipal.
Paso 3: Agregar el módulo de PowerShell de Exchange Online a la identidad administrada
Adición del módulo de PowerShell de Exchange Online a cuentas de Azure Automation con identidades administradas asignadas por el sistema
Sugerencia
Si el siguiente procedimiento de Azure Portal no funciona automáticamente, pruebe el comando New-AzAutomationModule en Azure PowerShell que se describe después del procedimiento de Azure Portal.
En la página Cuentas de Automation de https://portal.azure.com/#view/HubsExtension/BrowseResource/resourceType/Microsoft.Automation%2FAutomationAccounts, seleccione la cuenta de Automation.
En el control flotante de detalles que se abre, empiece a escribir "Módulos" en el Cuadro de búsqueda y, a continuación, seleccione Módulos en los resultados.
En el control flotante Módulos que se abre, seleccione Agregue un módulo.
En la página Agregar un módulo que se abre, configure los siguientes valores:
- Cargar un archivo de módulo: seleccione Examinar desde la galería.
-
Archivo de módulo de PowerShell: seleccione Haga clic aquí para examinar desde la galería:
- En la página Examinar galería que se abre, empiece a escribir "ExchangeOnlineManagement" en el Cuadro de búsqueda , presione Entrar y, a continuación, seleccione ExchangeOnlineManagement en los resultados.
- En la página de detalles que se abre, seleccione Seleccionar para volver a la página Agregar un módulo .
- Versión en tiempo de ejecución: seleccione 5.1 o 7.1 (versión preliminar). Para agregar ambas versiones, repita los pasos de esta sección para agregar y seleccione la otra versión en tiempo de ejecución del módulo.
Cuando haya terminado, seleccione Importar.
De nuevo en el control flotante Módulos , empiece a escribir "ExchangeOnlineManagement" en el Cuadro de búsqueda para ver el valor de Estado . Una vez completada la importación del módulo, el valor es Disponible.
Para agregar el módulo a la cuenta de Automation en Azure PowerShell, use la sintaxis siguiente:
New-AzAutomationModule -ResourceGroupName "<ResourceGroupName>" -AutomationAccountName "<AutomationAccountName>" -Name ExchangeOnlineManagement -ContentLinkUri https://www.powershellgallery.com/packages/ExchangeOnlineManagement/<LatestModuleVersion>
- <ResourceGroupName> es el nombre del grupo de recursos que ya está asignado a la cuenta de Automation.
- <AutomationAccountName> es el nombre de la cuenta de Automation.
-
<LatestModuleVersion> es la versión actual del módulo ExchangeOnlineManagement. Para ver la versión más reciente de disponibilidad general (GA; no versión preliminar) del módulo, ejecute el siguiente comando en Windows PowerShell:
Find-Module ExchangeOnlineManagement
. Para ver la versión preliminar más reciente, ejecute el siguiente comando:Find-Module ExchangeOnlineManagement -AllowPrerelease
. - Actualmente, los procedimientos de PowerShell no le ofrecen una opción para la versión en tiempo de ejecución (es la 5.1).
Por ejemplo:
New-AzAutomationModule -ResourceGroupName "ContosoRG" -AutomationAccountName "ContosoAzAuto1" -Name ExchangeOnlineManagement -ContentLinkUri https://www.powershellgallery.com/packages/ExchangeOnlineManagement/3.1.0
Para comprobar que el módulo se importó correctamente, ejecute el siguiente comando:
Get-AzAutomationModule -ResourceGroupName ContosoRG -AutomationAccountName ContosoAzAuto1 -Name ExchangeOnlineManagement
Durante la importación, la propiedad ProvisioningState tendrá el valor Creating. Una vez completada la importación del módulo, el valor cambiará a Correcto.
Para obtener información detallada sobre la sintaxis y los parámetros, vea New-AzAutomationModule.
Incorporación del módulo de PowerShell de Exchange Online a máquinas virtuales de Azure con identidades administradas asignadas por el sistema
Instale el módulo de PowerShell de Exchange Online en la máquina virtual de Azure. Para obtener instrucciones, consulte Instalación y mantenimiento del módulo de PowerShell de Exchange Online.
Paso 4: Conceder permiso a la API Exchange.ManageAsApp para que la identidad administrada llame a Exchange Online
Los procedimientos de este paso requieren el SDK de PowerShell de Microsoft Graph. Para obtener instrucciones de instalación, consulte Instalación del SDK de PowerShell de Microsoft Graph.
Ejecute el siguiente comando para conectarse a Microsoft Graph PowerShell con los permisos necesarios:
Connect-MgGraph -Scopes AppRoleAssignment.ReadWrite.All,Application.Read.All
Si se abre un cuadro de diálogo Permisos solicitados , seleccione Consentimiento en nombre de su organización y, a continuación, haga clic en Aceptar.
Ejecute el siguiente comando para comprobar que el recurso de Office 365 Exchange Online está disponible en Microsoft Entra ID:
Get-MgServicePrincipal -Filter "AppId eq '00000002-0000-0ff1-ce00-000000000000'"
Si el comando no devuelve ningún resultado, el siguiente paso no funcionará. Consulte la subsección al final de esta sección para corregir el problema antes de continuar.
Ejecute los siguientes comandos para conceder a la API Exchange.ManageAsApp permiso para que la identidad administrada llame a Exchange Online:
$AppRoleID = "dc50a0fb-09a3-484d-be87-e023b12c6440" $ResourceID = (Get-MgServicePrincipal -Filter "AppId eq '00000002-0000-0ff1-ce00-000000000000'").Id New-MgServicePrincipalAppRoleAssignment -ServicePrincipalId $MI_ID -PrincipalId $MI_ID -AppRoleId $AppRoleID -ResourceId $ResourceID
-
$MI_ID
es el valor id. (GUID) de la identidad administrada que almacenó en una variable en el paso 2. -
$AppRoleID
es el valor del identificador (GUID) del permiso de API Exchange.ManageAsApp que es el mismo en todas las organizaciones. -
$ResourceID
es el valor de Id. (GUID) del recurso de Office 365 Exchange Online en Microsoft Entra ID. El valor de AppId es el mismo en todas las organizaciones, pero el valor id. es diferente en todas las organizaciones.
-
Para obtener información detallada sobre la sintaxis y los parámetros, consulte los artículos siguientes:
Qué hacer si el recurso de Office 365 Exchange Online no está disponible en microsoft entra id.
Si el comando siguiente no devuelve ningún resultado:
Get-MgServicePrincipal -Filter "AppId eq '00000002-0000-0ff1-ce00-000000000000'"
Siga estos pasos:
- Registre una aplicación en Microsoft Entra ID como se describe en Paso 1: Registrar la aplicación en Microsoft Entra ID.
- Asigne el permiso Exchange.ManageAsApp API de Office 365 Exchange Online > a la aplicación mediante el método "Modificar el manifiesto de la aplicación", tal como se describe en Paso 2: Asignar permisos de API a la aplicación.
Después de realizar estos pasos, vuelva a ejecutar el comando Get-MgServicePrincipal para confirmar que el recurso de Office 365 Exchange Online está disponible en Microsoft Entra ID.
Para obtener más información, ejecute el siguiente comando para comprobar que el permiso de API Exchange.ManageAsApp (dc50a0fb-09a3-484d-be87-e023b12c6440
) está disponible en el recurso de Office 365 Exchange Online:
Get-MgServicePrincipal -Filter "AppId eq '00000002-0000-0ff1-ce00-000000000000'" | Select-Object -ExpandProperty AppRoles | Format-Table Value,Id
Ahora que el recurso de Office 365 Exchange Online está disponible, vuelva al paso 4.3 de esta sección.
Paso 5: Asignación de roles de Microsoft Entra a la identidad administrada
Los roles de Microsoft Entra admitidos se describen en la lista siguiente:
- Administrador de cumplimiento
- Administrador de Exchange¹
- Administrador de destinatarios de Exchange
- Administrador global¹ ²
- Lector global
- Administrador del departamento de soporte técnico
- Administrador de seguridad¹
- Lector de seguridad
¹ Los roles Administrador global y Administrador de Exchange proporcionan los permisos necesarios para cualquier tarea de Exchange Online PowerShell. Por ejemplo:
- Administración de destinatarios.
- Características de seguridad y protección. Por ejemplo, contra correo no deseado, antimalware, antiphishing y los informes asociados.
El rol Administrador de seguridad no tiene los permisos necesarios para esas mismas tareas.
² Microsoft recomienda usar roles con los permisos más mínimos. El uso de cuentas con permisos inferiores ayuda a mejorar la seguridad de su organización. Administrador global es un rol con privilegios elevados que debe limitarse a escenarios de emergencia cuando no se puede usar un rol existente.
Para obtener instrucciones generales sobre cómo asignar roles en Microsoft Entra ID, consulte Asignación de roles de Microsoft Entra a los usuarios.
En el Centro de administración de Microsoft Entra en https://portal.azure.com/, empiece a escribir roles y administradores en el cuadro Buscar de la parte superior de la página y, a continuación, seleccione Roles y administradores de Microsoft Entra en los resultados de la sección Servicios .
O bien, para ir directamente a la página Roles y administradores de Microsoft Entra , use https://portal.azure.com/#view/Microsoft_AAD_IAM/AllRolesBlade.
En la página Roles y administradores , busque y seleccione uno de los roles admitidos haciendo clic en el nombre del rol (no en la casilla) de los resultados. Por ejemplo, busque y seleccione el rol de administrador de Exchange .
En la página Asignaciones que se abre, seleccione Agregar asignaciones.
En el control flotante Agregar asignaciones que se abre, busque y seleccione la identidad administrada que creó o identificó en el paso 1.
Cuando termine, seleccione Agregar.
De nuevo en la página Asignaciones , compruebe que el rol se ha asignado a la identidad administrada.
Para asignar un rol a la identidad administrada en Microsoft Graph PowerShell, siga estos pasos:
Ejecute el siguiente comando para conectarse a Microsoft Graph PowerShell con los permisos necesarios:
Connect-MgGraph -Scopes RoleManagement.ReadWrite.Directory
Si se abre un cuadro de diálogo Permisos solicitados , seleccione Consentimiento en nombre de su organización y, a continuación, haga clic en Aceptar.
Use la sintaxis siguiente para asignar el rol Microsoft Entra necesario a la identidad administrada:
$RoleID = (Get-MgRoleManagementDirectoryRoleDefinition -Filter "DisplayName eq '<Role Name>'").Id New-MgRoleManagementDirectoryRoleAssignment -PrincipalId $MI_ID -RoleDefinitionId $RoleID -DirectoryScopeId "/"
- <Nombre del> rol es el nombre del rol de Microsoft Entra como se mencionó anteriormente en esta sección.
-
$MI_ID
es el valor id. (GUID) de la identidad administrada que almacenó en una variable en el paso 2.
Por ejemplo:
$RoleID = (Get-MgRoleManagementDirectoryRoleDefinition -Filter "DisplayName eq 'Exchange Administrator'").Id New-MgRoleManagementDirectoryRoleAssignment -PrincipalId $MI_ID -RoleDefinitionId $RoleID -DirectoryScopeId "/"
Para obtener información detallada sobre la sintaxis y los parámetros, consulte los artículos siguientes:
Creación y configuración de una identidad administrada asignada por el usuario
Estos pasos son:
- (Opcional) Creación de una identidad administrada asignada por el usuario
- (Opcional) Creación de un recurso con identidad administrada asignada por el usuario
- Almacenar la identidad administrada asignada por el usuario en una variable
- Agregar el módulo de PowerShell de Exchange Online a la identidad administrada
- Conceda al API Exchange.ManageAsApp permiso para que la identidad administrada llame a Exchange Online.
- Asignación de roles de Microsoft Entra a la identidad administrada
Después de completar los pasos, estará listo para conectarse a PowerShell de Exchange Online mediante la identidad administrada asignada por el usuario.
Paso 1: Creación de una identidad administrada asignada por el usuario
Si ya tiene una identidad administrada asignada por el usuario existente que va a usar, puede ir al paso siguiente para crear un recurso con la identidad administrada asignada por el usuario.
De lo contrario, cree la identidad administrada asignada por el usuario en Azure Portal mediante las instrucciones de Creación de una identidad administrada asignada por el usuario.
Para crear la identidad administrada asignada por el usuario en Azure PowerShell, siga estos pasos:
Conéctese a Azure Az PowerShell mediante la ejecución del siguiente comando:
Connect-AzAccount
Si es necesario, cree un grupo de recursos de Azure para usarlo con la identidad administrada asignada por el usuario mediante la ejecución del siguiente comando:
New-AzResourceGroup -Name "<ResourceGroupName>" -Location "<Location>"
- <ResourceGroupName> es el nombre único del nuevo grupo de recursos.
-
<La ubicación> es un valor válido del comando :
Get-AzLocation | Format-Table Name
.
Por ejemplo:
New-AzResourceGroup -Name "ContosoRG2" -Location "West US"
Para obtener instrucciones completas, consulte Creación de grupos de recursos.
Use la sintaxis siguiente para crear una identidad administrada asignada por el usuario:
New-AzUserAssignedIdentity -Name "<UserAssignedManagedIdentityName>" -ResourceGroupName "<ResourceGroupName>" -Location "<Location>"
- <UserAssignedManagedIdentityName> es el nombre único de la identidad administrada asignada por el usuario.
-
<ResourceGroupName> es el nombre del grupo de recursos existente que desea usar. Los valores válidos están visibles en la salida del comando:
Get-AzResourceGroup
. -
<La ubicación> es un valor válido del comando :
Get-AzLocation | Format-Table Name
.
Por ejemplo:
New-AzUserAssignedIdentity -Name "ContosoMI1" -ResourceGroupName "ContosoRG2" -Location "West US"
Para obtener información detallada sobre la sintaxis y los parámetros, vea New-AzUserAssignedIdentity.
Paso 2: Creación de un recurso con identidad administrada asignada por el usuario
Si va a usar un recurso existente que ya está configurado con una identidad administrada asignada por el usuario, puede ir al paso siguiente. Se admiten los siguientes tipos de recursos:
- Cuentas de Azure Automation
- Azure Virtual Machines (VM)
Creación de cuentas de Azure Automation con identidades administradas asignadas por el usuario
Cree una cuenta de Automation configurada para la identidad administrada asignada por el usuario mediante las instrucciones de Inicio rápido: Creación de una cuenta de Automation mediante Azure Portal.
Las cuentas de Automation están disponibles en la página Cuentas de Automation en https://portal.azure.com/#view/HubsExtension/BrowseResource/resourceType/Microsoft.Automation%2FAutomationAccounts.
Asegúrese de cambiar la selección de identidad administrada en la pestaña Avanzadas a Asignada por el usuario.
Para habilitar la identidad administrada asignada por el usuario en una cuenta de Automation existente, consulte Incorporación de una identidad administrada asignada por el usuario.
Para crear la cuenta de Automation con una identidad administrada asignada por el usuario en Azure PowerShell, siga estos pasos:
Conéctese a Azure Az PowerShell mediante la ejecución del siguiente comando:
Connect-AzAccount
Use la sintaxis siguiente para crear una cuenta de Automation con una identidad administrada asignada por el usuario:
$UAMI = (Get-AzUserAssignedIdentity -Name "<UserAssignedMI>" -ResourceGroupName "<MIResourceGroupName>").Id New-AzAutomationAccount -Name "<AutomationAccountName>" -ResourceGroupName "<ResourceGroupName>" -Location "<Location>" -AssignUserIdentity $UAMI
- <UserAssignedMI> es el nombre de la identidad administrada asignada por el usuario que desea usar.
-
<MIResourceGroupName> es el nombre del grupo de recursos asignado a la identidad administrada asignada por el usuario. Los valores válidos están visibles en la salida del comando:
Get-AzResourceGroup
. - <AutomationAccountName> es el nombre único de la nueva cuenta de Automation.
- <ResourceGroupName> es el nombre del grupo de recursos que desea usar, que podría ser el mismo valor <que MIResourceGroupName>.
-
<La ubicación> es un valor válido del comando :
Get-AzLocation | Format-Table Name
.
Por ejemplo:
$UAMI = (Get-AzUserAssignedIdentity -Name "ContosoMI1" -ResourceGroupName "ContosoRG2").Id New-AzAutomationAccount -Name "ContosoAzAuto2" -ResourceGroupName "ContosoRG2" -Location "West US" -AssignUserIdentity $UAMI
Para obtener información detallada sobre la sintaxis y los parámetros, consulte New-AzAutomationAccount.
Configuración de máquinas virtuales de Azure con identidades administradas asignadas por el usuario
Para obtener instrucciones, consulte los artículos siguientes:
- Identidad administrada asignada por el usuario en Azure Portal
- Identidad administrada asignada por el usuario en PowerShell
Paso 3: Almacenar la identidad administrada asignada por el usuario en una variable
Use la sintaxis siguiente en Azure Az PowerShell para almacenar el valor ClientId de la identidad administrada asignada por el usuario en la variable que usará en los pasos siguientes:
$MI_ID = (Get-AzUserAssignedIdentity -Name "<UserAssignedMI>" -ResourceGroupName "<MIResourceGroupName>").ClientId
- <UserAssignedMI> es el nombre de la identidad administrada asignada por el usuario.
- <MIResourceGroupName> es el nombre del grupo de recursos asociado a la identidad administrada asignada por el usuario.
Por ejemplo:
$MI_ID = (Get-AzUserAssignedIdentity -Name "ContosoMI1" -ResourceGroupName "ContosoRG2").ClientId
Para comprobar que la variable se capturó correctamente, ejecute el comando $MI_ID
. La salida debe ser un valor GUID (por ejemplo, bf6dcc76-4331-4942-8d50-87ea41d6e8a1).
Para obtener información detallada sobre la sintaxis y los parámetros, vea Get-AzUserAssignedIdentity.
Paso 4: Agregar el módulo de PowerShell de Exchange Online a la identidad administrada
Los pasos para la identidad administrada asignada por el usuario son los mismos que en el paso 3 de identidad administrada asignada por el sistema.
Nota:
Asegúrese de usar los valores correctos para el nombre del grupo de recursos y el nombre de la cuenta de automation.
Paso 5: Conceder a la API Exchange.ManageAsApp permiso para que la identidad administrada llame a Exchange Online
Los pasos para la identidad administrada asignada por el usuario son los mismos que en el paso 4 de identidad administrada asignada por el sistema.
Aunque los valores de identidad administrada se obtuvieron de forma diferente para los asignados por el usuario frente a los asignados por el sistema, estamos usando el mismo nombre de variable en el comando ($MI_ID
), por lo que el comando funciona para ambos tipos de identidades administradas.
Paso 6: Asignación de roles de Microsoft Entra a la identidad administrada
Los pasos para la identidad administrada asignada por el usuario son básicamente los mismos que en el paso 5 de identidad administrada asignada por el sistema.
En Azure Portal, asegúrese de seleccionar la identidad administrada asignada por el usuario como identidad administrada a la que asignar el rol Microsoft Entra (no la propia cuenta de automation).
El comando de PowerShell funciona para identidades administradas asignadas por el usuario y asignadas por el sistema. Aunque los valores de identidad administrados se obtuvieron de forma diferente para los asignados por el usuario frente a los asignados por el sistema, se usa el mismo nombre de variable en el comando ($MI_ID
).