Autenticación de solo aplicación para scripts desatendidos en Exchange Online PowerShell y PowerShell de cumplimiento de & de seguridad

Los escenarios de auditoría e informes en Microsoft 365 suelen implicar scripts desatendidos en Exchange Online Powershell y Security & Compliance PowerShell. En el pasado, el inicio de sesión desatendido requería que almacenara el nombre de usuario y la contraseña en un archivo local o en un almacén secreto al que se accedía en tiempo de ejecución. Pero, como todos sabemos, almacenar credenciales de usuario localmente no es una buena práctica de seguridad.

La autenticación basada en certificados (CBA) o la autenticación de solo aplicación como se describe en este artículo admite escenarios de automatización y scripts desatendidos mediante aplicaciones y certificados de Microsoft Entra.

Nota:

¿Cómo funciona?

El módulo de PowerShell de Exchange Online usa la biblioteca de autenticación de Active Directory para capturar un token solo de aplicación mediante el id. de aplicación, el id. de inquilino (organización) y la huella digital del certificado. El objeto de aplicación aprovisionado dentro de Microsoft Entra ID tiene un rol de directorio asignado, que se devuelve en el token de acceso. El control de acceso basado en rol (RBAC) de la sesión se configura mediante la información de rol de directorio que está disponible en el token.

Ejemplos de conexión

Los ejemplos siguientes muestran cómo utilizar el módulo de PowerShell de Exchange Online con la autenticación de solo aplicación:

Importante

En los siguientes comandos de conexión, utilice el dominio principal .onmicrosoft.com de su organización como valor del parámetro Organization .

Los siguientes comandos de conexión tienen muchas de las mismas opciones disponibles que se describen en Conectarse a Exchange Online PowerShell y Conectarse a PowerShell de seguridad & cumplimiento. Por ejemplo:

  • Los entornos de Microsoft 365 GCC High, Microsoft 365 DoD o Microsoft 365 China (operado por 21Vianet) requieren los siguientes parámetros y valores adicionales:

  • Microsoft 365 GCC High

    • Connect-ExchangeOnline -ExchangeEnvironmentName O365USGovGCCHigh
    • Connect-IPPSSession -ConnectionUri https://ps.compliance.protection.office365.us/powershell-liveid/ -AzureADAuthorizationEndpointUri https://login.microsoftonline.us/organizations*
  • Microsoft 365 DoD

    • Connect-ExchangeOnline -ExchangeEnvironmentName O365USGovDoD
    • Connect-IPPSSession -ConnectionUri https://compliance.dod.microsoft.com/powershell-liveid -AzureADAuthorizationEndpointUri https://login.microsoftonline.us/organizations*
  • Microsoft 365 operado por 21Vianet (China)

    • Connect-ExchangeOnline -ExchangeEnvironmentName O365China
    • Connect-IPPSSession -ConnectionUri https://ps.compliance.protection.partner.outlook.cn/powershell-liveid -AzureADAuthorizationEndpointUri https://login.chinacloudapi.cn/organizations*

    * El valor AzureADAuthorizationEndpointUri que termina en /organizations solo permite cuentas profesionales o educativas. El valor de URI anterior que termina en /common sigue funcionando, pero podría pedirle que elija entre una cuenta personal y una cuenta profesional o educativa. Recomendamos el valor URI en escenarios empresariales donde se deben excluir las /organizations cuentas de consumidor.

  • Si un comando Connect-IPPSSession presenta un indicador de inicio de sesión, ejecute el comando: $Global:IsWindows = $true antes del comando Connect-IPPSSession .

  • Para las automatizaciones de eDiscovery existentes que siguen usando la configuración de solo aplicación no compatible, use ExchangeOnlineManagement 3.10.1 o posterior y agregue el conmutador EnableSearchOnlySession al comando Connect-IPPSSession .

  • Conectarse con una huella digital de certificado:

    Nota:

    El parámetro CertificateThumbprint solo se admite en Microsoft Windows.

    El certificado debe instalarse en el equipo donde se ejecuta el comando. El certificado se debe instalar en el almacén de certificados de usuario.

    • Exchange Online PowerShell:

      Connect-ExchangeOnline -CertificateThumbPrint "012THISISADEMOTHUMBPRINT" -AppID "36ee4c6c-0812-40a2-b820-b22ebd02bce3" -Organization "contosoelectronics.onmicrosoft.com"
      
    • Security & Compliance PowerShell:

      Connect-IPPSSession -CertificateThumbPrint "012THISISADEMOTHUMBPRINT" -AppID "36ee4c6c-0812-40a2-b820-b22ebd02bce3" -Organization "contosoelectronics.onmicrosoft.com"
      
  • Conexión mediante un objeto de certificado:

    No es necesario instalar el certificado en el equipo donde se ejecuta el comando. Puede almacenar el objeto de certificado de forma remota. El certificado se recupera cuando se ejecuta el script.

    • Exchange Online PowerShell:

      Connect-ExchangeOnline -Certificate <%X509Certificate2 Object%> -AppID "36ee4c6c-0812-40a2-b820-b22ebd02bce3" -Organization "contosoelectronics.onmicrosoft.com"
      
    • Security & Compliance PowerShell:

      Connect-IPPSSession -Certificate <%X509Certificate2 Object%> -AppID "36ee4c6c-0812-40a2-b820-b22ebd02bce3" -Organization "contosoelectronics.onmicrosoft.com"
      
  • Conectarse con un certificado local:

    Nota:

    El uso de un comando ConvertTo-SecureString para almacenar la contraseña del certificado localmente anula el propósito de un método de conexión segura en escenarios de automatización. El uso de un comando Get-Credential para solicitarle la contraseña del certificado de forma segura no es ideal para escenarios de automatización. En otras palabras, realmente no existe una forma automatizada y segura de conectarse mediante un certificado local.

    • Exchange Online PowerShell:

      Connect-ExchangeOnline -CertificateFilePath "C:\Users\navin\Desktop\automation-cert.pfx" -CertificatePassword (Get-Credential).password -AppID "36ee4c6c-0812-40a2-b820-b22ebd02bce3" -Organization "contosoelectronics.onmicrosoft.com"
      
    • Security & Compliance PowerShell:

      Connect-IPPSSession -CertificateFilePath "C:\Users\navin\Desktop\automation-cert.pfx" -CertificatePassword (Get-Credential).password -AppID "36ee4c6c-0812-40a2-b820-b22ebd02bce3" -Organization "contosoelectronics.onmicrosoft.com"
      

