Conéctese a SharePoint Online usando PowerShell con MFA (autenticación multifactor)
Requisito: Conéctese a SharePoint Online desde PowerShell mediante autenticación multifactor.
PowerShell para conectarse a SharePoint Online con MFA
La autenticación multifactor o la autenticación de dos factores en entornos de Office 365 a menudo se habilita como parte del refuerzo de la seguridad. En lugar de los típicos ID de usuario y contraseñas, agrega una capa adicional con SMS o llamadas telefónicas para completar el proceso de autenticación. Sin embargo, en SharePoint, cuando habilita MFA para la cuenta que utilizó para conectarse a SharePoint Online desde PowerShell, ¡falla! Primero se deben seguir algunos pasos adicionales antes de conectarse correctamente. En esta guía, veremos cómo conectarse a SharePoint Online usando PowerShell con MFA, incluidos los requisitos previos y las instrucciones paso a paso.
Aquí está la lista de opciones disponibles sobre cómo conectarse al sitio de SharePoint Online a través de una cuenta con la autenticación multifactor habilitada.
Cree una contraseña de aplicación para conectarse a SharePoint Online
Visite https://aka.ms/createapppassword para crear una contraseña de aplicación para sus cuentas habilitadas para MFA. Luego, conéctese a SharePoint Online con la contraseña de la aplicación. Aquí está el ejemplo de Connect-SPOService con MFA:
#Admin Center URL of your SharePoint Online
$AdminSiteURL= "https://crescent-admin.sharepoint.com"
#Connect to SharePoint Online services
Connect-SPOService -url $AdminSiteURL -Credential (Get-Credential)
Asegúrese de ingresar su nombre de usuario y la contraseña de la aplicación para la solicitud de credenciales. Este método funciona para SharePoint Online Management Shell, PnP PowerShell o en PowerShell - scripts CSOM. Si es necesario, puede codificar el nombre de usuario y la contraseña de la aplicación en el script para evitar que se le soliciten las credenciales en tiempo de ejecución:
#Variables for processing
$AdminCenterURL = "https://crescent-admin.sharepoint.com"
#User Name Password to connect
$AdminUserName = "Salaudeen@crescent.com"
$AdminPassword = "xbcvvdjzedpcqdjkek" #App Password
#Prepare the Credentials
$SecurePassword = ConvertTo-SecureString $AdminPassword -AsPlainText -Force
$Cred = new-object -typename System.Management.Automation.PSCredential -argumentlist $AdminUserName, $SecurePassword
#Connect to SharePoint Online tenant
Connect-SPOService -url $AdminCenterURL -Credential $Cred
¡El método de contraseña de la aplicación es ideal para secuencias de comandos desatendidas o programadas en el programador de tareas de Windows!
Conecte SharePoint Online PowerShell con MFA (autenticación multifactor) omitiendo el parámetro "Credencial"
Para conectarse con SharePoint Online desde el Shell de administración de SharePoint Online con una cuenta habilitada para la autenticación multifactor, simplemente elimine el parámetro -Credential del cmdlet "Connect-SPOService" porque el cmdlet Get-Credential no reconoce MFA.
Connect-SPOService -Url https://YourTenant-admin.sharepoint.com
Presione Enter. Aparecerá una ventana emergente (ventana PowerShell, compatible con MFA) e ingrese las credenciales y el código a medida que ingresa al inicio de sesión de SharePoint.
Una vez que se haya autenticado correctamente, puede comenzar a usar los cmdlets de PowerShell desde el módulo en la consola de PowerShell o PowerShell ISE.
PnP PowerShell para conectarse a SharePoint Online con MFA
Para conectarse a SharePoint Online desde el módulo PnP PowerShell usando Connect-PnPOnline con MFA (autenticación multifactor), estas son las opciones:
Opción 1: Utilice el “-Interactivo” Cambie si desea conectarse a PnP Online con una cuenta con la autenticación multifactor habilitada. P.ej.
#Site Variables
$SiteURL = "https://crescent.sharepoint.com"
#Connect to PnP Online
Connect-PnPOnline -Url $SiteURL -Interactive
Si aún no está conectado con SharePoint Online, recibirá un mensaje de inicio de sesión.
Opción 2: usar el método ID de cliente y secreto de cliente para conectarse a SharePoint Online con MFA
Cree un ID de aplicación y una contraseña según mi artículo: Connect-PnPOnline con ID de cliente y secreto de cliente y luego use el Credenciales ClientId y ClientSecret para conectarse a PnP.
#Site collection URL
$SiteURL = "https://crescent.sharepoint.com"
#Connect to SharePoint Online with AppId and AppSecret
Connect-PnPOnline -Url $SiteURL -ClientId "ca12s35f-7c48-4xbf-8238-760bc56bdeda" -ClientSecret "J8cFpsg/AS7KUL79fGX1ykbBVkd6q35030AamzAQO5gHj="
Una vez conectado, puede comenzar a usar cmdlets PnP para SharePoint Online. Más información sobre cómo conectarse a SharePoint Online a través de PnP PowerShell está aquí: ¿Cómo conectarse a SharePoint Online usando PnP PowerShell?
Conéctese al script CSOM PowerShell con MFA
Para conectarse a SharePoint Online a través del script CSOM PowerShell con una cuenta configurada con autenticación multifactor, use este PowerShell:
$SiteURL = "https://crescent.sharepoint.com"
#Setup Authentication Manager
$AuthenticationManager = new-object OfficeDevPnP.Core.AuthenticationManager
$Ctx = $AuthenticationManager.GetWebLoginClientContext($SiteUrl)
$Ctx.Load($Ctx.Web)
$Ctx.ExecuteQuery()
Write-Host $Ctx.Web.Title
¡Este método solicita credenciales y un código de autenticación de dos factores!
En conclusión, conectarse a SharePoint Online mediante PowerShell con MFA es una excelente manera de proteger sus datos y contra el acceso no autorizado. Si sigue los pasos descritos en esta guía, debería poder conectarse a SharePoint Online con MFA habilitado.
Errores típicos cuando la autenticación multifactor (MFA) está habilitada:
Si intenta conectarse a SharePoint Online con una cuenta habilitada para MFA, recibirá estos mensajes de error:
“Connect-SPOService: el nombre de inicio de sesión o la contraseña no coinciden con los del sistema de cuentas de Microsoft.
En la línea:5 char:1
+ Connect-SPOService -url $AdminSiteURL -Credential (Get-Credential)
+ ~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Información de categoría : NotSpecified: (:) [Connect-SPOService], IdcrlException
+ FullyQualifiedErrorId: Microsoft.SharePoint.Client.IdcrlException,Microsoft.Online.SharePoint.PowerShell.ConnectSPOService”
La conexión PnP falló con el error en la cuenta habilitada para MFA:
“Connect-PnPOnline: el nombre de inicio de sesión o la contraseña no coinciden con los del sistema de cuentas de Microsoft.
En la línea:6 carácter:1
+ Connect-PnPOnline -Url $SiteURL -Credenciales (Obtener-Credencial)
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~
+ CategoryInfo : No especificado: (:) [Connect-PnPOnline], IdcrlException
+ Totalmente calificadoErrorId: Microsoft.SharePoint.Client.IdcrlException,SharePointPnP.PowerShell.Commands.Base.ConnectOnline”
Secuencia de comandos CSOM PowerShell con autenticación de dos factores:
“Excepción al llamar a “ExecuteQuery” con argumento(s) “0”: “El nombre de inicio de sesión o la contraseña no coinciden con uno en el sistema de cuentas de Microsoft”.
En la línea:23 carácter:1
+ $Ctx.ExecuteQuery()
+ ~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : No especificado: (:) [], MethodInvocationException
+ Totalmente calificadoErrorId: IdcrlException”
Por último, pero no menos importante: tenga en cuenta que, además de MFA, estos errores podrían deberse a otros motivos. Como nombre de usuario o contraseña incorrectos, la cuenta ha sido deshabilitada o bloqueada, la contraseña expiró, políticas de acceso condicional, la autenticación heredada está deshabilitada, etc.
Preguntas frecuentes:
¿Cómo instalo el módulo PowerShell de SharePoint Online?
Para instalar el módulo PowerShell para SharePoint Online, abra PowerShell como administrador e ingrese: “Install-Module Microsoft.Online.SharePoint.PowerShell”.
Más información: Instalar el módulo PowerShell de SharePoint Online
¿Cómo se conecta PnP PowerShell a SharePoint Online?
Instale el nuevo módulo PnP PowerShell usando: “Install-Module PnP.PowerShell” y luego podrá conectarse al sitio de SharePoint usando el cmdlet “Connect-PnPOnline”.
Más información: PnP PowerShell para conectarse a SharePoint Online
¿Cuál es la diferencia entre PowerShell y PnP PowerShell?
El módulo PnP PowerShell es una biblioteca de código abierto proporcionada por la comunidad que se encuentra encima de PowerShell y ofrece más de 500 cmdlets para trabajar con el entorno de Microsoft 365.


