Udostępnij za pośrednictwem


Authentication

Ten artykuł zawiera omówienie konfiguracji usługi Microsoft Entra na potrzeby wywoływania interfejsu API platformy Power Platform. Aby uzyskać dostęp do zasobów dostępnych za pośrednictwem interfejsu API platformy Power Platform, musisz uzyskać token elementu nośnego od firmy Microsoft Entra i wysłać go jako nagłówek wraz z każdym żądaniem. W zależności od obsługiwanego typu tożsamości (użytkownika a jednostki usługi) istnieją różne przepływy umożliwiające uzyskanie tego tokenu elementu nośnego zgodnie z opisem w tym artykule.

Aby uzyskać token elementu nośnego z odpowiednimi uprawnieniami, wykonaj następujące kroki:

  1. Tworzenie rejestracji aplikacji w dzierżawie firmy Microsoft Entra
  2. Konfigurowanie uprawnień interfejsu API
  3. Konfigurowanie identyfikatora URI platformy i przekierowania
  4. (Opcjonalnie) Konfigurowanie certyfikatów i wpisów tajnych
  5. Żądanie tokenu dostępu

Krok 1. Utwórz rejestrację aplikacji w dzierżawie Microsoft Entra

  1. Przejdź do portalu Azure.
  2. Wybierz pozycję Microsoft Entra ID w górnej części strony. Następnie wybierz pozycję + Dodaj>rejestrację aplikacji.
  3. Wypełnij stronę Rejestrowanie aplikacji :
    1. Nazwa — nadaj aplikacji rozpoznawalną nazwę, taką jak zestaw SDK administratora platformy Power Platform.
    2. Obsługiwane typy kont — wybierz tylko jedną dzierżawę — <nazwę> firmy.
    3. Identyfikator URI przekierowania — pomiń go na razie. Należy go skonfigurować w kroku 3.
  4. Wybierz pozycję Zarejestruj, aby utworzyć aplikację. Po zakończeniu rejestracji zanotuj identyfikator aplikacji (klienta) i identyfikator katalogu (dzierżawy) ze strony przeglądu — obie wartości będą potrzebne później.

Rejestrację można również utworzyć przy użyciu interfejsu wiersza polecenia platformy Azure:

az login

az ad app create --display-name "Power Platform Admin SDK" --sign-in-audience AzureADMyOrg

Polecenie zwraca obiekt JSON. Zanotuj appId wartość — ta wartość to identyfikator klienta.

Krok 2. Konfiguracja uprawnień API

W nowej rejestracji aplikacji przejdź do karty Zarządzanie — uprawnienia interfejsu API . W sekcji Konfigurowanie uprawnień wybierz pozycję Dodaj uprawnienie. W oknie dialogowym wybierz kartę Interfejsy API używane przez moją organizację , a następnie wyszukaj interfejs API platformy Power Platform. Może zostać wyświetlonych kilka wpisów o nazwie podobnej do tej, dlatego upewnij się, że używasz go z identyfikatorem GUID 8578e004-a5c6-46e7-913e-12f58912df43.

Jeśli nie widzisz interfejsu API platformy Power Platform wyświetlanego na liście podczas wyszukiwania według identyfikatora GUID, nadal możesz mieć do niego dostęp, ale widoczność nie jest odświeżona. Aby wymusić odświeżenie, uruchom następujący skrypt:

#Install the Microsoft Graph PowerShell SDK module
Install-Module Microsoft.Graph -Scope CurrentUser -Repository PSGallery -Force

Connect-MgGraph
New-MgServicePrincipal -AppId 8578e004-a5c6-46e7-913e-12f58912df43 -DisplayName "Power Platform API"

W tym miejscu wybierz potrzebne uprawnienia. Te uprawnienia są grupowane według przestrzeni nazw. W przestrzeni nazw są widoczne typy zasobów i akcje, takie jak AppManagement.ApplicationPackages.Read, które dają uprawnienia do odczytu dla pakietów aplikacji. Aby uzyskać więcej informacji, zobacz artykuł Dokumentacja uprawnień .

Uwaga

Interfejs API platformy Power Platform używa uprawnień delegowanych tylko w tej chwili. W przypadku aplikacji uruchamianych z kontekstem użytkownika zażądaj delegowanych uprawnień przy użyciu parametru zakresu . Te uprawnienia delegują uprawnienia zalogowanego użytkownika do aplikacji, aby mógł działać jako użytkownik podczas wywoływania punktów końcowych interfejsu API platformy Power Platform.

W przypadku tożsamości jednostki usługi nie używaj uprawnień aplikacji. Zamiast tego po utworzeniu rejestracji aplikacji przypisz jej rolę RBAC, aby udzielić uprawnień o określonym zakresie (takich jak Współautor lub Czytelnik). Aby uzyskać więcej informacji, zobacz Samouczek: przypisywanie ról RBAC do jednostek usługi.