Configurar la autenticación solo enla aplicación

Se requiere una incorporación inicial para la autenticación con objetos de aplicación. La entidad de servicio y la aplicación se usan de forma intercambiable, pero una aplicación es como un objeto de clase mientras que una entidad de servicio es como una instancia de la clase. Para obtener más información, consulte Objetos de entidad de servicio y aplicación en Microsoft Entra ID.

Para obtener un flujo visual detallado sobre la creación de aplicaciones en Microsoft Entra ID, consulte https://aka.ms/azuread-app.

  1. Registre la aplicación en Microsoft Entra ID.

  2. Asignar permisos de API a la aplicación.

    Un objeto de aplicación tiene el permiso de API delegadaUser.Read de Microsoft Graph> de forma predeterminada. Agregue el permiso de aplicación que coincida con la conexión de PowerShell:

    • Exchange Online PowerShell (Connect-ExchangeOnline):Office 365 Exchange Online>Exchange.ManageAsApp.
    • PowerShell de seguridad & cumplimiento (Connect-IPPSSession): Protección> Microsoft Exchange OnlineExchange.ManageAsApp.

    Si la aplicación se conecta a ambos entornos, agregue ambos permisos. Otorgue el consentimiento del administrador de todo el espacio empresarial para cada permiso.

  3. Generar un certificado

    • Para la autenticación de solo aplicación en Microsoft Entra ID, normalmente se usa un certificado para solicitar acceso. Cualquier persona que tenga el certificado y su clave privada puede usar la aplicación con los permisos concedidos a la aplicación.

    • Cree y configure un certificado X.509, que se usa para autenticar su aplicación en Microsoft Entra ID, mientras solicita el token de acceso solo de la aplicación. El certificado puede ser autofirmado.

    • Este procedimiento es similar a la generación de una contraseña para las cuentas de usuario. Consulte esta sección más adelante en este artículo para obtener instrucciones para generar certificados en PowerShell.

      Nota:

      Criptografía: los certificados de nueva generación (CNG) no se admiten para la autenticación solo de aplicación con Exchange. Los certificados CNG se crean de forma predeterminada en las versiones modernas de Windows. Debe usar un certificado de un proveedor de claves CSP. En esta sección se tratan dos métodos admitidos para crear un certificado CSP.

  4. Adjunte el certificado a la aplicación Microsoft Entra

  5. Asignar permisos de roles a la aplicación

