Authentication

Bu makalede Power Platform API'sini çağırmak için Microsoft Entra kurulumuna genel bir bakış sağlanır. Power Platform API'sinden sağlanan kaynaklara erişmek için Microsoft Entra'dan taşıyıcı belirteci almanız ve her istekle birlikte üst bilgi olarak göndermeniz gerekir. Desteklediğiniz kimlik türüne (kullanıcı ve hizmet sorumlusu) bağlı olarak, bu makalede açıklandığı gibi bu taşıyıcı belirteci almak için farklı akışlar vardır.

Doğru izinlere sahip bir taşıyıcı belirteci almak için aşağıdaki adımları tamamlayın:

  1. Microsoft Entra kiracınızda uygulama kaydı oluşturma
  2. API izinlerini yapılandırma
  3. Platform ve yeniden yönlendirme URI'sini yapılandırma
  4. (İsteğe bağlı) Sertifikaları ve gizli dizileri yapılandırma
  5. Erişim belirteci isteme

Adım 1. Microsoft Entra kiracısında uygulama kaydı oluşturma

  1. Azure portala gidin.
  2. Sayfanın üst kısmındaki Microsoft Entra Id (Microsoft Entra Id ) öğesini seçin. Ardından +Uygulama kaydı> seçin.
  3. Uygulamayı kaydet sayfasını doldurun:
    1. Ad — Uygulamaya Power Platform Yönetici SDK'sı gibi tanınabilir bir ad verin.
    2. Desteklenen hesap türleriYalnızca tek kiracı - <şirketinizin adını> seçin.
    3. Yeniden yönlendirme URI'si — Şimdilik bunu atlayın. 3. Adımda yapılandırabilirsiniz.
  4. Uygulamayı kaydetmek için Kaydet'i seçin. Kayıt tamamlandıktan sonra genel bakış sayfasından Uygulama (istemci) kimliği ve Dizin (kiracı) kimliği değerlerini not edin; daha sonra her iki değere de ihtiyacınız vardır.

Kaydı Azure CLI kullanarak da oluşturabilirsiniz:

az login

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

Komutu bir JSON nesnesi döndürür. Değerini not edin appId ; bu değer istemci kimliğinizdir.

Adım 2. API izinlerini yapılandırma

Yeni uygulama kaydınızda Yönet - API İzinleri sekmesine gidin. İzinleri yapılandır bölümünde İzin Ekle'yi seçin. İletişim kutusunda kuruluşumun kullandığı API'leri seçin ve Power Platform API'sini arayın. Buna benzer bir ada sahip birkaç girdi görebilirsiniz, bu nedenle GUID 8578e004-a5c6-46e7-913e-12f58912df43 ile kullandığınızdan emin olun.

GUID'ye göre arama yaparken listede Power Platform API'sinin görüntülendiğini görmüyorsanız, buna hala erişiminiz olabilir ancak görünürlük yenilenmez. Yenilemeyi zorlamak için aşağıdaki betiği çalıştırın:

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

Buradan ihtiyacınız olan izinleri seçin. Bu izinler Ad Alanlarına göre gruplandırılır. Ad alanında, uygulama paketleri için okuma izinleri veren AppManagement.ApplicationPackages.Read gibi kaynak türlerini ve eylemleri görürsünüz. Daha fazla bilgi için İzin başvurusu makalesine bakın.

Note

Power Platform API'sinde şu anda yalnızca temsilci izinleri kullanılır. Kullanıcı bağlamı ile çalışan uygulamalar için kapsam parametresini kullanarak temsilci izinleri isteyin. Bu izinler, oturum açmış kullanıcının ayrıcalıklarını uygulamanıza devrederek Power Platform API uç noktalarını çağırırken kullanıcı olarak davranmasını sağlar.

Hizmet sorumlusu kimlikleri için uygulama izinlerini kullanmayın. Bunun yerine, uygulama kaydınızı oluşturduktan sonra kapsamlı izinler ( Katkıda Bulunan veya Okuyucu gibi) vermek için ona bir RBAC rolü atayın. Daha fazla bilgi için bkz . Öğretici: Hizmet sorumlularına RBAC rolleri atama.

Uygulamaya gerekli izinleri ekledikten sonra kurulumu tamamlamak için Yönetici onayı ver'i seçin. Yönetici onayı vererek, kiracıdaki tüm kullanıcılar için izinleri yetkilendirerek uygulamanızı ilk kez kullandıklarında etkileşimli bir onay iletişim kutusu istenmez. Kullanıcı başına etkileşimli onayı tercih ediyorsanız Microsoft kimlik platformu ve OAuth 2.0 yetkilendirme kodu akışını izleyin.

Azure CLI'yi kullanarak da yönetici onayı vekleyebilirsiniz:

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

