Поделиться через


Настройка управляемого удостоверения Power Platform для подключаемых модулей или пакетов подключаемых модулей Dataverse

Управляемая идентичность Power Platform позволяет модулям или пакетам модулей Dataverse подключаться к ресурсам Azure, чтобы поддерживать управляемую идентичность без необходимости использования учетных данных. Из этой статьи вы узнаете, как настроить управляемое удостоверение в средах Power Platform.

Необходимые компоненты

Настройка управляемого удостоверения

Чтобы настроить управляемое удостоверение Power Platform для подключаемых модулей или пакетов подключаемых модулей Dataverse, выполните следующие действия.

  1. Создание новой регистрации приложения или управляемого удостоверения, назначаемого пользователем.
  2. Настройка учетных данных федеративного удостоверения.
  3. Создавайте и регистрируйте подключаемые модули Dataverse или их пакеты.
    Обязательно создайте сборку подключаемого модуля и зарегистрируйте подключаемый модуль или пакет подключаемого модуля.
  4. Создайте запись управляемой идентификации в Dataverse.
  5. Предоставление доступа к ресурсам Azure приложению или управляемому удостоверению, назначаемому пользователем (UAMI).
  6. Проверьте интеграцию подключаемого модуля.

Создание новой регистрации приложения или управляемого удостоверения, назначаемого пользователем

В зависимости от следующих сценариев, вы можете создать либо управляемое удостоверение, назначаемое пользователем, либо приложение в Microsoft Entra ID.

  • Если вы хотите, чтобы удостоверение приложения было связано с подключаемым модулем, который подключается к ресурсам Azure, таким как Azure Key Vault, используйте регистрацию приложения. С помощью удостоверения приложения вы можете применять политики Azure к подключаемому модулю, обращающемуся к ресурсам Azure.
  • Если вы хотите предоставить субъекту-службе доступ к ресурсам Azure, таким как Azure Key Vault, вы можете подготовить управляемое удостоверение, назначаемое пользователем.

Заметка

Не забудьте записать следующие идентификаторы, так как вы используете их в последующих шагах.

  • Идентификатор приложения (клиента)
  • Идентификатор клиента

Настройка учетных данных федеративного удостоверения

Чтобы настроить управляемое удостоверение, откройте приложение управляемого удостоверения, назначаемого пользователем, или приложение Microsoft Entra ID на портале Azure, которое вы создали в предыдущем разделе.

  1. Переход на портал Azure.
  2. Перейдите к Microsoft Entra ID.
  3. Щелкните Регистрация приложений.
  4. Откройте приложение, созданное в разделе Настройка управляемого удостоверения.
  5. Перейдите к Сертификаты & секреты.
  6. Перейдите на вкладку "Федеративные учетные данные" и нажмите кнопку "Добавить учетные данные".
  7. Выберите издателя как Другой издатель.
  8. Введите следующие данные:

Issuer

Используйте издатель клиента версии 2.0:

https://login.microsoftonline.com/{tenantID}/v2.0

Example

https://login.microsoftonline.com/5f8a1a9f-2e1a-415f-b10c-84c3736a21b9/v2.0

Тип

Выберите явный идентификатор субъекта.

Идентификатор субъекта

Выберите формат, соответствующий типу сертификата:

  • Самозаверяющий сертификат (только для разработки):

    /eid1/c/pub/t/{encodedTenantId}/a/qzXoWDkuqUa3l6zM5mM0Rw/n/plugin/e/{environmentId}/h/{hash}
    
  • Доверенный сертификат издателя (рекомендуется для эксплуатации):

    /eid1/c/pub/t/{encodedTenantId}/a/qzXoWDkuqUa3l6zM5mM0Rw/n/plugin/e/{environmentId}/i/{issuer}/s/{certificateSubject}
    

Справочник по сегментам

Сегмент Description
eid1 Версия формата идентификатора
c/pub Облачный код для общедоступного облака, облака сообщества для государственных организаций (GCC), а также для первой станции выпуска в GCC.
t/{encodedTenantId} Идентификатор клиента
a/qzXoWDkuqUa3l6zM5mM0Rw/ Только для внутреннего применения. Не изменяйте.
n/плагин Компонент подключаемого модуля
e/{environmentId} Идентификатор среды
h/{hash} SHA-256 сертификата (только для самоподписанных)
i/{issuer}
s/{certificateSubject}
Сведения о доверенном издателе

Создание самозаверяющего сертификата

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

 $params = @{
     Type = 'Custom'
     Subject = 'E=admin@contoso.com,CN=Contoso'
     TextExtension = @(
         '2.5.29.37={text}1.3.6.1.5.5.7.3.4',
         '2.5.29.17={text}email=admin@contoso.com' )
     KeyAlgorithm = 'RSA'
     KeyLength = 2048
     SmimeCapabilities = $true
     CertStoreLocation = 'Cert:\CurrentUser\My'
 }
 New-SelfSignedCertificate @params

Заметка

Кодировка для {encodedTenantId}

  1. Преобразуйте GUID → шестнадцатеричный формат.
  2. Преобразуйте шестнадцатеричный код → Base64URL (не стандартный Base64).

Самоподписанный хэш

  • Вычислите SHA-256 по .cer. Если у вас есть .pfx, сначала экспортируйте .cer:
    CertUtil -hashfile <CertificateFilePath> SHA256
    
    $cert = Get-PfxCertificate -FilePath "path	o\your.pfx"
    $cert.RawData | Set-Content -Encoding Byte -Path "extracted.cer"
    

