Udostępnij przez


Konfigurowanie tożsamości zarządzanej platformy Power Platform dla wtyczek lub pakietów wtyczek usługi Dataverse

Tożsamość zarządzana platformy Power Platform pozwala wtyczkom lub pakietom wtyczek usługi Dataverse łączyć się z zasobami platformy Azure w celu obsługi tożsamości zarządzanej bez konieczności używania poświadczeń. Ten artykuł ułatwia konfigurowanie tożsamości zarządzanej w środowiskach Power Platform.

Wymagania wstępne

Konfigurowanie tożsamości zarządzanej

Aby skonfigurować tożsamość zarządzaną platformy Power Platform dla wtyczek lub pakietów wtyczek usługi Dataverse, wykonaj następujące kroki.

  1. Utwórz nową rejestrację aplikacji lub tożsamość zarządzaną przypisaną przez użytkownika.
  2. Skonfiguruj poświadczenia tożsamości federacyjnej.
  3. Tworzenie i rejestrowanie wtyczek lub pakietów wtyczek dla Dataverse.
    Pamiętaj, aby skompilować moduł wtyczki i zarejestrować wtyczkę lub pakiet wtyczki.
  4. Utwórz rekord tożsamości zarządzanej w usłudze Dataverse.
  5. Udziel dostępu do zasobów platformy Azure dla aplikacji lub tożsamości zarządzanej przypisanej przez użytkownika (UAMI).
  6. Sprawdź poprawność integracji wtyczki.

Utwórz nową rejestrację aplikacji lub tożsamość zarządzaną przypisaną przez użytkownika

Możesz utworzyć tożsamość zarządzaną przypisaną przez użytkownika lub aplikację w usłudze Microsoft Entra ID w oparciu o następujące scenariusze.

  • Jeśli chcesz, aby tożsamość aplikacji skojarzona z wtyczką, która łączy się z zasobami platformy Azure, takimi jak usługa Azure Key Vault, użyj rejestracji aplikacji. W przypadku tożsamości aplikacji można zastosować zasady Azure we wtyczce uzyskującej dostęp do zasobów Azure.
  • Jeśli chcesz, aby jednostka usługi mogła uzyskiwać dostęp do zasobów platformy Azure, takich jak usługa Azure Key Vault, możesz aprowizować tożsamość zarządzaną przypisaną przez użytkownika.

Uwaga

Pamiętaj, aby przechwycić następujące identyfikatory, ponieważ są one używane w kolejnych krokach.

  • Identyfikator aplikacji (klienta)
  • Identyfikator dzierżawy

Skonfiguruj poświadczenia tożsamości federacyjnej

Aby skonfigurować tożsamość zarządzaną, otwórz przypisaną do użytkownika tożsamość zarządzaną lub aplikację Tożsamość Microsoft Entra w witrynie Azure Portal utworzonej w poprzedniej sekcji.

  1. Przejdź do portalu Azure Portal.
  2. Przejdź do Tożsamość Microsoft Entra.
  3. Wybierz pozycję Rejestracje aplikacji.
  4. Otwórz aplikację utworzoną w obszarze Konfigurowanie tożsamości zarządzanej.
  5. Przejdź do pozycji Certyfikaty i klucze tajne.
  6. Wybierz kartę Poświadczenia federacyjne i wybierz pozycję Dodaj poświadczenia.
  7. Wybierz wystawcę jako Inny wystawca.
  8. Wprowadź następujące informacje:

Wystawca

Użyj wystawcy dzierżawy w wersji 2.0:

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

Example

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

Typ

Wybierz pozycję Jawny identyfikator podmiotu.

Identyfikator podmiotu

Wybierz format zgodny z typem certyfikatu:

  • Certyfikat z podpisem własnym (tylko programowanie):

    /eid1/c/pub/t/{encodedTenantId}/a/qzXoWDkuqUa3l6zM5mM0Rw/n/plugin/e/{environmentId}/h/{hash}
    
  • Zaufany certyfikat wystawcy (zalecany w środowisku produkcyjnym):

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

Odwołanie do segmentu

Segment Description
identyfikator eid1 Wersja formatu tożsamości
c/pub Kod w chmurze dla chmury publicznej, Government Community Cloud (GCC) i pierwsza stacja wydawnicza w GCC.
t/{encodedTenantId} Identyfikator dzierżawy
a/qzXoWDkuqUa3l6zM5mM0Rw/ Tylko do użytku wewnętrznego. Nie modyfikuj.
n/wtyczka Składnik wtyczki
e/{environmentId} Identyfikator środowiska
h/{hash} SHA-256 certyfikatu (tylko z podpisem własnym)
i/{issuer}
s/{certificateSubject}
Szczegóły zaufanego wystawcy

Generowanie certyfikatu z podpisem własnym

Każda wtyczka musi mieć tożsamość weryfikowalną, a certyfikat podpisywania działa jako unikatowy odcisk palca wtyczki. Poniższy kod to przykładowy fragment kodu programu PowerShell, którego można użyć do wygenerowania certyfikatu z podpisem własnym na potrzeby scenariuszy programowania lub testowania. Aby uzyskać informacje, możesz skorzystać z przykładu 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

Uwaga

Kodowanie dla {encodedTenantId}

  1. Przekonwertuj identyfikator GUID na format szesnastkowy.
  2. Przekonwertuj Hex → Base64URL (nie standardowy Base64).

