Compartir a través de


Microsoft SharePoint 2010: Configuración de servicios en varias granjas

Puede configurar SharePoint para establecer comunicación entre límites de granjas, y así compartir y consumir servicios de otras granjas de servidores.

Shannon Bray

Microsoft ha realizado varias mejoras respecto a cómo SharePoint ofrece y consume servicios. En SharePoint 2007, tenía servicios disponibles en lo que se llamaba proveedor de servicios compartidos (SSP). Aun cuando el SSP fue un gran avance en comparación con lo que se tenía en SharePoint 2003, hubo varios desafíos.

El problema principal con la arquitectura de SharePoint 2007 fue que se trataba de una configuración del tipo todo o nada. Las aplicaciones web estaban asociadas a un SSP específico y no podían consumir servicios de manera selectiva. Por ejemplo, si el SSP tenía la búsqueda y el servicio de Excel configurados, cualquier aplicación web de SharePoint que consumiera la búsqueda empresarial también tendría acceso a los servicios de Excel.

La arquitectura del SSP no era extensible tampoco. No se podían crear servicios propios usando la misma infraestructura del SSP. Por último, y lo más importante, era difícil configurar los servicios en varias granjas en SharePoint 2007. La nueva arquitectura de servicios de SharePoint 2010 abarca todos estos problemas.

Entienda la arquitectura de aplicación de servicios

Antes de profundizar en cómo obtener servicios para comunicarse a través de los límites de las granjas de SharePoint, es importante comprender los componentes y los servicios que lo hacen posible. Estas son algunas de las características claves de la arquitectura de aplicación de servicio:

  • Puede consumir los servicios “a la carta”.
  • La arquitectura del servicio es extensible.
  • Los servicios se admiten en SharePoint Foundation.
  • Puede escalar los servicios.
  • Los servicios pueden ser resistentes o redundantes.
  • Puede federar los servicios.

A diferencia de los servicios en SharePoint 2007, ahora puede decidir cuáles aplicaciones web de SharePoint pueden consumir sus servicios. Ya no está más restringido por el SSP. Puede seleccionar y elegir las arquitecturas adecuadas.

La arquitectura de aplicación de servicio ahora es extensible, lo que significa que puede crear sus propios servicios personalizados. Esto puede ahorrar una gran cantidad de tiempo, dinero y recursos porque puede implementar soluciones personalizadas que pueden operar en varias colecciones de sitios e incluso en aplicaciones web de SharePoint.

SharePoint 2010 no ofrece ningún servicio de manera predeterminada con SharePoint Foundation, pero la infraestructura está ahí presente para admitirlos. Puede crear sus propios servicios y usarlos en SharePoint Foundation. Con la arquitectura de aplicación de servicio nueva puede distribuir la carga entre varios servidores, lo que permite que sus diseños controlen la carga adecuada.

Uno de los servicios que más se ha modernizado es Enterprise Search (Búsqueda empresarial). En SharePoint 2007, el servidor de indexación era un punto de error único. En SharePoint 2010, puede hacer que sus servicios de rastreo de búsqueda abarquen varios servidores. En caso de que uno presente un error, puede contar con la redundancia y el sistema seguirá funcionando según lo previsto.

Ahora puede también compartir servicios a través de los límites de la granja. Esto le permite consolidar los servicios que desea compartir en una sola granja, mientras todavía puede ofrecer servicios a varios consumidores.

Entienda los conceptos clave

El término “aplicación de servicio” se ha usado demasiado. Esto dificulta que las personas entiendan dónde se encuentran los componentes y cómo funcionan. Para poder controlar realmente lo que sucede en segundo plano, es importante conocer los siguientes términos:

Servicio: los archivos binarios de la aplicación que se implementaron en los servidores de la granja.

Instancia del equipo de servicio: la instancia real del servicio que se ejecuta en el servidor.

Aplicación de servicio: un componente lógico que contiene la configuración y la administración del servicio, como la información de la aplicación de servicio y la cadena de conexión de la base de datos.

Proxy de aplicación de servicio: la interfaz que usan los consumidores del servicio para comunicarse con el servicio y el equilibrador de carga, de modo que el consumidor conozca el servidor con el que debe ponerse en contacto y cómo consumir el servicio real. Es importante tener en cuenta que el proxy de aplicación de servicio no es un servicio web ni un proxy de Windows Communication Foundation (WCF).

Consumidor de servicio: cualquier aplicación o servicio que consume el servicio.

