Microsoft SharePoint 2010: Настройка межфермных служб

OSzone.net » Microsoft » Разработка приложений » Sharepoint/Office » Microsoft SharePoint 2010: Настройка межфермных служб
Автор: Шэннон Брей
Иcточник: MSDN Magazine
Опубликована: 06.04.2012

Корпорация Майкрософт внесла ряд улучшений в способ предоставления и использования служб программой SharePoint. SharePoint 2007 предоставляет службы с помощью так называемого поставщика общих служб (SSP). Хотя SSP был громадным шагом вперед от SharePoint 2003, существовали и некоторые трудности.

Основная проблема архитектуры SharePoint 2007 заключалась в конфигурации «все или ничего». Веб-приложения были привязаны к определенному SSP и не могли использовать службы выборочно. Например, если для SSP настроены службы поиска и Excel, любое веб-приложение SharePoint, использующее корпоративный поиск, также имеет доступ к службам Excel.

Архитектура SSP не была расширяемой. Создание собственных служб с использованием инфраструктуры SSP было невозможным. Наконец, что самое важное, — настройка межфермных служб в SharePoint 2007 была затруднена. Новая архитектура служб в SharePoint 2010 решает все эти проблемы.

Понимание архитектуры приложений служб

Но прежде чем углубляться связь служб в фермах SharePoint, важно понять компоненты и службы, обеспечивающие этот процесс. Ниже приведены некоторые ключевые характеристики архитектуры приложения службы.

В отличие от служб, в SharePoint 2007 теперь можно определять веб-приложения SharePoint, использующие службы. Вы больше не привязаны к стандартному SSP. Можно выбирать подходящие архитектуры.

Архитектура приложений служб теперь может расширяться, это означает, что можно создавать собственные пользовательские службы. Это может обеспечить огромную экономию времени, средств и ресурсов благодаря возможности развертывания пользовательских решений, которые могут работать с различными семействами узлов или даже веб-приложений SharePoint.

SharePoint 2010 не предоставляет какие-либо стандартные службы вместе с SharePoint Foundation, но инфраструктура поддерживает их. Можно создавать собственные службы и использовать их в SharePoint Foundation. Новая архитектура приложений служб позволяет распределить нагрузку на несколько серверов, позволяя решениям работать с соответствующей нагрузкой.

Одна из наиболее переработанных функций — поиск в корпоративной среде. В SharePoint 2007 сервер индекса был единственной точкой отказа. В SharePoint 2010 службы обхода при поиске могут распространяться на несколько серверов. При сбое одного сервера и избыточности системы она продолжает работать надлежащим образом.

Также можно совместно использовать службы различных ферм. Это позволяет консолидировать службы, совместное использование которых необходимо, в одной ферме, предоставляя службы ряду клиентов.

Понимание основных концепций

Термин «приложение службы» используется очень часто. Это усложняет понимание того, работают ли компоненты, и как именно они это делают Чтобы действительно понять, что происходит на самом деле, важно знать следующие термины.

Служба. Двоичные файлы приложения, развернутые для серверов службы.

Экземпляр обслуживающего компьютера. Действительный экземпляр службы, запущенной на сервере.

Приложение службы. Логический компонент, содержащий конфигурацию и данные управления службой, такие как информация приложения службы и строка подключения к базе данных.

Прокси приложения службы. Интерфейс, используемый пользователями службы для связи со службой и системой балансировки нагрузки, чтобы пользователь знал, с каким сервером связываться и как использовать службу. Важно отметить, что прокси приложения службы не является веб-службой или прокси Windows Communication Foundation (WCF).

Пользователь службы. Любое приложение или служба, использующая службу.

Группы прокси служб. Группы приложений служб, связанных с определенными веб-приложениями.

Развертывание служб можно выполнить несколькими способами, включая использование мастера настройки, центра администрирования или Windows PowerShell. Мастер настройки используется для настройки множества служб со значениями по умолчанию. Не следует использовать эту процедуру для производственных сред. Для успешной работы множества служб требуется их настройка вручную.