Po dodaniu wymaganych uprawnień do aplikacji wybierz pozycję Udziel zgody administratora , aby ukończyć instalację. Udzielając zgody administratora, autoryzujesz uprawnienia dla wszystkich użytkowników w dzierżawie, aby nie były monitowane za pomocą interakcyjnego okna dialogowego zgody przy pierwszym użyciu aplikacji. Jeśli wolisz interaktywną zgodę na użytkownika, postępuj zgodnie z procedurą platformy tożsamości firmy Microsoft i przepływem kodu autoryzacji OAuth 2.0.

Możesz również udzielić zgody administratora przy użyciu interfejsu wiersza polecenia platformy Azure:

# Replace <app-id> with your application (client) ID
az ad app permission admin-consent --id <app-id>

Krok 3. Konfigurowanie identyfikatora URI platformy i przekierowania

Zestawy SDK, skrypty programu PowerShell i aplikacje klasyczne uwierzytelniające się w imieniu użytkownika wymagają identyfikatora URI przekierowania, aby firma Microsoft Entra mogła zwracać tokeny z powrotem do aplikacji po uwierzytelnieniu.

  1. W ramach rejestracji aplikacji przejdź do obszaru Zarządzanie — uwierzytelnianie.

  2. Wybierz pozycję Dodaj identyfikator URI przekierowania, a następnie wybierz pozycję Aplikacje mobilne i klasyczne.

  3. Wybierz następujący wbudowany identyfikator URI przekierowania:

    https://login.microsoftonline.com/common/oauth2/nativeclient

  4. Wybierz pozycję Konfiguruj , aby zapisać.

Możesz również dodać identyfikator URI przekierowania przy użyciu interfejsu wiersza polecenia platformy Azure:

# Replace <app-id> with your application (client) ID
az ad app update --id <app-id> --public-client-redirect-uris https://login.microsoftonline.com/common/oauth2/nativeclient

Ustawienie klienta publicznego

W sekcji Ustawienia zaawansowane na tej samej karcie Uwierzytelnianie znajduje się przełącznik Zezwalaj na przepływy klientów publicznych . Ustaw ten przełącznik na Wartość Tak tylko wtedy, gdy planujesz użyć przepływu Poświadczeń hasła właściciela zasobu (ROPC), który wysyła nazwę użytkownika i hasło bezpośrednio w treści żądania tokenu.

Ten przepływ nie działa w przypadku kont z włączonym uwierzytelnianiem wieloskładnikowego. W przypadku przepływów kodu przeglądarki interaktywnej lub urządzenia nie trzeba włączać tego ustawienia.

Krok 4. (Opcjonalnie) Konfigurowanie certyfikatów i wpisów tajnych

Jeśli aplikacja wymaga samodzielnego odczytywania i zapisywania zasobów, nazywanych również jednostką usługi, istnieją dwa sposoby uwierzytelniania. Aby użyć certyfikatów, przejdź do pozycji Zarządzanie — certyfikaty i wpisy tajne. W sekcji Certyfikaty przekaż certyfikat x509, którego można użyć do uwierzytelniania.

Innym sposobem jest użycie sekcji Klucze tajne do wygenerowania klucza tajnego klienta. Zapisz dane w bezpiecznej lokalizacji, aby można je było używać w ramach potrzeb automatyzacji. Opcje certyfikatu lub wpisu tajnego umożliwiają uwierzytelnianie w usłudze Microsoft Entra i odbieranie tokenu dla tego klienta, który jest przekazywany do interfejsów API REST lub poleceń cmdlet programu PowerShell.

Krok 5. Poproś o token dostępu

Token elementu nośnego dostępu można uzyskać na dwa sposoby: jeden ze sposobów dotyczy nazwy użytkownika i hasła, a drugi jest przeznaczony dla jednostek usługi.

Przepływ nazwy użytkownika i hasła

Pamiętaj, aby przeczytać sekcję klienta publicznego. Następnie wyślij żądanie POST przez HTTP do Microsoft Entra ID z nazwą użytkownika i hasłem.

Content-Type: application/x-www-form-urlencoded
Host: login.microsoftonline.com
Accept: application/json
POST https://login.microsoftonline.com/YOUR_TENANT.COM/oauth2/v2.0/token
BODY:
client_id={CLIENT_ID_FROM_AZURE_CLIENT_APP}&scope=https://api.powerplatform.com/.default&username={USER_EMAIL_ADDRESS}&password={PASSWORD}&grant_type=password

Powyższy przykład zawiera symbole zastępcze, które można pobrać z aplikacji klienckiej w usłudze Microsoft Entra ID. Otrzymasz odpowiedź, której można użyć do wykonania kolejnych wywołań interfejsu API platformy Power Platform.