Paso 1: registrar la aplicación en Microsoft Entra ID

Nota:

Si tiene problemas, revise los permisos necesarios para comprobar que su cuenta puede crear la identidad.

  1. Abra el Centro de administración de Microsoft Entra en https://portal.azure.com/.

  2. En el cuadro de búsqueda de la parte superior de la página, empiece a escribir Registros de aplicaciones y, a continuación, seleccione Registros de aplicaciones en los resultados de la sección Servicios.

    Captura de pantalla que muestra los Registros de aplicaciones en los resultados de búsqueda en la página principal de Azure Portal.

    O bien, para ir directamente a la página de Registros de aplicaciones, use https://portal.azure.com/#view/Microsoft_AAD_RegisteredApps/ApplicationsListBlade.

  3. En la página Registros de aplicaciones, seleccione Nuevo registro.

    Seleccione Nuevo registro en la página Registros de aplicaciones.

  4. En la página Registrar una aplicación que aparece, configure las siguientes opciones:

    • Nombre: escriba algo descriptivo. Por ejemplo, ExO PowerShell CBA.

    • Tipos de cuenta admitidos: Compruebe que las cuentas de solo este directorio organizativo (<solo suNombreDeOrganización> ; inquilino único) esté seleccionado.

      Nota:

      Para convertir la aplicación en multiinquilino para escenarios delegados de Exchange Online, seleccione el valor Cuentas en cualquier directorio organizativo (Cualquier directorio de Microsoft Entra: Multiinquilino).

    • URI de redireccionamiento (opcional): esta configuración es opcional. Si necesita usarlo, configure los siguientes parámetros:

      • Plataforma: Seleccionar Web.
      • URI: introduzca el URI al que se envía el token de acceso.

      Nota:

      No puede crear credenciales para las aplicaciones nativas, ya que no puede usar aplicaciones nativas para aplicaciones automatizadas.

      Registrar una aplicación.

    Cuando haya terminado en la página de Registros de aplicaciones, seleccione Registrarse.

  5. Se le dirigirá a la página Información general de la aplicación que registró. Deje esta página abierta. Úselo en el siguiente paso.

Paso 2: asignar permisos de API a la aplicación

Elija uno de los métodos siguientes en esta sección para asignar permisos de API a la aplicación:

  • Seleccione y asigne los permisos de API desde el portal.
  • Modifique el manifiesto de la aplicación para asignar permisos de API. (Las organizaciones de Microsoft 365 GCC High y DoD deben usar este método).

Seleccione y asigne los permisos de API desde el portal

  1. En la página Información general de la aplicación, seleccione Permisos de API en la sección Administrar .

    Seleccione permisos de API en la página de información general de la aplicación.

  2. En la página Permisos de API de la aplicación, seleccione Agregar un permiso.

    Seleccione Agregar un permiso en la página de permisos de API de la aplicación.

  3. En el menú flotante Solicitar permisos de API que se abre, seleccione la pestaña API que usa mi organización y, a continuación, seleccione la API que coincida con la conexión de PowerShell:

    • Exchange Online PowerShell (Connect-ExchangeOnline): busque y seleccione Office 365 Exchange Online.
    • PowerShell de seguridad & cumplimiento (Connect-IPPSSession): busque y seleccione Microsoft Exchange Online Protección.

    Si la aplicación se conecta a ambos entornos, repita los pasos 2 a 5 para la otra API antes de continuar con el paso 6.

    En la captura de pantalla siguiente se muestra la selección de PowerShell de Exchange Online:

    Busque y seleccione Office 365 Exchange Online en la pestaña API que usa mi organización.

  4. En el menú flotante ¿Qué tipo de permisos requiere su aplicación? que aparece, seleccione Permisos de aplicación.

  5. En la lista de permisos que aparece, expanda Exchange, seleccione Exchange.ManageAsApp y, después, seleccione Agregar permisos.

    Busque y seleccione permisos de Exchange.ManageAsApp en la pestaña Permisos de aplicación.

  6. De nuevo en la página de permisos de la API de la aplicación, compruebe que cada permiso necesario de Exchange.ManageAsApp aparece en la lista y contiene los siguientes valores:

    • Tipo: Aplicación.

    • Se requiere el consentimiento del administrador: .

    • Estado: El valor incorrecto actual no se concede para <la organización>.

      Para cambiar este valor, seleccione Conceder consentimiento de administrador para <la organización>, lea el cuadro de diálogo de confirmación que se abre y, a continuación, seleccione .

      Se requiere el consentimiento del administrador, pero no se concede para los permisos de Exchange.ManageAsApp.

      El valor de Estado ahora se concede para <la organización>.

      Consentimiento del administrador concedido para los permisos de Exchange.ManageAsApp.

  7. Para la entradaUser.Read predeterminada de Microsoft Graph>, seleccione ...>Revoque el consentimiento del administrador y, a continuación, seleccione en el cuadro de diálogo de confirmación que se abre para devolver el estado al valor en blanco predeterminado.

    El consentimiento del Administración se ha quitado de los permisos User.Read predeterminados de Microsoft Graph.

  8. Cierre la página actual depermisos de la API (no la pestaña del explorador) para volver a la página de registros de la aplicación. Usa la página de Registros de aplicaciones en un paso siguiente.