Grupos de proxy de servicio: Grupos de aplicaciones de servicio asociadas con aplicaciones web específicas.

Puede implementar servicios de varias formas, incluido el Asistente de configuración, la Administración central o Windows PowerShell. El Asistente de configuración configura muchos de los servicios con los valores predeterminados. No debe usarlo para entornos de producción. Hay muchos servicios que se deben configurar manualmente a fin de garantizar el éxito.

En Administración central, puede configurar varios servicios llenando los campos asociados a estos. Aunque tenga un poco más de control que cuando usa el Asistente de configuración de granja, la mayoría de los profesionales de SharePoint decidirán usar Windows PowerShell.

Windows PowerShell proporciona el máximo de control sobre su entorno; no obstante, la configuración de muchas de las aplicaciones de servicio puede presentar algunas dificultades. Para obtener una compresión detallada sobre cómo aprovisionar los diversos servicios de SharePoint usando Windows PowerShell, consulte “Automatización de SharePoint 2010 con Windows PowerShell 2.0” (Wiley, 2011) de Shannon Bray y Gary Lapointe.

Al configurar sus granjas de SharePoint, obtendrá dos servicios que se crean automáticamente. Estos son componentes clave para el funcionamiento de los servicios. Entre estos servicios, se incluyen:

  • Detección de la aplicación y aplicación de servicio de equilibrador de carga
  • Aplicación de servicio de token de seguridad (STS)

Las aplicaciones de servicio deben exponer un extremo web debido a que todas sus comunicaciones se producen en HTTPS. También es importante saber que las aplicaciones de servicio se comunican mediante los puertos TCP 32843 y 32844. Las aplicaciones de servicio personalizadas usan, generalmente, el puerto 32845.

Entienda cómo funciona la federación de servicio

Ahora que tiene una buena comprensión sobre cómo se federan los servicios, echemos un vistazo a los que admiten la federación:

  • Búsqueda
  • Perfiles de usuario
  • Metadatos administrados
  • Servicios de conectividad empresarial (BCS)
  • Almacenamiento seguro
  • Análisis de web

Existen muchos otros servicios que se admiten a través de una WAN. Estos incluyen Búsqueda, Metadatos administrados, Conectividad a datos empresariales, Perfil de usuario y Almacenamiento seguro. Aun cuando se admiten todos ellos, se recomienda usar Búsqueda y Metadatos administrados solamente.

En un entorno WAN, la búsqueda tendrá un aumento de latencia durante el rastreo. BCS experimentará por primera vez accesos lentos antes de que los datos se almacenen en caché. El servicio Perfil de usuario tiene el motor de replicación de perfiles de usuario, por lo que no se recomienda trabajar en una WAN. Cuando las aplicaciones usan Almacenamiento seguro, se presenta la latencia.

Granjas de ejemplo

Para este ejemplo, crearemos dos granjas. Una hospedará los servicios empresariales y la otra las aplicaciones de web de contenido. Vamos a crear desde cero y resumir cada paso para que sepa cómo federar los servicios en cualquier entorno.

Las dos granjas estarán en el mismo dominio, pero también se pueden crear fácilmente en varios dominios. Debido a que usaremos el mismo dominio para estos ejemplos, puede crear la demostración con cuatro servidores: TechED-AD, TechED-SQL, TechEd-Services y TechEd-SP.

Empiece por crear las cuentas apropiadas en Active Directory. Las cuentas son las siguientes: spFarm, spServices, spContent, spCrawl, spUPS y spC2WTS. Para acelerar el proceso, puede ver cuentas usando Windows PowerShell de una de nuestras granjas de SharePoint (consulte la Figura 1 para obtener más detalles). Es importante considerar que crearemos estas cuentas en la unidad organizacional (OU) de cuentas de servicio administrado, de modo que si no va a empezar a usar Windows Server 2008 R2, tendrá que cambiar la ubicación de CN en las secuencias de comando de la Figura 1.

Figura 1 Adición de cuentas de SharePoint a Active Directory.