{
  "token_type": "Bearer",
  "scope": "https://api.powerplatform.com/AppManagement.ApplicationPackages.Install https://api.powerplatform.com/AppManagement.ApplicationPackages.Read https://api.powerplatform.com/.default",
  "expires_in": 4747,
  "ext_expires_in": 4747,
  "access_token": "eyJ0eXAiOiJKV1QiLCJu..."
}

Użyj wartości access_token w kolejnych wywołaniach interfejsu API Power Platform, używając nagłówka autoryzacji protokołu HTTP.

Przepływ nazwy głównej usługi

Pamiętaj, aby przeczytać sekcję Konfigurowanie certyfikatów i wpisów tajnych . Następnie wyślij żądanie POST przez HTTP do Microsoft Entra ID z kluczem tajnym klienta. Ta metoda uwierzytelniania jest często nazywana uwierzytelnianiem jednostki usługi.

Ważne

Przed rozpoczęciem korzystania z uwierzytelniania jednostki usługi wykonaj kroki 1–4 wcześniej w tym artykule, aby utworzyć i skonfigurować rejestrację aplikacji przy użyciu certyfikatu lub klucza tajnego klienta. Następnie przypisz jednostce usługi rolę RBAC, aby kontrolować jej poziom dostępu. Aby dowiedzieć się więcej, zobacz Samouczek: przypisywanie ról RBAC do jednostek usługi.

Content-Type: application/x-www-form-urlencoded
Host: login.microsoftonline.com
Accept: application/json
POST https://login.microsoftonline.com/YOUR_TENANT.COM/oauth2/v2.0/token
BODY:
client_id={CLIENT_ID_FROM_AZURE_CLIENT_APP}&scope=https://api.powerplatform.com/.default&client_secret={SECRET_FROM_AZURE_CLIENT_APP}&grant_type=client_credentials

Powyższy przykład zawiera symbole zastępcze, które można pobrać z aplikacji klienckiej w usłudze Microsoft Entra ID. Otrzymasz odpowiedź, której można użyć do wykonania kolejnych wywołań interfejsu API platformy Power Platform.

{
  "token_type": "Bearer",
  "expires_in": 3599,
  "ext_expires_in": 3599,
  "access_token": "eyJ0eXAiOiJKV1..."
}

Użyj wartości access_token w kolejnych wywołaniach interfejsu API Power Platform, używając nagłówka autoryzacji protokołu HTTP. Obowiązujące uprawnienia jednostki usługi są określane przez przypisaną do niej rolę RBAC. Aby dowiedzieć się, jak przypisać rolę, zobacz Samouczek: przypisywanie ról RBAC do jednostek usługi.

Szybki start z interfejsem wiersza polecenia platformy Azure

Poniższy skrypt tworzy kompleksową rejestrację aplikacji. Uruchom każde polecenie w kolejności i zastąp wartości symboli zastępczych własnymi.

# Sign in to Azure CLI
az login

# Create the app registration (single tenant)
az ad app create --display-name "Power Platform Admin SDK" --sign-in-audience AzureADMyOrg

# Save the app ID from the output, then create a service principal for it
az ad sp create --id <app-id>

# Add a delegated permission (example: AppManagement.ApplicationPackages.Read)
# The --api value is the Power Platform API app ID.
# The --api-permissions value is the permission ID and type (Scope = delegated).
# Repeat this command for each permission you need. See the Permission reference for IDs.
az ad app permission add --id <app-id> \
  --api 8578e004-a5c6-46e7-913e-12f58912df43 \
  --api-permissions <permission-id>=Scope

# Grant admin consent so users aren't prompted individually
az ad app permission admin-consent --id <app-id>

# Add the native client redirect URI for interactive auth
az ad app update --id <app-id> \
  --public-client-redirect-uris https://login.microsoftonline.com/common/oauth2/nativeclient

Po uruchomieniu tych poleceń możesz użyć rejestracji aplikacji z zestawami SDK, programem PowerShell lub bezpośrednimi wywołaniami REST. Aby wyszukać identyfikatory uprawnień dla parametru --api-permissions , zobacz informacje o uprawnieniach.

Rozwiązywanie typowych problemów

Ten błąd występuje, gdy administrator nie wyraził zgody na uprawnienia interfejsu API do rejestracji aplikacji. Przejdź do pozycji Rejestracje> aplikacji Uprawnienia interfejsu API aplikacji > i wybierz pozycję Udziel zgody administratora.

Możesz również uruchomić:

az ad app permission admin-consent --id <app-id>

Błędy "Użytkownik nie jest przypisany do roli aplikacji"