Adım 3. Platform ve yeniden yönlendirme URI'sini yapılandırma

Kullanıcı adına kimlik doğrulaması yapılan SDK'lar, PowerShell betikleri ve masaüstü uygulamaları, Microsoft Entra'nın kimlik doğrulamasından sonra uygulamanıza belirteçleri geri döndürebilmesi için bir yeniden yönlendirme URI'sine ihtiyaç duyar.

  1. Uygulama kaydınızda Yönet - Kimlik Doğrulaması'na gidin.

  2. Yeniden Yönlendirme URI'sini ekle'yi ve ardından Mobil ve masaüstü uygulamaları'nı seçin.

  3. Aşağıdaki yerleşik yeniden yönlendirme URI'sini seçin:

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

  4. Kaydetmek için Yapılandır'ı seçin.

Azure CLI kullanarak yeniden yönlendirme URI'sini de ekleyebilirsiniz:

# 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

Genel istemci ayarı

Aynı Kimlik Doğrulaması sekmesindeki Gelişmiş ayarlar bölümünde Genel istemci akışlarına izin ver iki durumlu düğmesi bulunur. Bu iki durumlu düğmeyi Yalnızca, doğrudan belirteç isteği gövdesine kullanıcı adı ve parola gönderen Kaynak Sahibi Parola Kimlik Bilgileri (ROPC) akışını kullanmayı planlıyorsanız Evet olarak ayarlayın.

Bu akış, çok faktörlü kimlik doğrulamasının etkinleştirildiği hesaplarda çalışmaz. Etkileşimli tarayıcı veya cihaz kodu akışları için bu ayarı etkinleştirmeniz gerekmez.

4. Adım. (İsteğe bağlı) Sertifikaları ve gizli dizileri yapılandırma

Uygulamanız, hizmet sorumlusu olarak da bilinen kaynakların kendisi olarak okunmasını ve yazmasını gerektiriyorsa, kimlik doğrulaması yapmanın iki yolu vardır. Sertifikaları kullanmak için Yönet - Sertifikalar ve gizli diziler bölümüne gidin. Sertifikalar bölümünde, kimlik doğrulaması için kullanabileceğiniz bir x509 sertifikası yükleyin.

Diğer yol, bir istemci gizli dizisi oluşturmak için Gizli Diziler bölümünü kullanmaktır. Otomasyon gereksinimlerinizde kullanmak üzere gizli anahtarı güvenli bir yere kaydedin. Sertifika veya gizli dizi seçenekleri, Microsoft Entra ile kimlik doğrulaması yapmanıza ve rest API'lerine veya PowerShell cmdlet'lerine geçirdiğiniz bu istemci için bir belirteç almanıza olanak sağlar.

Adım 5. Erişim belirteci talep et

Erişim taşıyıcı belirtecini iki şekilde alabilirsiniz: bunun bir yolu kullanıcı adı ve parola, diğer yol ise hizmet sorumluları içindir.

Kullanıcı adı ve parola akışı

Genel istemci bölümünü okuduğunuzdan emin olun. Ardından, kullanıcı adı ve şifre yüküyle birlikte Microsoft Entra ID'ye HTTP yoluyla bir POST isteği gönderin.

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

Yukarıdaki örnek, Microsoft Entra ID'de istemci uygulamanızdan alabildiğiniz yer tutucuları içerir. Power Platform API'sine sonraki çağrıları yapmak için kullanabileceğiniz bir yanıt alırsınız.

{
  "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..."
}

Power Platform API'sine yapılacak sonraki çağrılarda Authorization HTTP üstbilgisiyle access_token değerini kullanın.

Hizmet sorumlusu akışı

Sertifikaları ve gizli dizileri yapılandırma bölümünü okuduğunuzdan emin olun. Ardından, istemci gizli anahtarı yüküyle birlikte Microsoft Entra ID'ye HTTP yoluyla bir POST isteği gönderin. Bu kimlik doğrulama yöntemi genellikle hizmet sorumlusu kimlik doğrulaması olarak adlandırılır.

Important

Hizmet sorumlusu kimlik doğrulamasını kullanmadan önce, uygulama kaydınızı bir sertifika veya istemci gizli anahtarıyla oluşturmak ve yapılandırmak için bu makalenin önceki bölümlerinde yer alan 1-4 arası adımları tamamlayın. Ardından hizmet sorumlusuna erişim düzeyini denetlemek için bir RBAC rolü atayın. Daha fazla bilgi edinmek için bkz . Öğretici: Hizmet sorumlularına RBAC rolleri atama.

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

Yukarıdaki örnek, Microsoft Entra ID'de istemci uygulamanızdan alabildiğiniz yer tutucuları içerir. Power Platform API'sine sonraki çağrıları yapmak için kullanabileceğiniz bir yanıt alırsınız.

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