$domainName = $env:USERDOMAIN $LDAP = "LDAP://CN=Managed Service Accounts,DC=$domainName, DC=local" $objCN = [ADSI]$LDAP $objUser = $objCN.Create("user","CN=SharePoint Services") $objUser.Put("sAMAccountName","spServices") $objUser.Setinfo() $objUser.psbase.invokeset("AccountDisabled", "False") $objUser.SetPassword("pass@word1") $objUser.setinfo() $domainName = $env:USERDOMAIN $LDAP = "LDAP://CN=Managed Service Accounts,DC=$domainName, DC=local" $objCN = [ADSI]$LDAP $objUser = $objCN.Create("user","CN=SharePoint Content") $objUser.Put("sAMAccountName","spContent") $objUser.Setinfo() $objUser.psbase.invokeset("AccountDisabled", "False") $objUser.SetPassword("pass@word1") $objUser.setinfo() $domainName = $env:USERDOMAIN $LDAP = "LDAP://CN=Managed Service Accounts,DC=$domainName, DC=local" $objCN = [ADSI]$LDAP $objUser = $objCN.Create("user","CN=SharePoint Search Crawl") $objUser.Put("sAMAccountName","spCrawl") $objUser.Setinfo() $objUser.psbase.invokeset("AccountDisabled", "False") $objUser.SetPassword("pass@word1") $objUser.setinfo() $domainName = $env:USERDOMAIN $LDAP = "LDAP://CN=Managed Service Accounts,DC=$domainName, DC=local" $objCN = [ADSI]$LDAP $objUser = $objCN.Create("user","CN=SharePoint User Profile Services Sync") $objUser.Put("sAMAccountName","spUPS") $objUser.Setinfo() $objUser.psbase.invokeset("AccountDisabled", "False") $objUser.SetPassword("pass@word1") $objUser.setinfo() $domainName = $env:USERDOMAIN $LDAP = "LDAP://CN=Managed Service Accounts,DC=$domainName, DC=local" $objCN = [ADSI]$LDAP $objUser = $objCN.Create("user","CN=SharePoint C2WTS") $objUser.Put("sAMAccountName","spC2WTS") $objUser.Setinfo() $objUser.psbase.invokeset("AccountDisabled", "False") $objUser.SetPassword("pass@word1") $objUser.setinfo() $domainName = $env:USERDOMAIN $LDAP = "LDAP://CN=Managed Service Accounts,DC=$domainName, DC=local" $objCN = [ADSI]$LDAP $objUser = $objCN.Create("user","CN=SharePoint Farm") $objUser.Put("sAMAccountName","spFarm") $objUser.Setinfo() $objUser.psbase.invokeset("AccountDisabled", "False") $objUser.SetPassword("pass@word1") $objUser.setinfo()

Ahora que hemos configurado las cuentas, nos centraremos en el entorno de los servicios empresariales. Según este ejemplo, configuraremos nuestra granja para que incluya solo los servicios que admiten la federación y que se pueden aprovisionar rápidamente (Metadatos administrados, BCS y Almacenamiento seguro). Para crear el entorno de los servicios empresariales, contaremos con Windows PowerShell para ayudar con el trabajo pesado. Este paso es importante porque asegura la consistencia y lo deja en un estado conocido. En la Figura 2 se crea la granja. Aprovisionaremos los servicios dentro de poco.

La secuencia de comandos para configurar la granja del consumidor será similar a la que se muestra en la Figura 3.

Figura 2 Cree la granja empresarial.

Add-PSSnapin Microsoft.SharePoint.Powershell -EA 0 # Settings $databaseServer = "TECHED-SQL" $configDatabase = "Enterprise_Farm_Config" $adminContentDB = "Enterprise_Farm_Content_Admin" $passphrase = "pass@word1" $farmAccountName = "TECHED\spfarm" $farmAccount = Get-Credential $farmAccountName $passphrase = (ConvertTo-SecureString $passphrase -AsPlainText -force) #will error, but fix the regkey... psconfig.exe -cmd upgrade Write-Host "Creating Configuration Database and Central Admin Content Database..." New-SPConfigurationDatabase -DatabaseServer $databaseServer -DatabaseName $configDatabase ` -AdministrationContentDatabaseName $adminContentDB ` -Passphrase $passphrase -FarmCredentials $farmAccount $spfarm = Get-SPFarm -ErrorAction SilentlyContinue -ErrorVariable err if ($spfarm -eq $null -or $err) { throw "Unable to verify farm creation." } Write-Host "ACLing SharePoint Resources..." Initialize-SPResourceSecurity Write-Host "Installing Services ..." Install-SPService Write-Host "Installing Features..." Install-SPFeature -AllExistingFeatures Write-Host "Creating Central Administration..." New-SPCentralAdministration -Port 2010 -WindowsAuthProvider NTLM Write-Host "Installing Help..." Install-SPHelpCollection -All Write-Host "Installing Application Content..." Install-SPApplicationContent Write-Host "Enterprise Farm Creation Complete!"