Специализированные облачные среды Azure

Явно задайте аудиторию, URL-адрес издателя и префикс субъекта при развертывании вне общедоступного облака, GCC и первой станции выпуска в GCC:

Облако Аудитория URL-адрес издателя Префикс субъекта
GCC High и DoD api://AzureADTokenExchangeUSGov https://login.microsoftonline.us /eid1/c/usg
Mooncake (Китай) api://AzureADTokenExchangeChina https://login.partner.microsoftonline.cn /eid1/c/chn
Американский национальный (USNAT) api://AzureADTokenExchangeUSNat https://login.microsoftonline.eaglex.ic.gov /eid1/c/uss
Безопасность США (USSec) api://AzureADTokenExchangeUSSec https://login.microsoftonline.scloud /eid1/c/usn

Заметка

Значение Audienceчувствительно к регистру и должно точно соответствовать.
Для общедоступного облака, GCC и первой станции выпуска в GCC (и других не перечисленных облаках) используется по умолчанию:
Аудиторияapi://AzureADTokenExchange, Издательhttps://login.microsoftonline.com, префикс темы/eid1/c/pub.

Создайте и зарегистрируйте подключаемые модули Dataverse или пакеты подключаемых модулей

Сборка сборки подключаемого модуля

Упаковка и подпись

Подписывание пакета плагина

Если вы создаете пакет подключаемых модулей, используйте интерфейс командной строки для подписи NuGet, чтобы создать пакет из файла .nuspec или .csproj. После создания пакета подпишите его с помощью сертификата.

 nuget sign YourPlugin.nupkg `
   -CertificatePath MyCert.pfx `
   -CertificatePassword "MyPassword" `
   -Timestamper http://timestamp.digicert.com

Подписывание сборки подключаемого модуля

Если вы регистрируете подключаемый модуль (сборку), подпишите библиотеку DLL с помощью сертификата, используя файл SignTool.exe (инструмент подписи).

signtool sign /f MyCert.pfx /p MyPassword /t http://timestamp.digicert.com /fd SHA256 MyAssembly.dll

При необходимости можно добавить метку времени, указав URL-адрес сервера метки времени, совместимого с RFC 3161.

Заметка

Используйте самозаверяющий сертификат только для целей разработки или тестирования. Не используйте самозаверяющий сертификат в рабочих средах.

Регистрация подключаемого модуля

Создание записи управляемого удостоверения в Dataverse

Чтобы подготовить запись управляемого удостоверения в Dataverse, выполните следующие действия.

  1. Создайте управляемое удостоверение, отправив HTTP-запрос POST через клиент REST (например, Insomnia). Используйте URL-адрес и текст запроса в следующем формате.

    POST https://<<orgURL>>/api/data/v9.0/managedidentities
    

    Обязательно замените orgURL на URL-адрес организации.

  2. Убедитесь, что в полезных данных для параметра credentialsource задано значение 2, для параметра subjectscope задано значение 1 в сценариях конкретной среды, а для параметра version задано значение 1 в полезных данных.

    Пример нагрузки

    {
      "applicationid": "<<appId>>", //Application Id, or ClientId, or User Managed Identity
      "managedidentityid": "<<anyGuid>>",
      "credentialsource": 2, // Managed client
      "subjectscope": 1, //Environment Scope
      "tenantid": "<<tenantId>>", //Entra Tenant Id
      "version": 1
    }
    
  3. Обновите пакет подключаемых модулей или запись сборки подключаемых модулей путем выдачи HTTP-запроса PATCH, чтобы связать его с управляемым удостоверением, созданным на шаге 1.

    Сборка подключаемого модуля

    PATCH https://<<orgURL>>/api/data/v9.0/pluginassemblies(<<PluginAssemblyId>>)
    

    Пакет подключаемого модуля

    PATCH https://<<orgURL>>/api/data/v9.0/pluginpackages(<<PluginPackageId>>)
    

    Пример нагрузки

    {
      "managedidentityid@odata.bind": "/managedidentities(<<ManagedIdentityGuid>>)"
    }
    

    Обязательно замените orgURL, PluginAssemblyId (или PluginPackageId) и ManagedIdentityGuid своими значениями.

Предоставление доступа к ресурсам Azure приложению или управляемому удостоверению, назначаемому пользователем

Если вам нужно предоставить доступ к идентификатору приложения для доступа к ресурсам Azure, таким как Azure Key Vault, предоставьте доступ к приложению или управляемому удостоверению, назначаемого пользователем, для этого ресурса.

Проверка интеграции подключаемого модуля

Убедитесь, что ваш подключаемый модуль может безопасно запрашивать доступ к ресурсам Azure, поддерживающим управляемое удостоверение, устраняя необходимость в отдельных учетных данных.

Часто задаваемые вопросы

Как устранить эту ошибку?

Если вы получите следующую ошибку:
Ошибка при получении – проблема конфигурации мешает аутентификации.
AADSTS700213: не найдена соответствующая запись федеративного удостоверения

Выполните следующие действия, чтобы устранить проблему:

  1. Убедитесь, что FIC правильно настроен и сохранен.

  2. Убедитесь, что издатель или тема соответствуют указанному ранее формату.

    Вы также можете найти ожидаемый формат в стеке ошибок.

Как устранить ошибку "Не удается достичь или подключиться к Power Platform"?

Ознакомьтесь с URL-адресами и диапазонами IP-адресов Power Platform, чтобы конечные точки Power Platform были доступны и включены в список разрешенных.