Центр администрирования позволяет настраивать несколько служб, заполняя связанные с ними поля. Хотя мастер настройки фермы предоставляет большие возможности для настройки, большинство специалистов по SharePoint будут использовать Windows PowerShell.

Windows PowerShell обеспечивает максимальную управляемость среды, но настройка множества приложений служб может представлять сложность. Подробное описание предоставления различных служб SharePoint с использованием Windows PowerShell см. в книге «Automating SharePoint 2010 with Windows PowerShell 2.0» (Wiley, 2011) Шэннона Брея (Shannon Bray) и Гари Лапойнта (Gary Lapointe).

При настройке ферм SharePoint автоматически создаются две службы. Это ключевые компоненты, необходимые для работы служб. Это следующие службы.

Приложения служб должны предоставлять конечную точку веб-службы, поскольку вся связь осуществляется по протоколу HTTPS. Также важно знать, что приложения служб связываются через порты TCP 32843 и 32844. Пользовательские приложения служб обычно используют порт 32845.

Понимание работы федерации служб

Теперь, после ознакомления с объединением служб в федерации, рассмотрим службы, поддерживающие федерации.

Глобальные сети поддерживают и ряд других служб. В их число входят поиск, управляемые метаданные, Business Data Connectivity, профили пользователей и Secure Store. Хотя поддерживаются все эти службы, рекомендуется использовать только поиск и управляемые метаданные.

В среде WAN при обходе увеличивается задержка поиска. До кэширования данных первый поиск служб BCS будет осуществляться медленно. Служба профилей пользователей имеет модуль репликации профилей пользователей, поэтому работа в глобальной сети не рекомендуется. При использовании приложениями службы Secure Store увеличивается задержка.

Примеры ферм

В этом примере будут созданы две фермы. В одной будут размещаться корпоративные службы, а в другой — веб-приложения с содержимым. Обе фермы будут созданы с нуля, и будет описан каждый этап, чтобы вы смогли ознакомиться с процессом объединения служб в федерации в любой среде.

Две фермы будут находиться в одном домене, но они могут быть просто созданы и для различных доменов. Поскольку в этих примерах будет использоваться один домен, можно создать демонстрацию с четырьмя серверами: TechED-AD, TechED-SQL, TechEd-Services и TechEd-SP.

Начнем с создания соответствующих учетных записей в Active Directory. Будут созданы следующие учетные записи: spFarm, spServices, spContent, spCrawl, spUPS и spC2WTS. Для ускорения процесса можно добавить учетные записи, используя Windows PowerShell из одной из ферм SharePoint (дополнительные сведения см. на рис. 1). Важно отметить, что эти учетные записи будут создавать в подразделении управляемых учетных записей служб, поэтому, если вы работаете не с Windows Server 2008 R2, потребуется изменить местоположение CN в сценариях на рис. 1.

Рис. 1. Добавление учетных записей SharePoint в 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()

После настройки учетных записей мы сосредоточимся на среде корпоративных служб. Для этого примера настроим ферму для включения только служб, поддерживающих федерацию, которые могут быть быстро предоставлены (управляемые метаданные, BCS и Secure Store). Для создания среды корпоративных служб будем использовать Windows PowerShell для выполнения всей тяжелой работы. Это важно, поскольку обеспечивает согласованность и известное состояние. На рис. 2 показано создание фермы. Скоро мы рассмотрим эти службы.

Сценария для настройки пользовательской фермы сходен с показанным на рис. 3.

Рис. 2. Создание корпоративной фермы.

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!"

Рис. 3. Создание пользовательской фермы.

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!"

Предоставление среды корпоративных служб

Теперь можно создать ряд служб для совместного использования с другой фермой. Как упоминалось выше, в федерацию можно объединить шесть служб. Создадим несколько служб, чтобы у нас была основа для дальнейшей работы, как показано на рис. 4.

Рис. 4. Предоставление служб предприятия.

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!"

Предоставление пользовательской среды

Вся тяжелая работа для фермы публикации уже выполнена. Теперь сосредоточимся на ферме, которая будет использовать корпоративные службы. Здесь можно создать любые службы. Важно понимать, что можно использовать пользовательские службы из любой фермы и полагаться на эту ферму для предоставления ресурсов.