Modifique el manifiesto de la aplicación para asignar permisos de API

Nota:

Los procedimientos de esta sección anexan los permisos predeterminados existentes en la aplicación (permisos de User.Read delegados en Microsoft Graph) con el permiso de aplicación necesario Exchange.ManageAsApp . Use los valores de recursos que coincidan con la conexión de PowerShell. Si la aplicación se conecta a PowerShell de Exchange Online y a PowerShell de seguridad & cumplimiento, incluya objetos de recursos de Exchange y un objeto de recurso de Microsoft Graph.

  1. En la página de información general de la aplicación, seleccione Manifiesto en la sección Administrar .

    Seleccione Manifiesto en la página de información general de la aplicación.

  2. En la página Manifiesto de la aplicación, busque la entrada (en o alrededor de la requiredResourceAccess línea 42). Para PowerShell de Exchange Online, haga que la entrada tenga un aspecto similar al siguiente fragmento de código:

    "requiredResourceAccess": [
        {
            "resourceAppId": "00000002-0000-0ff1-ce00-000000000000",
            "resourceAccess": [
                {
                    "id": "dc50a0fb-09a3-484d-be87-e023b12c6440",
                    "type": "Role"
                }
            ]
        },
        {
            "resourceAppId": "00000003-0000-0000-c000-000000000000",
            "resourceAccess": [
                {
                    "id": "e1fe6dd8-ba31-4d61-89e7-88639da4683d",
                    "type": "Scope"
                }
            ]
        }
    ],
    

    Nota:

    Para PowerShell de seguridad & cumplimiento en cualquier entorno, incluidos Microsoft 365 GCC High y DoD, use los siguientes valores para la requiredResourceAccess entrada:

    "requiredResourceAccess": [
        {
            "resourceAppId": "00000007-0000-0ff1-ce00-000000000000",
            "resourceAccess": [
                {
                    "id": "455e5cd2-84e8-4751-8344-5672145dfa17",
                    "type": "Role"
                }
            ]
        },
        {
            "resourceAppId": "00000003-0000-0000-c000-000000000000",
            "resourceAccess": [
                {
                    "id": "e1fe6dd8-ba31-4d61-89e7-88639da4683d",
                    "type": "Scope"
                }
            ]
        }
    ],
    

    Cuando haya terminado en la página Manifiesto , seleccione Guardar.

  3. Aún en la página Manifiesto , seleccione permisos de API en la sección Administrar .

    Seleccione los permisos de API en la página Manifiesto.

  4. En la página de permisos de API, compruebe que cada permiso necesario de Exchange.ManageAsApp se muestre y contenga los siguientes valores:

    • Tipo: Aplicación.

    • Se requiere el consentimiento del administrador: .

    • Estado: El valor incorrecto actual no se concede para <la organización>.

      Para cambiar el valor de estado , seleccione Conceder consentimiento de administrador para <la organización>, lea el cuadro de diálogo de confirmación que se abre y, a continuación, seleccione .

      Se requiere el consentimiento del administrador, pero no se concede para los permisos de Exchange.ManageAsApp.

      El valor de Estado ahora se concede para <la organización>.

      Consentimiento del administrador concedido para los permisos de Exchange.ManageAsApp.

  5. Para la entradaUser.Read predeterminada de Microsoft Graph>, seleccione ...>Revoque el consentimiento del administrador y, a continuación, seleccione en el cuadro de diálogo de confirmación que se abre para devolver el estado al valor en blanco predeterminado.

    El consentimiento del Administración se ha quitado de los permisos User.Read predeterminados de Microsoft Graph.

  6. Cierre la página actual depermisos de la API (no la pestaña del explorador) para volver a la página de registros de la aplicación. Usa la página de Registros de aplicaciones en un paso siguiente.