Skrót samopodpisany

  • Oblicz algorytm SHA-256 na .cer. Jeśli masz plik PFX, najpierw wyeksportuj .cer :
    CertUtil -hashfile <CertificateFilePath> SHA256
    
    $cert = Get-PfxCertificate -FilePath "path	o\your.pfx"
    $cert.RawData | Set-Content -Encoding Byte -Path "extracted.cer"
    

Wyspecjalizowane środowiska chmury platformy Azure

Ustaw jawnie Odbiorców, Adres URL wystawcy i Prefiks tematu podczas wdrażania poza chmurą publiczną, GCC i pierwszą stacją wydań w GCC:

Chmura Publiczność Adres URL wystawcy Prefiks tematu
GCC High i DoD api://AzureADTokenExchangeUSGov https://login.microsoftonline.us /eid1/c/usg
Ciastko księżycowe (Chiny) api://AzureADTokenExchangeChina https://login.partner.microsoftonline.cn /eid1/c/chn
Us National (USNAT) api://AzureADTokenExchangeUSNat https://login.microsoftonline.eaglex.ic.gov /eid1/c/uss
Us Secure (USSec) api://AzureADTokenExchangeUSSec https://login.microsoftonline.scloud /eid1/c/usn

Uwaga

Wartość Odbiorcy jest wrażliwa na wielkość liter i musi być dokładnie zgodna.
W przypadku chmury publicznej, GCC i stacji pierwszej wersji w GCC (i innych chmurach innych niż wymienione) wartości domyślne to:
Odbiorcy api://AzureADTokenExchange, wystawca https://login.microsoftonline.com, prefiks tematu /eid1/c/pub.

Twórz i rejestruj wtyczki lub pakiety wtyczek do Dataverse

Tworzenie zespołu wtyczki

Pakowanie i podpisywanie

Podpisywanie pakietu wtyczek

Jeśli tworzysz pakiet wtyczek, użyj NuGet Sign CLI, aby wygenerować pakiet z pliku .nuspec lub .csproj. Po wygenerowaniu pakietu podpisz go przy użyciu certyfikatu.

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

Podpisywanie zestawu wtyczek

Jeśli rejestrujesz wtyczkę (zestaw), podpisz bibliotekę DLL certyfikatem, używając SignTool.exe (narzędzie podpisywania).

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

Opcjonalnie można dodać znaczniki czasu, podając adres URL serwera sygnatury czasowej zgodnej ze standardem RFC 3161.

Uwaga

Używaj certyfikatu z podpisem własnym tylko do celów programistycznych lub testowych. Nie używaj certyfikatów z podpisem własnym w środowiskach produkcyjnych.

Rejestrowanie dodatku plug-in

Utwórz rekord tożsamości zarządzanej w Dataverse

Aby utworzyć rekord tożsamości zarządzanej w Dataverse, wykonaj następujące kroki.

  1. Utwórz tożsamość zarządzaną, wysyłając żądanie HTTP POST przy użyciu klienta REST, takiego jak np. Insomnia. Użyj adresu URL i treści żądania w następującym formacie.

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

    Pamiętaj, aby zastąpić adres orgURL adresem URL organizacji.

  2. Upewnij się, że źródło poświadczeń ma wartość 2 w ładunku, subjectscope jest ustawione na 1 dla scenariuszy specyficznych dla środowiska, a wersja jest ustawiona na 1.

    Przykładowy ładunek

    {
      "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. Zaktualizuj pakiet wtyczki lub rekord zestawu wtyczek, wysyłając żądanie HTTP PATCH, aby skojarzyć go z tożsamością zarządzaną utworzoną w kroku 1.

    Zestaw wtyczek

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

    Pakiet wtyczek

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

    Przykładowy ładunek

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

    Pamiętaj, aby zastąpić orgURL, PluginAssemblyId (lub PluginPackageId) i ManagedIdentityGuid swoimi wartościami.

Przyznanie dostępu do zasobów platformy Azure aplikacji lub tożsamości zarządzanej przypisanej do użytkownika

Jeśli musisz przyznać dostęp do identyfikatora aplikacji, aby uzyskać dostęp do zasobów Azure, takich jak "Azure Key Vault", przyznaj dostęp aplikacji lub przypisanej przez użytkownika tożsamości zarządzanej do tego zasobu.

Sprawdź poprawność integracji wtyczki

Sprawdź, czy wtyczka może bezpiecznie żądać dostępu do zasobów platformy Azure, które obsługują tożsamość zarządzaną, eliminując potrzebę stosowania oddzielnych poświadczeń.

Często zadawane pytania (FAQ)

Jak rozwiązać ten błąd?

Jeśli wystąpi następujący błąd:
Błąd — problem z konfiguracją uniemożliwia uwierzytelnianie.
AADSTS700213: nie znaleziono pasującego rekordu tożsamości federacyjnej

Wykonaj następujące kroki, aby rozwiązać ten problem:

  1. Upewnij się, że FIC jest poprawnie skonfigurowany i zapisany.

  2. Sprawdź, czy wystawca/podmiot jest zgodny z określonym wcześniej formatem.

    Oczekiwany format można również znaleźć w stosie błędów.

Jak rozwiązać problem z błędem "Nie można połączyć się z platformą Power Platform"?

Zapoznaj się z adresami URL i zakresami adresów IP platformy Power Platform, aby upewnić się, że punkty końcowe platformy Power Platform są osiągalne i znajdują się na liście dozwolonych.