Figura3 Cree la granja del consumidor.

Add-PSSnapin Microsoft.SharePoint.Powershell -EA 0 # Settings $databaseServer = "TECHED-SQL" $configDatabase = "Consumer_Farm_Config" $adminContentDB = "Consumer_Farm_Content_Admin" $passphrase = "pass@word1" $farmAccountName = "TECHED\spfarm" $farmAccount = Get-Credential $farmAccountName $passphrase = (ConvertTo-SecureString $passphrase -AsPlainText -force) #will error, but fix the regkey... psconfig.exe -cmd upgrade Write-Host "Creating Configuration Database and Central Admin Content Database..." New-SPConfigurationDatabase -DatabaseServer $databaseServer -DatabaseName $configDatabase ` -AdministrationContentDatabaseName $adminContentDB ` -Passphrase $passphrase -FarmCredentials $farmAccount $spfarm = Get-SPFarm -ErrorAction SilentlyContinue -ErrorVariable err if ($spfarm -eq $null -or $err) { throw "Unable to verify farm creation." } Write-Host "ACLing SharePoint Resources..." Initialize-SPResourceSecurity Write-Host "Installing Services ..." Install-SPService Write-Host "Installing Features..." Install-SPFeature -AllExistingFeatures Write-Host "Creating Central Administration..." New-SPCentralAdministration -Port 2010 -WindowsAuthProvider NTLM Write-Host "Installing Help..." Install-SPHelpCollection -All Write-Host "Installing Application Content..." Install-SPApplicationContent Write-Host "Consumer Farm Creation Complete!"

Aprovisione un entorno de servicios empresariales

Ahora puede crear varios servicios que pretende compartir con otra granja. Como se mencionó anteriormente, puede federar seis servicios. Cree un par de estos aquí para que tenga algo que crear, como se muestra en la Figura 4.

Figura 4 Aprovisione servicios empresariales.

Add-PSSnapin Microsoft.SharePoint.Powershell -EA 0 # App Pools $saAppPoolName = "SharePoint Web Services Default" $saAppPoolUserName = "TECHED\spservices" # Service Application and DB names $stateName = "Enterprise Farm State Service" $stateDBName = "Enterprise_Farm_StateService" $usageName = "Enterprise Farm Usage and Health Data Collection Service" $usageDBName = "Enterprise_Farm_Usage" # Create Managed Accounts and Application Pools # Service Apps Write-Host "Please supply the password for the $saAppPoolUserName Account..." $appPoolCred = Get-Credential $saAppPoolUserName $saAppPoolAccount = New-SPManagedAccount -Credential $appPoolCred $saAppPool = New-SPServiceApplicationPool -Name $saAppPoolName -Account $saAppPoolAccount # Create State Service Application and Proxy, and add to default proxy group Write-Host "Creating $stateName Application and Proxy..." $stateDB = New-SPStateServiceDatabase -Name $stateDBName $state = New-SPStateServiceApplication -Name $stateName -Database $stateDB New-SPStateServiceApplicationProxy -Name "$stateName Proxy" -ServiceApplication $state -DefaultProxyGroup # Setup the Usage Service App Write-Host "Creating $usageName Application and Proxy..." $serviceInstance = Get-SPUsageService New-SPUsageApplication -Name $usageName -DatabaseName $usageDBName -UsageService $serviceInstance # app pool $saAppPoolName = "SharePoint Web Services Default" $appPoolUserName = "TECHED\spServices" # Gets app pool or quits Write-Host "Getting Application Pool..." $saAppPool = Get-SPServiceApplicationPool -Identity $saAppPoolName -EA 0 if($saAppPool -eq $null) { Write-Host "Cannot find the Application Pool $appPoolName, please ensure it exists before continuing." Exit -1 } # MMS specifics $mmsInstanceName = "MetadataWebServiceInstance" $mmsName = "Enterprise Farm Managed Metadata Service" $mmsDBName = "Enterprise_Farm_Managed_Metadata" # Sets up Managed Metadata service instance & service app and proxy Write-Host "Creating $mmsName Application & proxy..." $mms = New-SPMetadataServiceApplication -Name $mmsName -ApplicationPool $saAppPoolName -DatabaseName $mmsDBName $proxy = New-SPMetadataServiceApplicationProxy -Name "$mmsName Proxy" -ServiceApplication $mms -DefaultProxyGroup Write-Host "Starting the $mmsInstanceName..." Get-SPServiceInstance | where{$_.GetType().Name -eq $mmsInstanceName} | Start-SPServiceInstance Write-Host "Enterprise MMS Complete!" # BDC specifics $bdcInstanceName = "Business Data Connectivity Service" $bdcName = "Enterprise Farm Business Data Connectivity Service" $bdcDBName = "Enterprise_Farm_BDC" # Sets up Business Data Connectivity Service Application and Proxy and Service Instance Write-Host "Creating $bdcInstanceName Application and Proxy..." $bdc = New-SPBusinessDataCatalogServiceApplication -Name $bdcName -ApplicationPool $saAppPoolName -DatabaseName $bdcDBName Write-Host "Starting the $bdcInstanceName Instance..." Get-SPServiceInstance | where-object {$_.TypeName -eq $bdcInstanceName} | Start-SPServiceInstance Write-Host "Enterprise BDC Complete!" # SSS Specifics $sssInstanceName = "Secure Store Service" $serverName = "TechED-Services" $sssName = "Enterprise Farm Secure Store Service" $sssDBName = "Enterprise_Farm_SecureStore" # Sets up Secure Store Service Application & Proxy and Service Instance Write-Host "Creating $sssName Application & Proxy..." $sss = New-SPSecureStoreServiceApplication -Name $sssName -ApplicationPool $saAppPoolName -DatabaseName $sssDBName -auditingEnabled:$true -auditlogmaxsize 30 -Sharing:$false $proxy = New-SPSecureStoreServiceApplicationProxy -Name "$sssName Proxy" -ServiceApplication $sss -DefaultProxyGroup Write-Host "Starting the $sssInstanceName Instance..." $sssInstance = Get-SPServiceInstance | where-object{$_.TypeName -eq "Secure Store Service" -and $_.Server.Address -eq $serverName} | Start-SPServiceInstance Write-Host "Enterprise SSS Complete!"