Paso 3: Generar un certificado

Nota:

Criptografía: los certificados de nueva generación (CNG) no se admiten para la autenticación solo de aplicación, como se describe en este artículo. Los certificados de CNG se crean de forma predeterminada en las versiones modernas de Windows. Debe usar un certificado de un proveedor de claves de CSP.

Puede usar un certificado autofirmado, un certificado emitido por una infraestructura de claves públicas interna o PKI (por ejemplo, Active Directory Certificate Services o AD CS), o un certificado emitido por una entidad de certificación (CA) comercial de confianza.

Los únicos requisitos para el certificado X.509 son una clave privada exportable y disponible (.pfx) y un certificado público (.cer).

Para obtener un certificado autofirmado, use uno de los métodos siguientes:

  • (Recomendado): use los cmdlets New-SelfSignedCertificate, Export-Certificate y Export-PfxCertificate en una sesión de PowerShell con privilegios elevados (una ventana de PowerShell que abrió después de seleccionar Ejecutar como administrador) para solicitar un certificado autofirmado y exportar las claves pública y privada del certificado a los archivos (SHA1 de forma predeterminada). Por ejemplo:

    # Create a self-signed certificate
    $mycert = New-SelfSignedCertificate -DnsName "contoso.org" -CertStoreLocation "cert:\CurrentUser\My" -NotAfter (Get-Date).AddYears(1) -KeySpec KeyExchange
    
    # Export the X.509 certificate and the associated private key to a password-protected .pfx file
    $mycert | Export-PfxCertificate -FilePath mycert.pfx -Password (Get-Credential).password
    
    # Export the X.509 public certificate to a .cer file
    $mycert | Export-Certificate -FilePath mycert.cer
    
  • Use el script Create-SelfSigned Script para generar certificados SHA1.

    .\Create-SelfSignedCertificate.ps1 -CommonName "MyCompanyName" -StartDate 2026-01-06 -EndDate 2027-01-06
    

Paso 4: Adjuntar el certificado a la aplicación Microsoft Entra

Después de registrar el certificado con la aplicación, puede usar la clave pública (archivo .pfx) o la huella digital para la autenticación.

  1. En la pestaña Aplicaciones propias de la página Registro de aplicaciones del final del paso 2, seleccione su aplicación.

    Si necesita volver a la página de registro de aplicaciones , use https://portal.azure.com/#view/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/~/RegisteredApps, verifique que la pestaña Aplicaciones propias esté seleccionada y, a continuación, seleccione su aplicación.

    Página de registro de aplicaciones donde selecciona la aplicación.

  2. En la página de aplicación que se abre, seleccione Certificados & secretos en la sección Administrar .

    Seleccione Certificados & secretos en la página de propiedades de la aplicación.

  3. En la página Certificados & secretos , seleccione Cargar certificado.

    Seleccione Cargar certificado en la página Certificados & secretos.

    En el control flotante Cargar certificado que se abre, busque el certificado público (.cer archivo) que exportó en el paso 3 y, a continuación, seleccione Agregar.

    Busque el certificado y seleccione Agregar.

    El certificado ahora se muestra en la sección Certificados.

    Página de la aplicación que muestra que el certificado se agregó.

  4. Cierre la página Certificados y secretos y, después, la página de Registros de la aplicación para volver a la https://portal.azure.com/página principal. Úselo en el siguiente paso.

