Configurar la autenticación de servidor a servidor desde SharePoint Server a SharePoint en Microsoft 365
SE APLICA A:2013 2016 2019 Subscription Edition SharePoint in Microsoft 365
Este artículo forma parte de un mapa de ruta de procedimientos para configurar soluciones híbridas de SharePoint. Asegúrese de seguir una guía básica al realizar los procedimientos descritos en este artículo.
Nota:
Se recomienda usar el Asistente para configuración híbrida de SharePoint para establecer la autenticación de servidor a servidor entre SharePoint Server y SharePoint en Microsoft 365. Si no puede usar el Asistente para configuración híbrida por cualquier motivo, siga los pasos de este artículo para habilitar la autenticación de servidor a servidor.
Microsoft recomienda utilizar roles con la menor cantidad de permisos. El uso de cuentas con permisos inferiores ayuda a mejorar la seguridad de su organización. Administrador global es un rol con muchos privilegios que debe limitarse a escenarios de emergencia cuando no se puede usar un rol existente.
Configurar la autenticación de servidor a servidor
En este artículo se proporcionan instrucciones para el proceso de implementación de entornos híbridos de SharePoint, que integra SharePoint Server y SharePoint en Microsoft 365.
Sugerencia
Para obtener el resultado más confiable, complete los procedimientos en el orden en que se muestran en este artículo.
Comprobar la configuración de la aplicación web
En los entornos híbridos de SharePoint, los usuarios federados pueden enviar solicitudes a SharePoint en Microsoft 365 desde cualquier aplicación web de SharePoint Server que esté configurada para usar la autenticación integrada de Windows con NTLM.
Por ejemplo, debe asegurarse de que los sitios del centro de búsqueda local que desea usar en la solución estén configurados para usar la autenticación integrada de Windows con NTLM. Si no es así, debe volver a configurar la aplicación web para usar la autenticación de Windows con NTLM o usar un sitio del centro de búsqueda en una aplicación web que cumpla este requisito. También debe asegurarse de que los usuarios que esperan que los resultados de búsqueda se devuelvan desde SharePoint en Microsoft 365 son usuarios federados.
Para comprobar que una aplicación web cumple los requisitos
Confirme que la cuenta de usuario que realizará este procedimiento sea miembro del grupo de SharePoint de administradores de la granja de servidores.
En Administración central, seleccione Administración de aplicaciones y, a continuación, seleccione Administrar aplicaciones web.
En la columna Nombre, seleccione la aplicación web que quiere verificar y, en la cinta de opciones, seleccione Proveedores de autenticación.
En el cuadro de diálogo Proveedores de autenticación, en la columna Zona, seleccione la zona a la que está asociado el sitio del centro de búsqueda.
En el cuadro de diálogo Editar autenticación, compruebe que están seleccionadas la autenticación integrada de Windows y NTLM, como se muestra en esta imagen.
Configurar OAuth sobre HTTP (si es necesario)
De forma predeterminada, OAuth en SharePoint Server requiere HTTPS. Si configuró la aplicación web principal para usar HTTP en lugar de SSL, debe habilitar OAuth a través de HTTP en todos los servidores web de la granja de servidores de SharePoint Server.
Nota:
Si ha configurado la aplicación web principal para que use SSL, no tiene que hacer este paso.
Para habilitar OAuth sobre HTTP, ejecute estos comandos con una cuenta de administrador de la granja de servidores desde el símbolo del sistema de Shell de administración de SharePoint 2016 en cada servidor web de la granja de SharePoint Server.
$serviceConfig = Get-SPSecurityTokenServiceConfig
$serviceConfig.AllowOAuthOverHttp = $true
$serviceConfig.Update()
Si habilitó OAuth sobre HTTP para hacer pruebas y ahora quiere reconfigurar el entorno para usar SSL, puede deshabilitar OAuth sobre HTTP si ejecuta estos comandos con una cuenta de administrador de la granja de servidores desde el símbolo del sistema de Shell de administración de SharePoint 2016 en cada servidor web de la granja de SharePoint Server:
$serviceConfig = Get-SPSecurityTokenServiceConfig
$serviceConfig.AllowOAuthOverHttp = $false
$serviceConfig.Update()
Configurar la autenticación de servidor a servidor entre un entorno local de SharePoint Server y SharePoint en Microsoft 365
Esta sección le ayuda a configurar la autenticación de servidor a servidor entre:
SharePoint Server
SharePoint en Microsoft 365
Microsoft Entra ID
Al configurar la autenticación de servidor a servidor para entornos híbridos, se crea una relación de confianza entre la granja de servidores de SharePoint local y el inquilino de SharePoint en Microsoft 365, que usa Microsoft Entra ID como servicio de firma de tokens de confianza. Al agregar los módulos y complementos de PowerShell necesarios, este proceso puede producirse en una sola ventana de PowerShell en un servidor web de SharePoint local.
Sugerencia
Querrá mantener un registro de los pasos, los cmdlets de PowerShell que ejecute y los errores que pueda encontrar. Debe capturar todo el contenido del búfer de PowerShell cuando haya terminado y antes de cerrar la ventana. Esto le proporcionará un historial de los pasos que ha tomado, lo que será útil si tiene que solucionar problemas o explicar el proceso a otros usuarios. Esto también puede ser útil para actualizar la memoria si la configuración se produce en fases.
Esta es una introducción general de los procedimientos que debe llevar a cabo en esta sección:
Instale herramientas de administración de servicios en línea en un servidor web de la granja de servidores de SharePoint Server.
Configurar la autenticación de servidor a servidor:
Establecer las variables que se van a usar en los pasos siguientes.
Cargue el certificado STS de SharePoint Server integrado en SharePoint en Microsoft 365.
Agregar un nombre de entidad de seguridad de servicio (SPN) a Azure.
Registre el id. del objeto de entidad de seguridad de aplicación de SharePoint en Microsoft 365 con SharePoint Server local.
Configure un dominio de autenticación común entre la granja de servidores de SharePoint Server local y SharePoint en Microsoft 365.
Configure un proxy de aplicación de Microsoft Entra local.
Instalar las herramientas de administración de servicios en línea y configurar la ventana de Windows PowerShell
Para continuar, debe instalar estas herramientas en un servidor web local de SharePoint Server:
Microsoft Graph PowerShell
Shell de administración de SharePoint en Microsoft 365
Esto se logra con mayor facilidad en un servidor web de la granja de servidores de SharePoint porque es más fácil cargar el complemento Microsoft.SharePoint.PowerShell en los servidores web que en servidores que no tienen instalado SharePoint Server.
La autenticación en SharePoint Server, SharePoint en Microsoft 365 e Id. de Microsoft Entra requiere cuentas de usuario diferentes. Para más información sobre cómo determinar qué cuenta usar, vea Cuentas necesarias para una configuración híbrida y pruebas.
Nota:
Para facilitar la realización de los pasos de esta sección, abriremos una ventana del símbolo del sistema de PowerShell en un servidor web de SharePoint Server y agregaremos los módulos y complementos que le permiten conectarse a SharePoint Server, SharePoint en Microsoft 365 e Id. de Microsoft Entra. (Le daremos pasos detallados sobre cómo hacerlo más adelante en este artículo). A continuación, mantendremos esta ventana abierta para usarla para todos los pasos restantes de PowerShell de este artículo.
Para instalar las herramientas de administración de servicios en línea y configurar la ventana de PowerShell:
Instalación de la versión más reciente de PowerShell de Microsoft Graph
Instalar el Shell de administración de SharePoint en Microsoft 365:
Shell de administración de SharePoint en Microsoft 365 (versión de 64 bits)
Para obtener más información, consulte Introducción al Shell de administración de SharePoint en Microsoft 365.
Abra una ventana de PowerShell.
Para asegurarse de que no se llene el búfer y no pierda nada de su historial de comandos, aumente el tamaño del búfer de la ventana de PowerShell:
Seleccione la esquina superior izquierda de la ventana de PowerShell y, después, seleccione Propiedades.
En la ventana Propiedades de PowerShell, seleccione la pestaña Diseño.
En Tamaño del búfer de pantalla, establezca el campo Alto en 9999 y seleccione ACEPTAR.
En este paso se cargan los módulos que descargó para que pueda usarlos en la sesión de PowerShell. Copie los siguientes comandos en la sesión de PowerShell y presione Entrar.
Add-PSSnapin Microsoft.SharePoint.PowerShell Import-Module Microsoft.PowerShell.Utility Import-Module Microsoft.Graph
Si necesita volver a ejecutar cualquiera de los siguientes pasos de configuración más tarde, acuérdese de volver a ejecutar estos comandos para cargar los complementos y módulos necesarios en PowerShell.
Escriba los comandos siguientes para iniciar sesión en SharePoint en Microsoft 365, desde el símbolo del sistema de PowerShell:
Connect-MgGraph -Scopes "Group.ReadWrite.All","RoleManagement.ReadWrite.Directory","Organization.ReadWrite.All"
Se le pedirá que inicie sesión. Debe iniciar sesión con una cuenta de administrador global de Microsoft 365. Puede explorar otras formas de conectarse a Microsoft Graph.
Deje abierta la ventana de PowerShell hasta que haya completado todos los pasos de este artículo. La necesitará para una variedad de procedimientos en las siguientes secciones.
Configurar la autenticación de servidor a servidor (S2S)
Ahora que ha instalado las herramientas para permitirle administrar de forma remota Microsoft Entra ID y SharePoint en Microsoft 365, está listo para configurar la autenticación de servidor a servidor.
Acerca de las variables va a crear
En esta sección se describen las variables que se establecerán en el procedimiento siguiente. Estas variables contienen información importante que se usa en muchos de los pasos de configuración restantes.
Variable | Comentarios |
---|---|
$spcn | El nombre del dominio raíz del dominio público. Este valor no debe tener el formato de una dirección URL; debe ser solo el nombre de dominio, sin protocolo. Un ejemplo es adventureworks.com. |
$spsite | La dirección URL interna de la aplicación web principal local, como http://sharepoint o https://sharepoint.adventureworks.com . Este valor es una dirección URL completa con el protocolo apropiado ( http: // o https:// ). Esta es la dirección URL interna de la aplicación web que se usa para la funcionalidad híbrida. Por ejemplo, http://sharepoint o https://sharepoint.adventureworks.com . |
$site | El objeto de la aplicación web principal local. El comando que rellena esta variable obtiene el objeto del sitio que especificó en la variable $spsite. Esta variable se rellena automáticamente. |
$spoappid | El identificador de la entidad de seguridad de aplicación de SharePoint en Microsoft 365 siempre es 00000003-0000-0ff1-ce00-0000000000000000. Este valor genérico identifica SharePoint en objetos de Microsoft 365 en una organización de Microsoft 365. |
$spocontextID | Identificador de contexto (ObjectID) del inquilino de SharePoint en Microsoft 365. Este valor es un GUID único que identifica el inquilino de SharePoint en Microsoft 365. Este valor se detecta automáticamente cuando se ejecuta el comando para establecer la variable. |
$metadataEndpoint | Dirección URL que usa el proxy de Id. de Microsoft Entra para conectarse al inquilino de Microsoft Entra. No es necesario proporcionar un valor para esta variable. |
Paso 1: Establecer variables
Ahora que ha identificado las variables que necesita establecer, siga estas instrucciones para establecerlas. Rellenar previamente las variables usadas con más frecuencia ayudará a realizar el resto de los pasos más rápidamente. Estas variables permanecen rellenadas siempre y cuando no cierre la sesión de PowerShell. Tenga cuidado de proporcionar información precisa siempre que vea corchetes angulares (<>) y quite siempre los corchetes angulares antes de ejecutar el comando. No altere el código fuera de los corchetes angulares.
Nota:
Si tiene que realizar cualquiera de estos pasos de configuración más tarde, debe empezar ejecutando los siguientes comandos de PowerShell en este paso para volver a rellenar las variables importantes.
Copie las siguientes declaraciones de variables y péguelas en un editor de texto, como el Bloc de notas. Establezca los valores de entrada específicos de su organización. En el símbolo del sistema de PowerShell que configuró con las herramientas de administración de servicios en línea, ejecute los comandos.
$spcn="*.<public_root_domain_name>.com"
$spsite=Get-Spsite <principal_web_application_URL>
$site=Get-Spsite $spsite
$spoappid="00000003-0000-0ff1-ce00-000000000000"
$spocontextID = (Get-MgOrganization).Id
$metadataEndpoint = "https://accounts.accesscontrol.windows.net/" + $spocontextID + "/metadata/json/1"
Después de rellenar estas variables, puede ver sus valores escribiendo el nombre de la variable en la ventana de PowerShell. Por ejemplo, escribir $metadataEndpoint
devuelve un valor similar al siguiente:
https://accounts.accesscontrol.windows.net/00fceb75-246c-4ac4-a0ad-7124xxxxxxxx/metadata/json/1
Paso 2: Cargar el certificado STS en SharePoint en Microsoft 365
En este paso, cargue el certificado STS para su granja de servidores de SharePoint Server en el inquilino de SharePoint en Microsoft 365, lo que permite que SharePoint Server y SharePoint en Microsoft 365 se conecten y usen las aplicaciones de servicio del otro.
Los comandos de este paso agregan el certificado STS local (solo clave pública) al objeto de entidad de seguridad de SharePoint en Microsoft 365 de la organización de Microsoft 365.
En el símbolo del sistema de PowerShell, escriba los siguientes comandos.
$Cert = (Get-SPSecurityTokenServiceConfig).LocalLoginProvider.SigningCertificate
$principal = Get-MgServicePrincipal -Filter "AppId eq '$spoappid’” -Property "Id,DisplayName,KeyCredentials,AppId"
$existingCerts = $principal.KeyCredentials
$keyCredentials = @(@{ Type = "AsymmetricX509Cert"; Usage = "Verify"; Key = $Cert.RawData; KeyId = New-Guid; StartDateTime = $Cert.NotBefore; EndDateTime = $Cert.NotAfter; })
$noUpdate = $false
foreach($existingCert in $existingCerts) {
if ([string]$existingCert.Key -eq [string]$Cert.RawData) {
$noUpdate = $true
break
}
else {
$existingCert.Key = $null
$keyCredentials += $existingCert
}
}
if (-Not $noUpdate) {
Update-MgServicePrincipal -ServicePrincipalId $principal.Id -KeyCredentials $keyCredentials
}
Paso 3: Agregar un SPN para el nombre de dominio público a Microsoft Entra ID
En este paso, agregará un nombre de entidad de seguridad de servicio (SPN) al inquilino de Microsoft Entra. El objeto principal de SharePoint en Microsoft 365 y el espacio de nombres DNS público de la empresa forman el SPN.
Al igual que la función SPN en Active Directory, al crear este SPN se registra un objeto en microsoft entra id. que se usa para admitir la autenticación mutua entre SharePoint Server y SharePoint en Microsoft 365. La sintaxis básica para el SPN es:
<tipo> de servicio/<nombre de instancia>
Donde:
<el tipo de> servicio es el objeto de entidad de seguridad de SharePoint en Microsoft 365, que es el mismo para todos los inquilinos de SharePoint en Microsoft 365.
<nombre de instancia> es la dirección URL del espacio de nombres del dominio DNS público de su empresa, que siempre se expresa con un comodín, incluso cuando el certificado SSL de canal seguro es un certificado SAN.
Aquí le mostramos un ejemplo:
00000003-0000-0ff1-ce00-000000000000/*.<public domain name>.com
Si el nombre común del certificado es sharepoint.adventureworks.com, la sintaxis del SPN tiene el siguiente aspecto:
00000003-0000-0ff1-ce00-000000000000/*.adventureworks.com
El uso de un valor comodín permite que SharePoint en Microsoft 365 valide las conexiones con cualquier host de ese dominio. Esto resulta útil si alguna vez necesitara cambiar el nombre de host del extremo externo (si su topología incluye uno) o quisiera cambiar su aplicación web de SharePoint Server.
Para agregar el SPN a Microsoft Entra ID, escriba los siguientes comandos en el símbolo del sistema de PowerShell de Microsoft Graph.
$msp = Get-MgServicePrincipal -Filter "AppId eq '$spoappid'"
$params =@{
"servicePrincipalNames"="$spoappid/$spcn"
}
Update-MgServicePrincipal -ServicePrincipalId $msp.Id -BodyParameter $params
Para validar que se ha establecido el SPN, escriba los siguientes comandos en el símbolo del sistema de PowerShell de Microsoft Graph.
$msp = Get-MgServicePrincipal -Filter "AppId eq '$spoappid'"
$spns = $msp.ServicePrincipalNames
$spns
Debería ver una lista actualizada de los SPN para SharePoint en Microsoft 365 en su organización de Microsoft 365, y uno de los SPN debería incluir el nombre de dominio raíz público, precedido por el id. de la entidad de seguridad de la aplicación de SharePoint en Microsoft 365. Este registro es un registro comodín y debería tener un aspecto similar al ejemplo siguiente:
00000003-0000-0ff1-ce00-000000000000/*.<public domain name>.com
Este debería ser el único SPN de la lista que contenga el nombre de dominio raíz público.
Paso 4: registrar el id. de objeto de entidad de seguridad de la aplicación de SharePoint en Microsoft 365 con SharePoint Server
Este paso registra el id. del objeto de entidad de seguridad de la aplicación de SharePoint en Microsoft 365 con el servicio de administración de aplicaciones de SharePoint en Microsoft 365 local, que permite a SharePoint Server autenticarse en SharePoint en Microsoft 365 mediante OAuth.
En el símbolo del sistema de PowerShell, escriba los siguientes comandos.
$spoappprincipalID = (Get-MgServicePrincipal -Filter "AppId eq '$spoappid'").Id
$sponameidentifier = "$spoappprincipalID@$spocontextID"
$appPrincipal = Register-SPAppPrincipal -site $site.rootweb -nameIdentifier $sponameidentifier -displayName "SharePoint"
Para validar este paso, en el símbolo del sistema de PowerShell, escriba la variable $appPrincipal:
$appPrincipal | fl
El resultado esperado es una descripción de la entidad de seguridad de la aplicación registrada con el nombre SharePoint Online, cuyo aspecto debe ser similar al siguiente:
Paso 5: establecer el dominio de autenticación de SharePoint en Microsoft 365
En este paso, se establece el dominio kerberos de autenticación de su granja de servidores de SharePoint Server en el id. de contexto de la organización de Microsoft 365 de la organización.
En el símbolo del sistema de PowerShell, escriba el siguiente comando:
Set-SPAuthenticationRealm -realm $spocontextID
Para validar este paso, en el símbolo del sistema de PowerShell, escriba los siguientes comandos:
$spocontextID
Get-SPAuthenticationRealm
El resultado de cada uno de estos comandos es el GUID que representa el identificador contextual del inquilino de SharePoint en Microsoft 365. Estos GUID deben ser idénticos.
Importante
Si ha configurado scripts de configuración de granja de servidores que especifican el valor del dominio kerberos de autenticación de la granja, debe actualizar los scripts de configuración con este nuevo valor antes de volver a ejecutarlos. > Para obtener más información sobre los requisitos de los valores de dominio en los scripts de configuración de la granja de servidores, vea Planear la autenticación de servidor a servidor en SharePoint Server. Como ya ha configurado esta granja de servidores de SharePoint para que participe en la configuración híbrida, el valor del dominio kerberos de autenticación de la granja de servidores de SharePoint siempre debe coincidir con el identificador de contexto del inquilino. Si cambia este valor, la granja ya no participará en la funcionalidad híbrida.
Paso 6: Configuración de un proxy local para el identificador de Microsoft Entra
En este paso, creará un servicio de proxy de Microsoft Entra ID en la granja de servidores de SharePoint Server. Esto habilita Microsoft Entra ID como emisor de tokens de confianza que SharePoint Server usa para firmar y autenticar tokens de notificaciones de SharePoint en Microsoft 365.
En el símbolo del sistema de PowerShell, escriba los siguientes comandos.
New-SPAzureAccessControlServiceApplicationProxy -Name "ACS" -MetadataServiceEndpointUri $metadataEndpoint -DefaultProxyGroup
New-SPTrustedSecurityTokenIssuer -MetadataEndpoint $metadataEndpoint -IsTrustBroker:$true -Name "ACS"
Para validar el comando New-SPAzureAccessControlServiceApplicationProxy:
Vaya al sitio web de Administración central de SharePoint 2016 y seleccione Seguridad>Seguridad general>Administrar confianza.
Asegúrese de que existe una entrada con un nombre que empieza con ACS y escriba Consumidor de servicios de confianza.
Para comprobar este paso, en el símbolo del sistema de PowerShell, escriba el siguiente comando.
Get-SPTrustedSecurityTokenIssuer
El resultado que se espera es una descripción del emisor de tokens de confianza de la granja de servidores donde el valor de la propiedad RegisteredIssuerName es el siguiente:
00000001-0000-0000-c000-000000000000@<context ID>
Donde:
- <context ID> es el identificador de contexto del inquilino de SharePoint en Microsoft 365, que es el valor de la variable $spocontextID.
Paso 7: Actualización de la búsqueda federada híbrida
A partir de octubre de 2021, se requiere un paso adicional para ajustar una configuración híbrida de SharePoint existente para trabajar con y autenticarse con el nuevo motor de búsqueda de Microsoft 365.
El script debe ejecutarse en un servidor donde esté instalado SharePoint Local (2013, 2016 o 2019). El script intenta instalar las dependencias de módulo necesarias (MSOnline, AzureAD) en el servidor donde se ejecuta.
Descargue el script de configuración.
Desde el directorio donde se descargó el script, ejecute el script mediante la cuenta de administrador de granja de servidores local de SharePoint, con el siguiente comando:
Update-FederatedHybridSearchForM365.ps1 -HybridWebApp YourHybridWebApplication -Force
Para obtener más información sobre los valores de parámetro, ejecute el siguiente comando:
Get-Help .\Update-FederatedHybridSearchForM365.ps1
Cuando se le solicite, inicie sesión con la cuenta de administrador global de Microsoft 365.
Espere a que se complete la ejecución del script; en caso de que haya algún problema, póngase en contacto con el soporte técnico de Microsoft.
Después de la ejecución del script, los usuarios no verán ningún cambio cuando se implemente este cambio.
Paso 8 (solo es necesario para SharePoint Server 2013): Conceder a la nueva entidad de seguridad de aplicación el permiso QueryAsUserIgnoreAppPrincipal
SharePoint Server 2013 necesita una restricción oculta en cada consulta federada. El proxy inverso devuelve los documentos indexados en el propio sitio de proxy inverso, no el sitio de búsqueda local interno como se esperaba. Para evitarlo, debe ejecutar los pasos siguientes en el sitio de administración de SharePoint Server 2013:
Vaya a
<CentralAdminURL>/_layouts/appinv.aspx
y busque c3959f3a-5ad4-4d2b-b1f0-bc70f9a5d0a1, donde debe encontrar la aptitud de bot de búsqueda federada de Groenlandia.Si hay elementos en el campo Dominio de aplicación, déjelos y, si está vacío, use localhost.
En la dirección URL de redireccionamiento, use https://localhost.
En el campo XML de solicitud de permiso, pegue el siguiente extracto XML:
<AppPermissionRequests> <AppPermissionRequest Scope="http://sharepoint/search" Right="QueryAsUserIgnoreAppPrincipal" /> </AppPermissionRequests>
La página de configuración debe parecerse a la siguiente captura de pantalla. Por último, seleccione Crear.
Validación y siguientes pasos
Después de terminar las tareas de este tema y sus pasos de validación, compruebe la configuración de la sincronización de directorios y del SSO.
Para que tenga un historial de los pasos que ha realizado, debe capturar todo el contenido del búfer de PowerShell en un archivo. Esto será fundamental si necesita hacer referencia a su historial de configuración para solucionar problemas o con otros fines. Esto también le permite volver al punto donde lo dejó si la configuración abarca varios días o implica a varias personas.
Una vez completadas y validadas las tareas de configuración de este artículo, continúe con la hoja de ruta de configuración.
Vea también
Entorno híbrido para SharePoint Server
Instalar y configurar un entorno híbrido de SharePoint Server