В пользовательской ферме вы также будете предоставлять веб-приложение содержимого SharePoint, которое может использоваться для демонстрации корпоративных служб, как показано на рис. 5.

Рис. 5. Предоставление содержимого 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!"

Настройка сертификатов

Теперь фермы готовы. Далее мы опубликуем корпоративные службы, которые хотим предоставить пользователю. Это можно сделать, выполнив ряд действий.

Прежде всего необходимо экспортировать корневой сертификат из корпоративной фермы. Для этого создадим путь для экспорта сертификата (см. рис. 6). После подтверждения пути используем командлет Get-SPCertificateAuthority для экспорта сертификата для фермы.

Рис. 6. Создание пути для сертификата.

# 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

Создание сертификата в ферме пользователя

В ферме пользователя необходимо экспортировать не только корпоративный сертификат, но и сертификат STS (см. рис. 7). Последний экспортируется с помощью командлета Get-SPSecurityTokenServiceConfig.

Для упрощения этого процесса также получается идентификатор для пользовательской фермы и создается текстовый файл. Добавьте идентификатор фермы к разрешениям публикации корпоративной фермы, чтобы обеспечить доступ к службам.

Рис. 7. Экспорт сертификата 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

Замена сертификатов

Теперь у нас есть необходимые сертификаты двух ферм. Используйте командлет Copy-Item для копирования EnterpriseServicesRootCert.cer из пользовательской фермы и последующего копирования сертификатов IntranetRootCert и IntranetSTSCert в корпоративную ферму, как показано ниже.

$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

Импорт сертификата издателя

Теперь необходимо импортировать два сертификата интрасети в корпоративную ферму и установить доверительные отношения. Для настройки полномочий необходимо использовать идентификатор фермы. Используйте текстовый файл, созданный несколькими шагами ранее, для обеспечения эффективности процесса, и выполните команды, показанные на рис. 8, в ферме издателя, для настройки отношений доверия с пользовательской фермой.

Рис. 8. Установление отношений доверия с пользовательской фермой.

$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 "http://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

Импорт пользовательского сертификата

Для завершения работы с сертификатами необходимо выполнить последний шаг. В пользовательской ферме необходимо выполнить следующий сценарий для импорта EnterpriseServicesRootCert и выполнения следующих команд в пользовательской ферме для настройки отношений доверия с фермой издателя:

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

Публикация служб

Мы создали две фермы, импортировали корневой сертификат с корпоративной фермы в пользовательскую ферму, импортировали корневой сертификат и сертификат STS из пользовательской фермы в корпоративную ферму и использовали идентификатор пользовательской фермы для установления доверия между двумя фермами. Теперь рассмотрим центральное администрирование и публикацию служб.

Следующий шаг — просмотр приложений служб. Найдите одну из шести служб для совместного использования, выберите ее и нажмите кнопку «Публикация» в ленте. Появится диалоговое окно, в котором можно выбрать способ предоставления службы. Для параметра «Тип подключения» выберите HTTPS и установите флажок «Опубликовать это приложение-службу в других фермах». Запишите URL-адрес издателя. Его можно использовать несколькими способами.

Использование служб

SharePoint предоставляет различные способы использования служб. Прежде всего выберите кнопку «Подключить» в ленте. При нажатии кнопки «Подключить» в ленте появится диалоговое окно «Подключение к удаленному приложению-службе». Скопируйте полный URL-адрес из предыдущего раздела и вставьте его в текстовое поле. Нажмите «ОК», после чего появится определенная служба. Это вызвано специальной идентификацией службы. Также можно просмотреть все опубликованные службы, просто используя HTTPS-адрес.

Это помогает подтвердить правильность настройки сертификатов. Наконец, укажите тип подключения, которое необходимо установить. Это полезно, если издатель предоставляет несколько приложений служб одного типа. Важно отметить, что используется только путь HTTPS. В результате будут видны только приложения служб выбранного типа.