Si ha hecho que la aplicación sea multiinquilino para escenarios delegados de Exchange Online en el paso 1, debe conceder el consentimiento del administrador al permiso Exchange.ManageAsApp para que la aplicación pueda ejecutar cmdlets en Exchange Online en cada organización de inquilinos. Debe generar una dirección URL de consentimiento de administrador para cada inquilino de cliente. Antes de que alguien use la aplicación multiinquilino para conectarse a Exchange Online en la organización del inquilino, un administrador del inquilino del cliente debe abrir la siguiente dirección URL:

https://login.microsoftonline.com/<tenant-id>/adminconsent?client_id=<client-id>&scope=https://outlook.office365.com/.default

  • <tenant-id> es el identificador de inquilino del cliente.
  • <client-id> es el identificador de la aplicación multiinquilino.
  • El ámbito predeterminado se usa para conceder permisos a la aplicación.

Para obtener más información sobre la sintaxis de dirección URL, consulte Solicitar los permisos a un administrador de directorio.

Paso 5: Asignar permisos de rol a la aplicación

Tiene las siguientes opciones:

  • Opción 1: Asignar roles de Microsoft Entra a la aplicación: Use los roles integrados de Microsoft Entra para conceder todos los permisos del rol. No puede personalizar ni definir el ámbito de estos roles.

  • Opción 2: Asignar grupos de roles personalizados a la aplicación mediante entidades de servicio: Se recomienda esta opción en los escenarios siguientes:

    • Debe restringir los comandos disponibles en la aplicación.
    • Debe usar un ámbito de escritura para limitar los destinatarios que se pueden modificar.
  • Opción 3: Combinar roles de Microsoft Entra con grupos de roles personalizados: RBAC combina permisos de todos los orígenes. Se recomienda este método para ampliar las capacidades de un rol integrado de Microsoft Entra. Por ejemplo, puede ampliar las capacidades del rol Administrador de destinatarios de Exchange concediendo permisos adicionales desde un rol personalizado.

Estas opciones se describen en las subsecciones siguientes.

Nota:

Para aplicaciones de varios inquilinos en escenarios delegados de Exchange Online, debe asignar permisos en cada inquilino de cliente.

Opción 1: asignar roles de Microsoft Entra a la aplicación

Los roles de Microsoft Entra admitidos se describen en la siguiente tabla:

Role Exchange en línea
PowerShell
Seguridad y cumplimiento
PowerShell
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

¹ Las funciones 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 de administrador de seguridad no tiene los permisos necesarios para esas mismas tareas.

² Microsoft aboga firmemente por el principio de privilegios mínimos. Asignar a las cuentas solo los permisos mínimos necesarios para realizar sus tareas ayuda a reducir los riesgos de seguridad y refuerza la protección general de la organización. El administrador global es un rol con muchos privilegios que debe limitar a escenarios de emergencia o cuando no puede usar un rol diferente.

Para obtener instrucciones generales acerca de cómo asignar roles en Microsoft Entra ID, consulte Asignar roles de Microsoft Entra a los usuarios.

Nota:

Los pasos siguientes son ligeramente diferentes para Exchange Online PowerShell frente a Security & Compliance PowerShell. Se muestran los pasos para ambos entornos. Para configurar roles para ambos entornos, repita los pasos de esta sección.

  1. En el Centro de administración de Microsoft Entra, comience a https://portal.azure.com/escribir roles y administradores en el cuadro de búsqueda de la parte superior de la página y seleccione Roles y administradores de Microsoft Entra en los resultados de la sección Servicios.

    Captura de pantalla que muestra los roles y administradores de Microsoft Entra en los resultados de búsqueda en la página principal de Azure Portal.

    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.

  2. En la página Roles y administradores que se abre, busque y seleccione uno de los roles admitidos haga clic en el nombre del rol (no en la casilla) de los resultados.

    • Exchange Online PowerShell: Por ejemplo, busque y seleccione el rol de administrador de Exchange.

      Para buscar y seleccionar un rol de PowerShell de Exchange Online compatible, haga clic en el nombre del rol.

    • PowerShell de seguridad & cumplimiento: Por ejemplo, busque y seleccione el rol Administrador de cumplimiento .

      Busque y seleccione un rol de PowerShell de seguridad & cumplimiento compatible haciendo clic en el nombre del rol.

  3. En la página Asignaciones que se abre, seleccione Agregar tareas.

    • Exchange Online PowerShell:

      Seleccione Agregar asignaciones en la página de asignaciones de roles para Exchange Online PowerShell.

    • Security & Compliance PowerShell:

      Seleccione Agregar asignaciones en la página Asignaciones de roles para PowerShell de seguridad & cumplimiento.

  4. En el menú flotante Agregar tareas que se abre, busque y seleccione la aplicación que creó en el Paso 1.

    Busque y seleccione la aplicación en el control flotante Agregar asignaciones.

    Cuando haya terminado en el menú desplegable Agregar tareas , seleccione Agregar.

  5. De nuevo en la página Asignaciones , compruebe que el rol está asignado a la aplicación.

    • Exchange Online PowerShell:

      Página de asignaciones de roles después de agregar la aplicación al rol para Exchange Online PowerShell.

    • Security & Compliance PowerShell:

      La página de asignaciones de roles después de agregar la aplicación al rol para PowerShell de seguridad & cumplimiento.

