Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Для использования сущности "Документы SharePoint " в организации Dynamics 365 за пределами сетки документов в приложении Dynamics 365 Customer Engagement (on-premises) требуется приложение Azure для предоставления доступа. Примером такого доступа является использование в вызовах API Dynamics 365 Customer Engagement. Настройка использует управляемые удостоверения Power Platform с Azure для предоставления доступа.
Это важно
Начиная с марта 2025 г. текущий доступ будет удален для усиления защиты системы. Чтобы обеспечить непрерывный доступ, выполните следующие действия, чтобы создать приложение Azure с необходимыми разрешениями SharePoint, настроить управляемые удостоверения в организации Dynamics 365 Customer Engagement (on-premises) и настроить федеративные учетные данные.
Создание приложения Azure с разрешениями SharePoint
Создайте регистрацию приложения с разрешением на использование API для SharePoint. Узнайте больше о регистрации приложения и доступе к SharePoint в разделах Краткое руководство по регистрации приложения Azure и Доступ к SharePoint только через приложение Azure AD.
Откройте портал Azure.
В разделе Службы Azure выберите Регистрация приложений.
Выберите Новая регистрация.
Введите имя приложения.
В разделе Поддерживаемые типы учетных записей выберите Учетные записи только в этом каталоге организации.
Замечание
Другие типы учетных записей в настоящее время не поддерживаются.
Выберите Регистрация, чтобы создать регистрацию приложения.
Обратите внимание на идентификатор приложения (клиента) и идентификатор каталога (арендатора).
- В списке навигации выберите Обзор.
- В разделе Основные скопируйте значения Идентификатора приложения (клиента) и Идентификатора каталога (клиента) для использования в следующем разделе.
В списке навигации выберите Управление>Разрешения API.
В разделе Настроенные разрешения выберите Добавить разрешение, чтобы открыть панель Запросить разрешения API.
- Выберите SharePoint.
- В разделе Какой тип разрешений требуется вашему приложению? выберите Разрешения приложения.
- В разделе Выбор разрешений выберите Sites.FullControl.All.
- Выберите Добавить разрешения, чтобы создать разрешение SharePoint.
- Выберите Предоставить согласие администратора для домена
<tenant name>
.
Предварительные требования к настройке сервера
Скачайте пакет NuGet для сборки "Microsoft.Identity.Client" версии 4.11.0.
- Открыть https://www.nuget.org/packages/Microsoft.Identity.Client/4.11.0#readme-body-tab
- В разделе О программе выберите Скачать пакет
Переименуйте загруженный пакет из "microsoft.identity.client.4.11.0.nupkg" в microsoft.identity.client.4.11.0.zip.
Запустите извлечение из microsoft.identity.client.4.11.0.zip.
В извлеченном каталоге откройте папку lib/net45 и найдите файлы «Microsoft.Identify.Client.dll» и «Microsoft.Identify.Client.xml», которые можно использовать на следующем шаге.
На сервере Windows Server, где выполняется роль сервера веб-приложений Dynamics 365 Customer Engagement (on-premises), откройте Internet Information Services Manager.
- Откройте команду «Выполнить » в меню «Пуск » на панели задач Windows.
- Введите inetmgr и нажмите клавишу Enter.
Разверните раздел Сайты на панели Подключения .
Щелкните правой кнопкой мыши сайт Microsoft Dynamics CRM , выберите Обзор, а затем откройте папку CRMWeb .
Откройте папку корзины .
Скопируйте два файла «Microsoft.Identity.Client.dll» и «Microsoft.Identity.Client.xml» из извлеченного каталога пакета NuGet, а затем вставьте оба в папку bin .
Создание записи приложения Azure в таблице PartnerApplicationBase в базе данных организации Dynamics 365 Customer Engagement
- Откройте SQL Server Management Studio и скопируйте этот SQL-скрипт.
IF (SELECT COUNT(*)
FROM OrganizationBase WITH (NOLOCK)) <> 1
THROW 51000, 'Organization records does not equal 1', 1
DECLARE @organizationId UNIQUEIDENTIFIER = (SELECT OrganizationId
FROM OrganizationBase WITH (NOLOCK));
DECLARE @utcNow DATETIME = GetUtcDate();
DECLARE @principalId UNIQUEIDENTIFIER = '00000003-0000-0ff1-ce00-000000000000';
DECLARE @applicationName NVARCHAR(100) = 'Microsoft SharePoint Online';
DECLARE @byoaAppId UNIQUEIDENTIFIER = '<appId>';
--Customer need to provide the app id.
DECLARE @tenantId UNIQUEIDENTIFIER = '<tenantId';
BEGIN TRANSACTION InsertRows
INSERT INTO [dbo].[PartnerApplicationBase]
([PrincipalId]
,[StateCode]
,[Name]
,[UseAuthorizationServer]
,[PartnerApplicationId]
,[StatusCode]
,[ApplicationRole]
,[OrganizationId]
,[CreatedOn]
,[ModifiedOn]
,[TenantId])
VALUES
(@principalId
, 0
, @applicationName
, 1
, @byoaAppId
, 1
, 1
, @organizationId
, @utcNow
, @utcNow
, @tenantId)
COMMIT TRANSACTION InsertRows
В скрипте обновите переменные @byoaAppId и @tenantId значениями идентификатора приложения и идентификатора клиента , которые вы скопировали ранее с портала Microsoft Azure в разделе Создание приложения Azure с разрешениями SharePoint этой статьи.
Проверьте базу данных, а затем выполните скрипт.
Подтвердите, выполнив запрос
SELECT * FROM [PartnerApplicationBase]
select и проверив поля PartnerApplicationId и TenantId .
Отправка сертификата в сертификаты приложений Azure
Получите существующий сертификат Dynamics 365 Customer Engagement (on-premises) с помощью этого скрипта.
cd $PSScriptRoot
$OutputFilePath = $PSScriptRoot + "\certificates\existing_crmsharepoints2s.cer"
$RemoveSnapInWhenDone = $False
if (-not (Get-PSSnapin -Name Microsoft.Crm.PowerShell -ErrorAction SilentlyContinue)) {
Add-PSSnapin Microsoft.Crm.PowerShell
$RemoveSnapInWhenDone = $True
}
try {
# Ensure the directory exists
$directory = [System.IO.Path]::GetDirectoryName($OutputFilePath)
if (-not (Test-Path -Path $directory)) {
New-Item -ItemType Directory -Path $directory | Out-Null
}
# Fetch existing certificate using Get-CrmCertificate and filter by CertificateType
$existingCert = Get-CrmCertificate | Where-Object { $_.CertificateType -eq "S2STokenIssuer" }
if ($null -eq $existingCert) {
Write-Error "No certificate found with CertificateType 'S2STokenIssuer'."
return
}
# Store the certificate in the specified path
$certBytes = [Convert]::FromBase64String($existingCert.Data)
[System.IO.File]::WriteAllBytes($OutputFilePath, $certBytes)
Write-Output "Certificate saved to $OutputFilePath"
}
catch {
Write-Error "An error occurred: $_"
}
finally {
if ($RemoveSnapInWhenDone) {
Remove-PSSnapin Microsoft.Crm.PowerShell
}
}
Отправка существующего сертификата в сертификаты приложений Azure
Откройте веб-браузер и перейдите на портал Azure для приложения Azure AD, созданного в первом разделе.
Разверните Управление, а затем выберите Сертификаты и секреты.
Загрузите созданный файл сертификата.
В разделе Сертификаты выберите Отправить сертификат.
Используйте команду Отправить сертификат, чтобы выбрать файл сертификата, созданный с помощью скрипта PowerShell.
Добавьте описание и нажмите кнопку Добавить.
Вновь созданный сертификат отображается в списке Сертификаты .