Ten błąd oznacza, że aplikacja dla przedsiębiorstw skojarzona z rejestracją aplikacji ma ustawienie Wymagane przypisanie użytkownika ma wartość Tak. Po włączeniu tego ustawienia tylko użytkownicy lub grupy jawnie przypisane do aplikacji mogą się zalogować. Aby naprawić ten błąd, wykonaj jedną z następujących czynności:

  • Przejdź do pozycji Microsoft Entra ID>Enterprise applications> your app Properties (Właściwości aplikacji>) i ustaw pozycję Przypisanie wymagane do wartości Nie.
  • Dodaj odpowiednich użytkowników lub grupy zabezpieczeń w obszarze Użytkownicy i grupy.

Zasady dostępu warunkowego blokujące dostęp

Jeśli Twoja organizacja stosuje zasady dostępu warunkowego, może zablokować pozyskiwanie tokenów na potrzeby rejestracji aplikacji. Typowe przyczyny obejmują wymagania dotyczące zgodności urządzeń, ograniczenia lokalizacji lub zasady oparte na ryzyku. Skontaktuj się z administratorem firmy Microsoft Entra, aby wykluczyć rejestrację aplikacji z zasad lub upewnić się, że klienci spełniają wymagania zasad.

Nie można odnaleźć interfejsu API platformy Power Platform w selektorze interfejsu API

Jeśli wyszukiwanie interfejsu API platformy Power Platform według nazwy lub identyfikatora GUID w oknie dialogowym uprawnień interfejsu API nie zwraca żadnych wyników, jednostka usługi nie jest tworzona w dzierżawie. Wykonaj kroki wymuszania odświeżania w kroku 2 , aby go utworzyć.

Uwierzytelnianie przy użyciu zestawów SDK platformy Power Platform i programu PowerShell

W poniższych przykładach pokazano, jak uwierzytelniać się i wykonywać przykładowe wywołanie interfejsu API przy użyciu każdego zestawu SDK i programu PowerShell. Przed uruchomieniem tych przykładów wykonaj kroki 1–3 wcześniej w tym artykule, aby utworzyć i skonfigurować rejestrację aplikacji.

Uwierzytelnianie interakcyjne (delegowany użytkownik)

Uwierzytelnianie interakcyjne otwiera okno przeglądarki umożliwiające użytkownikowi zalogowanie się. Ten przepływ działa najlepiej w przypadku skryptów deweloperskich, narzędzi administracyjnych i dowolnego scenariusza, w którym użytkownik jest obecny.

# Sign in interactively (opens a browser)
Connect-AzAccount

# Get an access token for the Power Platform API
$token = Get-AzAccessToken -ResourceUrl "https://api.powerplatform.com"

# Call the List Environments endpoint as an example
$headers = @{ Authorization = "Bearer $($token.Token)" }
$environments = Invoke-RestMethod -Uri "https://api.powerplatform.com/environmentmanagement/environments?api-version=2024-10-01" -Headers $headers
$environments.value | Format-Table name, properties.displayName

Poufny klient (jednostka usługi)

Poufne uwierzytelnianie klienta używa klucza tajnego lub certyfikatu klienta i nie wymaga interakcji z użytkownikiem. Ten przepływ uwierzytelniania jest najlepszy w przypadku usług w tle, potoków i automatyzacji.

Ważne

Przed rozpoczęciem korzystania z uwierzytelniania jednostki usługi wykonaj kroki 1–4 powyżej, aby utworzyć i skonfigurować rejestrację aplikacji przy użyciu certyfikatu lub klucza tajnego klienta. Następnie przypisz jednostce usługi rolę RBAC, aby kontrolować jej poziom dostępu. Aby uzyskać więcej informacji, zobacz Samouczek: przypisywanie ról RBAC do jednostek usługi.

$tenantId = "YOUR_TENANT_ID"
$clientId = "YOUR_CLIENT_ID"
$clientSecret = "YOUR_CLIENT_SECRET"

# Request a token using client credentials
$body = @{
    client_id     = $clientId
    scope         = "https://api.powerplatform.com/.default"
    client_secret = $clientSecret
    grant_type    = "client_credentials"
}
$tokenResponse = Invoke-RestMethod -Method Post `
    -Uri "https://login.microsoftonline.com/$tenantId/oauth2/v2.0/token" `
    -ContentType "application/x-www-form-urlencoded" `
    -Body $body

# Call the List Environments endpoint as an example
$headers = @{ Authorization = "Bearer $($tokenResponse.access_token)" }
$environments = Invoke-RestMethod -Uri "https://api.powerplatform.com/environmentmanagement/environments?api-version=2024-10-01" -Headers $headers
$environments.value | Format-Table name, properties.displayName

Samouczek: przypisywanie ról RBAC do jednostek usługi
Kontrola dostępu oparta na rolach dla centrum administracyjnego platformy Power Platform
Dokumentacja uprawnień