Aprovisione un entorno de consumo

Todo el trabajo pesado para la granja de publicación está completo. Ahora nos centraremos en la granja que usará los servicios empresariales. Aquí puede crear cualquier servicio. Lo más importante que debe entender es que puede consumir servicios provenientes de otra granja y contar con dicha granja para proporcionar esos recursos.

En la granja del consumidor, estará también aprovisionando una aplicación web de contenido de SharePoint que se puede usar para demostrar los servicios empresariales, como se muestra en la Figura 5.

Figura 5 Aprovisione contenido de SharePoint.

# App Pools $saAppPoolName = "SharePoint Web Services Default" $saAppPoolUserName = "TECHED\spservices" $waAppPoolName = "SharePoint Content" $waAppPoolUserName = "TECHED\spcontent" # Web App details $mainURL = "http://teched-sp" $webAppName = "TechED Consumer" $contentDBName = "Consumer_Farm_Content_Web_Application" # Root Site Collection details $ownerEmail = "administrator@teched.com" $ownerAlias = "TECHED\administrator" # Web app Write-Host "Please supply the password for the $waAppPoolUserName Account..." $appPoolCred = Get-Credential $waAppPoolUserName $waAppPoolAccount = New-SPManagedAccount -Credential $appPoolCred <# Create a new Web App using Claims (Windows (NTLM)) #> $authProvider = New-SPAuthenticationProvider $webApp = New-SPWebApplication -ApplicationPool $waAppPoolName -ApplicationPoolAccount $waAppPoolAccount -Name $webAppName -Port 80 -AuthenticationProvider $authProvider -DatabaseName $contentDBName # Set sensible content db limits Set-SPContentDatabase $contentDBName -MaxSiteCount 50 -WarningSiteCount 30 <# Create Site Collection at root #> New-SPSite -Url $mainURL -owneralias $ownerAlias -ownerEmail $ownerEmail Write-Host "WebApp Complete!"

Configure los certificados

Ahora las granjas están completas. Luego, publicaremos los servicios empresariales que queremos compartir con el consumidor. Esta operación se puede realizar en varios pasos:

  • Cree certificados en la granja empresarial.
  • Cree certificados en la granja del consumidor.
  • Intercambie los certificados.
  • Importe los certificados de la granja empresarial.
  • Importe los certificados de la granja del consumidor.
  • Cree certificados en la granja empresarial.