Opción 2: Asignar grupos de roles personalizados a la aplicación mediante entidades de servicio

Nota:

Debe conectarse a Exchange Online PowerShell o PowerShell de seguridad & cumplimiento antes de completar los pasos para crear una nueva entidad de servicio. La creación de una nueva entidad de servicio sin conectarse a PowerShell no funciona (el identificador de App de Azure y el identificador de objeto son necesarios para crear la nueva entidad de servicio).

Para obtener información sobre cómo crear grupos de roles personalizados, consulte Creación de grupos de roles en Exchange Online y Creación de grupos de roles de colaboración Email & en el portal de Microsoft Defender. El grupo de roles personalizados que asigne a la aplicación puede contener cualquier combinación de roles integrados y personalizados.

Para asignar grupos de roles personalizados a la aplicación mediante entidades de servicio, siga estos pasos:

  1. En Microsoft Graph PowerShell, ejecute los siguientes comandos para almacenar los detalles de la aplicación Microsoft Entra registrada en el paso 1 en una variable:

    Connect-MgGraph -Scopes AppRoleAssignment.ReadWrite.All,Application.Read.All
    
    $<VariableName1> = Get-MgServicePrincipal -Filter "DisplayName eq '<AppName>'"
    

    Por ejemplo:

    Connect-MgGraph -Scopes AppRoleAssignment.ReadWrite.All,Application.Read.All
    
    $AzureADApp = Get-MgServicePrincipal -Filter "DisplayName eq 'ExO PowerShell CBA'"
    

    Para obtener información detallada sobre la sintaxis y los parámetros, consulte Get-MgServicePrincipal.

  2. En la misma ventana de PowerShell, conéctese a Exchange Online PowerShell o a & de cumplimiento de seguridad y ejecute los siguientes comandos para:

    • Cree un objeto de entidad de servicio para la aplicación Microsoft Entra.
    • Almacene los detalles de la entidad de servicio en una variable para usarla en el paso siguiente.
    New-ServicePrincipal -AppId $<VariableName1>.AppId -ObjectId $<VariableName1>.Id -DisplayName "<Descriptive Name>"
    
    $<VariableName2> = Get-ServicePrincipal -Identity "<Descriptive Name>"
    

    Por ejemplo:

    New-ServicePrincipal -AppId $AzureADApp.AppId -ObjectId $AzureADApp.Id -DisplayName "SP for Azure AD App ExO PowerShell CBA"
    
    $SP = Get-ServicePrincipal -Identity "SP for Azure AD App ExO PowerShell CBA"
    

    Para obtener información detallada sobre la sintaxis y los parámetros, consulte New-ServicePrincipal.

  3. En Exchange Online PowerShell o Security & Compliance PowerShell, ejecute el siguiente comando para agregar la entidad de servicio como miembro del grupo de roles personalizado:

    Add-RoleGroupMember -Identity "<CustomRoleGroupName>" -Member <$<VariableName2>.Identity | $<VariableName2>.ObjectId | $<VariableName2>.Id>
    

    Por ejemplo:

    Add-RoleGroupMember -Identity "Contoso View-Only Recipients" -Member $SP.Identity
    

    Para obtener información más detallada acerca de la sintaxis y los parámetros, consulte Add-RoleGroupMember.