Power Platform API'sine yapılacak sonraki çağrılarda Authorization HTTP üstbilgisiyle access_token değerini kullanın. Hizmet sorumlusunun etkin izinleri, kendisine atanan RBAC rolü tarafından belirlenir. Rol atamayı öğrenmek için bkz . Öğretici: Hizmet sorumlularına RBAC rolleri atama.

Azure CLI ile hızlı başlangıç

Aşağıdaki betik uçtan uca bir uygulama kaydı oluşturur. Her komutu sırayla çalıştırın ve yer tutucu değerlerini kendinizle değiştirin.

# 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

Bu komutları çalıştırdıktan sonra SDK'lar, PowerShell veya doğrudan REST çağrılarıyla uygulama kaydınızı kullanabilirsiniz. Parametresinin izin kimliklerini aramak için --api-permissionsİzin başvurusuna bakın.

Yaygın sorunları giderme

Bu hata, yönetici uygulama kaydınızda API izinlerini onaylamadığında oluşur. Uygulama API'nizin izinlerini> uygulama >kayıtlarına gidin ve Yönetici onayı ver'i seçin.

Alternatif olarak aşağıdakileri çalıştırın:

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

"Kullanıcı uygulama için bir role atanmadı" hataları

Bu hata, uygulama kaydınızla ilişkilendirilmiş kurumsal uygulamada Kullanıcı ataması gerekiyor seçeneğinin Evet olarak ayarlandığı anlamına gelir. Bu ayar etkinleştirildiğinde yalnızca uygulamaya açıkça atanan kullanıcılar veya gruplar oturum açabilir. Bu hatayı düzeltmek için aşağıdaki eylemlerden birini gerçekleştirin:

  • Uygulama >Microsoft Entra ID>> gidin ve Atama gerekli seçeneğini Hayır olarak ayarlayın.
  • Kullanıcılar ve gruplar'ın altına ilgili kullanıcıları veya güvenlik gruplarını ekleyin.

Erişimi engelleyen koşullu erişim ilkeleri

Kuruluşunuz koşullu erişim ilkeleri uyguluyorsa, uygulama kaydınız için belirteç alımını engelleyebilir. Yaygın nedenler arasında cihaz uyumluluk gereksinimleri, konum kısıtlamaları veya risk tabanlı ilkeler bulunur. Uygulama kaydınızı ilkenin dışında tutmak veya istemcilerin ilke gereksinimlerini karşıladığından emin olmak için Microsoft Entra yöneticinizle birlikte çalışın.

API seçicide "Power Platform API'si" bulunamadı

API izinleri iletişim kutusunda Power Platform API'sini ada veya GUID'ye göre aramak hiçbir sonuç döndürmezse, hizmet sorumlusu kiracınızda oluşturulmaz. Oluşturmak için 2. Adım'daki yenilemeye zorlama adımlarını izleyin.

Power Platform SDK'ları ve PowerShell ile kimlik doğrulaması

Aşağıdaki örneklerde, her SDK ve PowerShell kullanarak kimlik doğrulaması yapma ve örnek API çağrısı yapma gösterilmektedir. Bu örnekleri çalıştırmadan önce, uygulama kaydınızı oluşturmak ve yapılandırmak için bu makalenin önceki bölümlerinde yer alan 1-3 arası adımları tamamlayın.

Etkileşimli kimlik doğrulaması (temsilci kullanıcı)

Etkileşimli kimlik doğrulaması, kullanıcının oturum açması için bir tarayıcı penceresi açar. Bu akış, geliştirici betikleri, yönetici araçları ve kullanıcının mevcut olduğu tüm senaryolar için en iyi şekilde çalışır.

# 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

Gizli istemci (hizmet sorumlusu)

Gizli istemci kimlik doğrulaması bir gizli dizi veya sertifika kullanır ve kullanıcı etkileşimi gerektirmez. Bu kimlik doğrulama akışı arka plan hizmetleri, işlem hatları ve otomasyon için en iyisidir.

Important

Hizmet sorumlusu kimlik doğrulamasını kullanmadan önce, uygulama kaydınızı bir sertifika veya istemci gizli anahtarıyla oluşturmak ve yapılandırmak için yukarıdaki 1-4 arası adımları tamamlayın. Ardından hizmet sorumlusuna erişim düzeyini denetlemek için bir RBAC rolü atayın. Daha fazla bilgi için bkz . Öğretici: Hizmet sorumlularına RBAC rolleri atama.

$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

Öğretici: Hizmet sorumlularına RBAC rolleri atama
Power Platform yönetim merkezi için rol tabanlı erişim denetimi
İzin başvurusu