Primero, tiene que exportar el certificado raíz de la granja empresarial. Para hacerlo, cree una ruta para exportar el certificado (consulte la Figura 6). Después de confirmar la ruta, use el cmdlet Get-SPCertificateAuthority para exportar el certificado para su granja.

Figura 6 Cree una ruta para un certificado.

# Add-PSSnapin Microsoft.SharePoint.Powershell -EA 0 $path = "C:\Certs" # Test and Create Path If ((test-path $path) -eq $false) { [IO.Directory]::CreateDirectory("$path") } # Export Cert $rootCert = (Get-SPCertificateAuthority).RootCertificate $rootCert.Export("Cert") | Set-Content "C:\Certs\EnterpriseServicesRootCert.cer" -Encoding byte

Cree un certificado en la granja del consumidor.

En la granja del consumidor, no sólo es necesario exportar el certificado raíz, sino también un certificado STS (consulte la Figura 7). Este último se exporta usando el cmdlet Get-SPSecurityTokenServiceConfig.

Para facilitar el proceso, obtendrá también el Id. de granja de su granja del consumidor, además de crear un archivo de texto. Agregue el Id. de granja a los permisos de publicación en la granja empresarial para que pueda tener acceso a sus servicios.

Figura 7 Exporte el certificado de STS.

# Add-PSSnapin Microsoft.SharePoint.Powershell -EA 0 $publisher = "TECHED-Services" $consumer = "TECHED-SP" $path = "C:\Certs" # Test and Create Path If ((test-path $path) -eq $false) { [IO.Directory]::CreateDirectory("$path") } # Run the following to export the necessary certificates on the consumer farm to c:\temp on the server: $rootCert = (Get-SPCertificateAuthority).RootCertificate $rootCert.Export("Cert") | Set-Content "C:\Certs\IntranetRootCert.cer" -Encoding byte $stsCert = (Get-SPSecurityTokenServiceConfig).LocalLoginProvider.SigningCertificate $stsCert.Export("Cert") | Set-Content "C:\Certs\IntranetSTSCert.cer" -Encoding byte #On the consumer farm, run the following command to get the id of the consumer farm: $farmID = (Get-SPFarm).Id New-Item C:\Certs\IntranetConsumerFarmID.txt -type file -force -value "$farmID" #On the consumer farm, run the following command to copy the IntranetConsumerFarmID.txt to the publisher farm Copy-Item \\$consumer\c$\Certs\IntranetConsumerFarmID.txt \\$publisher\c$\Certs

Intercambie los certificados

Ahora tiene los certificados que necesita de ambas granjas. Use el cmdlet Copy-Item para tomar el EnterpriseServicesRootCert.cer y cópielo a la granja del consumidor, luego copie los certificados IntranetRootCert e IntranetSTSCert a la granja empresarial, como se muestra a continuación:

$publisher = "TECHED-Services" $cconsumer = "TECHED-SP" # Copy to Consumer Copy-Item \\$publisher\c$\Certs\EnterpriseServicesRootCert.cer \\$cconsumer\c$\Certs Copy-Item \\$cconsumer\c$\Certs\IntranetRootCert.cer \\$publisher\c$\Certs Copy-Item \\$cconsumer\c$\Certs\IntranetSTSCert.cer \\$publisher\c$\Certs

Importación del certificado de editor

Ahora necesita importar los dos certificados de intranet de la granja empresarial y establecer confianza. Tiene que usar el Id. de granja para configurar los permisos. Use el archivo de texto que creó en los pasos anteriores para que el proceso sea continuo y ejecute los comandos que aparecen en la Figura 8 de la granja del editor para establecer la relación de confianza con la granja del consumidor.

Figura 8 Establezca una relación de confianza con la granja del consumidor.

$trustCert = Get-PfxCertificate "C:\certs\IntranetRootCert.cer" New-SPTrustedRootAuthority Intranet -Certificate $trustCert $stsCert = Get-PfxCertificate "c:\certs\IntranetSTSCert.cer" New-SPTrustedServiceTokenIssuer Intranet -Certificate $stsCert $farmID = Get-Content C:\Certs\IntranetConsumerFarmID.txt $security = Get-SPTopologyServiceApplication | Get-SPServiceApplicationSecurity $claimProvider = (Get-SPClaimProvider System).ClaimProvider $principal = New-SPClaimsPrincipal -ClaimType "https://schemas.microsoft.com/sharepoint/2009/08/claims/farmid" -ClaimProvider $claimProvider -ClaimValue $farmID Grant-SPObjectSecurity -Identity $security -Principal $principal -Rights "Full Control" Get-SPTopologyServiceApplication | Set-SPServiceApplicationSecurity -ObjectSecurity $security