Устранение неполадок решения федеративной службы

На федеративные службы может влиять несколько факторов. Необходимо учитывать ограничения сети, брандмауэра и инфраструктуры. Если фермы серверов находятся в различных доменах, для приложения службы профилей пользователей требуются доверительные отношения между доменами.

Для работы функций администрирования приложений служб Business Data Connectivity и Secure Store из пользовательской фермы домен фермы публикации должен иметь доверительные отношения с доменом пользовательской фермы. Другие приложения межфермных служб работают без необходимости установления отношений доверия между доменами. Помимо проверки доверительных отношений доменов, также необходимо проверить следующее.

В качестве дальнейшего примера попробуйте обратиться к одной из служб из пользовательской фермы. Обратите внимание на ошибку «Веб-узел отклонил запрос на отображение этой веб-страницы». Для устранения неполадки посетите корпоративную ферму и разрешите использование этой службы пользовательской фермой.

Для настройки разрешений пользовательской фермы выберите приложение службы, которое необходимо настроить, и щелкните «Разрешения». Будет получен идентификатор пользовательской фермы. Если помните, был создан текстовый файл с идентификатором пользовательской фермы. Он был перенесен в ферму публикации. Найдите файл c:\certs. Вставьте идентификатор фермы в текстовое поле и щелкните «Добавить». Затем проверьте соответствующие разрешения. Теперь можно начать тестирование службы.

Тестирование решения федеративной службы

Вы должны иметь возможность взаимодействия со службами из пользовательской фермы. Для этой лабораторной среды будут использоваться образы Hyper-V. Два образа предназначены для среды размещения, и два — для среды использования. Можно просто расширить число серверов, но из-за аппаратных ограничений демонстрационных сред проще использовать один сервер для Active Directory и совместно использовать роли SQL Server и SharePoint 2010 на другом сервере.

Хотя не требуется точное соблюдение всех этих этапов, оно рекомендуется для получения единообразных результатов. Конфигурация сети выходит за рамки данного документа, но с ней можно ознакомиться в моем блоге.

Для каждого сервера установлены следующие параметры.

Имя сервера: TechED-AD IP Address 192.168.110.1

Домен: TechED.local Forest Functional Level Windows Server 2008 R2

Пароль на администрирование: pass@word1

Имя сервера: TechED-SQL IP Address 192.168.110.2

Домен:  TechED.local Forest Functional Level Windows Server 2008 R2

Пароль на администрирование: pass@word1

Имя сервера: TechED-Serives IP Address 192.168.110.11

Домен: TechED.local Forest Functional Level Windows Server 2008 R2

Пароль на администрирование: pass@word1

Имя сервера: TechED-SP IP Address 192.168.110.12

Домен: TechED.local Forest Functional Level Windows Server 2008 R2

Пароль на администрирование: pass@word1

После создания четырех машин создадим новый доменный лес в контроллере домена (DC). В этом примере используется домен TechED.local. Для продвижения серверов в контроллеры доменов используется служебная программа DCPromo. Используйте указанные ранее параметры для назначения соответствующих IP-адресов сетевым адаптерам и переименования компьютеров соответствующим образом.

После установления контроллеров доменов и настройки IP-адресов можно присоединить серверы, на которых будут размещаться SQL Server и SharePoint 2010. Включите интегрированную среду сценариев Windows PowerShell (ISE) на всех серверах, на которых размещаются SQL Server и SharePoint. Это упрощает управление Windows PowerShell.

Теперь установите SQL Server 2008 R2 на сервере TechED-SQL (см. рис. 9). На размещающем компьютере должен находиться верный загруженный файл ISO для подключения к виртуальной машине с помощью команд «Носители» | «DVD-дисковод» | «Вставить диск».

Рис. 9. Установка 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

После установки TechED-SQL установите только необходимые компоненты и двоичные файлы SharePoint. Не запускайте мастер. Перед выполнением последующих действий необходимо сделать снимок четырех компьютеров. Лучше перестраховаться, чем потом раскаиваться.


Ссылка: http://www.oszone.net/17579/Microsoft-SharePoint-2010