Importación del certificado de consumidor

Hay un paso final respecto a los certificados. En la granja del consumidor, necesita ejecutar la siguiente secuencia de comandos para importar el EnterpriseServicesRootCert y ejecutar estos comandos en la granja del consumidor para establecer la relación de confianza con la granja del editor:

$trustCert = Get-PfxCertificate "C:\Certs\EnterpriseServicesRootCert.cer" New-SPTrustedRootAuthority EnterpriseServices -Certificate $trustCert

Publicación de los servicios

Hemos creado las dos granjas, importamos el certificado raíz desde la granja empresarial en la granja del consumidor, importamos los certificados raíz y de STS de la granja del consumidor a la granja empresarial y usamos el Id. de granja para establecer una confianza entre las dos granjas. Ahora exploraremos la administración central además de publicar los servicios.

El siguiente paso consiste en revisar las aplicaciones de servicio. Busque uno de los seis servicios que desea compartir, resáltelo y luego haga clic en el botón Publicar en la cinta. Verá un cuadro de diálogo que le permite seleccionar cómo desea ofrecer su servicio. Cambie el tipo de conexión a HTTPS y confirme la publicación de esta aplicación de servicio para las demás granjas. Anote la dirección URL del editor. Hay varias maneras de usarla.

Consumo de los servicios

SharePoint le proporciona un par de rutas diferentes para llegar a los servicios del consumidor. Primero, resalte el botón Conectar de la cinta. Al hacer clic en el botón Conectar de la cinta, verá el cuadro de diálogo Conectar a la aplicación de servicio remoto. Copie la dirección URL completa de la sección anterior y péguela en el cuadro de texto. Haga clic en Aceptar y podrá ver un servicio específico. Esto ocurre con el servicio que se identifica de manera específica. También puede ver todos los servicios publicados simplemente al usar la dirección HTTPS.

Esto ayudará a confirmar que sus certificados se configuraron correctamente. Por último, especifique el tipo de conexión que desea establecer. Esto sirve en caso de que el editor comparta varias aplicaciones de servicio del mismo tipo. Es importante tener en cuenta que solo va a usar la ruta HTTPS. El resultado final es que solo podrá ver las aplicaciones de servicios del tipo que se especificó originalmente.

Solucione el problema con la solución de servicio federado

Hay varios factores que pueden afectar a sus servicios generados. La red, los firewalls y los impedimentos de infraestructura son varios elementos que se deben considerar. Si las granjas de servidor se ubican en dominios diferentes, la aplicación de servicio Perfil de usuario requiere que ambos dominios tengan una confianza mutua.

Para que las características de administración de la aplicación de servicio Conectividad de datos empresariales y Almacenamiento seguro funcionen desde la granja de consumo, el dominio de la granja de publicación debe confiar en el dominio de la granja de consumo. Otras aplicaciones de servicio de varias granjas funcionan sin un requisito de confianza entre los dominios. Además de confirmar la confianza del dominio, tendrá que comprobar lo siguiente:

  • Asegurar la confianza del dominio.
  • Asegurar que el consumidor tiene permiso para el servicio de topología.
  • Comprobar la ACL.
  • FQDN
  • Los certificados.

Como un ejemplo adicional, intente tener acceso a uno de los servicios de la granja del consumidor. Observe que el error es “El sitio web rechazó mostrar esta página web”. Puede corregir el problema visitando su granja empresarial y permitiendo que la granja del consumidor use ese servicio en particular.

Para configurar los permisos de la granja del consumidor, resalte la aplicación de servicio que desea configurar y haga clic en Permisos. Obtendrá el Id. de granja de su granja del consumidor. Si lo recuerda, usted creó un archivo de texto que incluye el Id. de la granja del consumidor. Lo transfirió a la granja de publicación. Localice este archivo en c:\certs. Pegue el Id. de granja en el cuadro de texto y haga clic en Agregar. Posteriormente, confirme los permisos apropiados. Ahora está preparado para probar su servicio.

Pruebe la solución de servicio federado

Debe ser capaz de interactuar con los servicios desde la granja del consumidor. Para este entorno de laboratorio, usará imágenes Hyper-V. Dos de las imágenes serán para el entorno de hospedaje y dos para el entorno de consumo. Puede ampliar fácilmente la cantidad de servidores, pero debido a las restricciones de hardware en los entornos de demostración, es más fácil usar un servidor para Active Directory y compartir las funciones de SQL Server y SharePoint 2010 en el otro.

Aun cuando no es esencial seguir cada uno de estos pasos de manera exacta, es lo que se recomienda para garantizar un resultado consistente. La configuración de la red está fuera del ámbito de este documento, pero puede encontrar dicha información en mi blog.

Cada uno de los servidores se configuró con la siguiente configuración:

Nombre del servidor: Dirección IP de TechED-AD 192.168.110.1

Dominio: Nivel funcional de bosque de TechED.local Windows Server 2008 R2

Contraseña de administración: pass@word1

 

Nombre del servidor: Dirección IP de TechED-SQL 192.168.110.2

Dominio:  Nivel funcional de bosque de TechED.local Windows Server 2008 R2

Contraseña de administración: pass@word1

 

Nombre del servidor: Dirección IP de TechED-Serives 192.168.110.11

Dominio: Nivel funcional de bosque de TechED.local Windows Server 2008 R2

Contraseña de administración: pass@word1

 

Nombre del servidor: Dirección IP de TechED-SP 192.168.110.12

Dominio: Nivel funcional de bosque de TechED.local Windows Server 2008 R2

Contraseña de administración: pass@word1

Luego de haber creado las cuatro máquinas, cree un bosque de dominio nuevo en el controlador de dominio (DC). Para este ejemplo, el dominio será TechED.local. A fin de promover los servidores en los DC, use la utilidad DCPromo. Use la configuración indicada anteriormente para asignar las direcciones IP adecuadas a las tarjetas de red y cambie el nombre de los equipos, según corresponda.

Después de que haya establecido los DC y configurado sus direcciones IP, puede unirse a los servidores que hospedarán a SQL Server y SharePoint 2010. Habilite la característica de entorno de secuencias de comandos integrado de Windows PowerShell, o ISE, en cada uno de los servidores que hospedan a SQL Server y SharePoint. Esto facilita en gran medida la administración de Windows PowerShell.

Ahora, instale SQL Server 2008 R2 en el servidor de TechED-SQL (consulte la Figura 9). Debe descargar el archivo .iso correcto en su equipo host para que pueda conectarlo a la máquina virtual usando Medios | Unidad de DVD | Insertar disco.

Figura 9 Instale SQL Server.

# Set Exec Policy Set-ExecutionPolicy -executionPolicy Unrestricted # Add SQL Service Account to AD $domainName = $env:USERDOMAIN $LDAP = "LDAP://CN=Managed Service Accounts,DC=$domainName, DC=local" $objCN = [ADSI]$LDAP $objUser = $objCN.Create("user","CN=SQL Service") $objUser.Put("sAMAccountName","sqlService") $objUser.Setinfo() $objUser.psbase.invokeset("AccountDisabled", "False") $objUser.SetPassword("pass@word1") $objUser.setinfo() # Install SQL Server with the following settings # Disable Firewall # # SQL Server Feature Installation # Check … # Database Engine Services, SQL Server Replication, Full-Text Search # Business Intelligence Development Studio # Management Tools - Complete # Microsoft Sync Framework # ----------------------------- # Default Instance # Use account above for all services # Select Windows Authentication Mode and click Add Current User # Complete Wizard

Después de que haya instalado TechED-SQL, instale solamente los prerrequisitos de SharePoint y los archivos binarios. No ejecute el asistente. Además, antes de hacer cualquier cosa, debe tomar una instantánea de los cuatro equipos. Más vale prevenir que curar.

Shannon Bray

Shannon Bray es experto en SharePoint y Microsoft Certified Trainer. Actualmente trabaja en Planet Technologies como arquitecto técnico y trabaja de manera exclusiva con Microsoft SharePoint. Bray se especializa en el diseño de arquitecturas y desarrollo de soluciones usando las tecnologías de Microsoft. Es presidente del Grupo de usuarios de SharePoint en Colorado y ha presentado temas sobre SharePoint en Microsoft TechReady y Tech·Ed. Bray es autor de varias series de entrenamiento en vídeo sobre SharePoint y actualmente es el coautor de “Automatización de la administración de Microsoft SharePoint 2010 con Windows PowerShell 2.0” (Wiley, 2011)

Contenido relacionado