इसके माध्यम से साझा किया गया


प्रमाणीकरण

यह आलेख Power Platform API को कॉल करने के लिए Microsoft Entra सेटअप का अवलोकन प्रदान करता है। Power Platform API के माध्यम से उपलब्ध संसाधनों तक पहुँचने के लिए, आपको Microsoft Entra से एक वाहक टोकन प्राप्त करना होगा और इसे प्रत्येक अनुरोध के साथ हेडर के रूप में भेजना होगा. आपके द्वारा समर्थित पहचान प्रकार (उपयोगकर्ता बनाम सेवा प्रिंसिपल) के आधार पर इस वाहक टोकन को प्राप्त करने के लिए अलग-अलग प्रवाह हैं, जैसा कि इस आलेख में वर्णित है।

सही अनुमतियों के साथ एक वाहक टोकन प्राप्त करने के लिए, निम्न चरणों को पूरा करें:

  1. अपने Microsoft Entra टेनेंट में एक अनुप्रयोग पंजीकरण बनाएँ
  2. एपीआई अनुमतियां कॉन्फ़िगर करें
  3. प्लेटफ़ॉर्म कॉन्फ़िगर करें और URI को पुनर्निर्देशित करें
  4. (वैकल्पिक) प्रमाण पत्र और रहस्य कॉन्फ़िगर करें
  5. एक्सेस टोकन का अनुरोध करें

चरण 1. अपने Microsoft Entra टेनेंट में एक एप्लिकेशन पंजीकरण बनाएँ

  1. Azure पोर्टल पर जाएं।
  2. पृष्ठ के शीर्ष पर Microsoft Entra ID का चयन करें. फिर +ऐप पंजीकरणजोड़ें> चुनें।
  3. एक आवेदन पृष्ठ पंजीकृत करें भरें:
    1. नाम — एप्लिकेशन को एक पहचानने योग्य नाम दें, जैसे Power Platform Admin SDK.
    2. समर्थित खाता प्रकारकेवल एकल टैनेंट का चयन करें - आपकी <कंपनी का नाम>.
    3. यूआरआई को पुनर्निर्देशित करें - अभी के लिए इसे छोड़ दें। आप इसे चरण 3 में कॉन्फ़िगर करें।
  4. अनुप्रयोग बनाने के लिए पंजीकरण करें का चयन करें. पंजीकरण पूरा होने के बाद, अवलोकन पृष्ठ से एप्लिकेशन (क्लाइंट) आईडी और निर्देशिका (किरायेदार) आईडी नोट करें - आपको बाद में दोनों मानों की आवश्यकता है।

आप Azure CLI का उपयोग करके भी पंजीकरण बना सकते हैं:

az login

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

कमांड एक JSON ऑब्जेक्ट लौटाता है। मान नोट appId करें — यह मान आपका क्लाइंट आईडी है।

चरण 2. API अनुमतियों को कॉन्फ़िगर करें

अपने नए ऐप्लिकेशन पंजीकरण में, प्रबंधित करें - API अनुमतियां टैब पर जाएं. अनुमतियाँ कॉन्फ़िगर करें अनुभाग के अंतर्गत, कोई अनुमति जोड़ें का चयन करें. संवाद बॉक्स में, मेरा संगठन द्वारा उपयोग किए जाने वाले API टैब का चयन करें और फिर Power Platform API खोजें. आप इस एक के समान एक नाम के साथ कई प्रविष्टियों के साथ देख सकते हैं, इसलिए सुनिश्चित करें कि आप GUID 8578e004-a5c6-46e7-913e-12f58912df43 के साथ एक का उपयोग करें।

यदि आपको GUID द्वारा खोज करते समय सूची में प्रदर्शित Power Platform API दिखाई नहीं देता है, तो आपके पास अभी भी उस तक पहुंच हो सकती है लेकिन दृश्यता ताज़ा नहीं होती है. किसी ताज़ा करने के लिए बाध्य करने के लिए, निम्न स्क्रिप्ट चलाएँ:

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

यहां से, उन अनुमतियों का चयन करें जिनकी आपको आवश्यकता है। इन अनुमतियों को नामस्थान द्वारा समूहीकृत किया जाता है। नामस्थान के भीतर, आप संसाधन प्रकार और क्रियाएँ देखते हैं, जैसे कि AppManagement.ApplicationPackages.Read, जो एप्लिकेशन पैकेज के लिए पढ़ने की अनुमतियाँ देता है। अधिक जानकारी के लिए, अनुमति संदर्भ आलेख देखें.

नोट

Power Platform API केवल इस समय प्रत्यायोजित अनुमतियों का उपयोग करता है. उपयोगकर्ता संदर्भ के साथ चलने वाले अनुप्रयोगों के लिए, क्षेत्र पैरामीटर का उपयोग करके प्रत्यायोजित अनुमतियों का अनुरोध करें। ये अनुमतियाँ आपके एप्लिकेशन को साइन-इन उपयोगकर्ता के विशेषाधिकारों को सौंपती हैं, इसलिए यह Power Platform API एंडपॉइंट को कॉल करते समय उपयोगकर्ता के रूप में कार्य कर सकता है.

सेवा प्रमुख पहचान के लिए, अनुप्रयोग अनुमतियों का उपयोग न करें. इसके बजाय, अपना ऐप्लिकेशन पंजीकरण बनाने के बाद, उसे स्कोप की गई अनुमतियां (जैसे योगदानकर्ता या रीडर) देने के लिए RBAC भूमिका असाइन करें. अधिक जानकारी के लिए, ट्यूटोरियल: सेवा प्रिंसिपल को RBAC भूमिकाएँ असाइन करें देखें.

आप अनुप्रयोग के लिए आवश्यक अनुमतियाँ जोड़ने के बाद, सेटअप पूरा करने के लिए व्यवस्थापक सहमति अनुदान का चयन करें। व्यवस्थापक सहमति देकर, आप टैनेंट के सभी उपयोगकर्ताओं के लिए अनुमतियाँ प्राधिकृत करते हैं, ताकि जब वे पहली बार आपके अनुप्रयोग का उपयोग करते हैं तो उन्हें एक सहभागी सहमति संवाद के साथ संकेत न दिया जाए. यदि आप प्रति उपयोगकर्ता इंटरैक्टिव सहमति पसंद करते हैं, तो Microsoft पहचान प्लेटफ़ॉर्म और OAuth 2.0 प्राधिकरण कोड प्रवाह का पालन करें।

आप Azure CLI का उपयोग करके व्यवस्थापक की सहमति भी दे सकते हैं:

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

चरण 3. प्लेटफ़ॉर्म कॉन्फ़िगर करें और URI को पुनर्निर्देशित करें

SDK, PowerShell स्क्रिप्ट और डेस्कटॉप अनुप्रयोग जो किसी उपयोगकर्ता की ओर से प्रमाणित करते हैं, एक रीडायरेक्ट URI की आवश्यकता होती है ताकि Microsoft Entra प्रमाणीकरण के बाद टोकन को आपके अनुप्रयोग पर वापस लौटा सके।

  1. अपने ऐप्लिकेशन पंजीकरण में, प्रबंधित करें - प्रमाणीकरण पर जाएं.

  2. रीडायरेक्ट यूआरआई जोड़ें चुनें, फिर मोबाइल और डेस्कटॉप एप्लिकेशन चुनें।

  3. निम्नलिखित अंतर्निहित रीडायरेक्ट यूआरआई का चयन करें:

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

  4. सहेजने के लिए कॉन्फ़िगर करें चुनें .

आप Azure CLI का उपयोग करके रीडायरेक्ट URI भी जोड़ सकते हैं:

# 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

सार्वजनिक क्लाइंट सेटिंग

एक ही प्रमाणीकरण टैब पर उन्नत सेटिंग्स अनुभाग के अंतर्गत, सार्वजनिक क्लाइंट प्रवाह की अनुमति दें टॉगल है। इस टॉगल को केवल हाँ पर सेट करें यदि आप संसाधन स्वामी पासवर्ड क्रेडेंशियल्स (ROPC) प्रवाह का उपयोग करने की योजना बनाते हैं, जो सीधे टोकन अनुरोध मुख्य भाग में उपयोगकर्ता नाम और पासवर्ड भेजता है।

यह प्रवाह उन खातों के लिए काम नहीं करता है जिनमें मल्टीफ़ैक्टर प्रमाणीकरण सक्षम है. इंटरैक्टिव ब्राउज़र या डिवाइस कोड प्रवाह के लिए, आपको इस सेटिंग को सक्षम करने की आवश्यकता नहीं है।

चरण 4. (वैकल्पिक) प्रमाण पत्र और रहस्य कॉन्फ़िगर करें

यदि आपके ऐप को पढ़ने और लिखने के संसाधनों की आवश्यकता है, जिसे सेवा प्रिंसिपल के रूप में भी जाना जाता है, तो प्रमाणित करने के दो तरीके हैं। प्रमाणपत्रों का उपयोग करने के लिए, प्रबंधित करें - प्रमाणपत्र और रहस्य पर जाएं. प्रमाणपत्र अनुभाग के अंतर्गत, एक x509 प्रमाणपत्र अपलोड करें जिसका उपयोग आप प्रमाणित करने के लिए कर सकते हैं.

एक ग्राहक सीक्रेट जनरेट करने के लिए सीक्रेट सेक्शन का उपयोग करना एक अन्य तरीका है. अपनी स्वचालन आवश्यकताओं के उपयोग के लिए एक सुरक्षित स्थान पर रहस्य को सहेजें। प्रमाणपत्र या गुप्त विकल्प आपको Microsoft Entra के साथ प्रमाणित करने और इस क्लाइंट के लिए एक टोकन प्राप्त करने की अनुमति देते हैं, जिसे आप REST API या PowerShell cmdlets के साथ पास करते हैं।

चरण 5. एक्सेस टोकन का अनुरोध करें

आप दो तरीकों से एक्सेस बियरर टोकन प्राप्त कर सकते हैं: एक तरीका उपयोगकर्ता नाम और पासवर्ड के लिए है, और दूसरा तरीका सेवा प्रिंसिपल के लिए है।

उपयोगकर्ता नाम और पासवर्ड प्रवाह

सार्वजनिक ग्राहक अनुभाग को पढ़ना सुनिश्चित करें। फिर, उपयोगकर्ता नाम और पासवर्ड पेलोड के साथ Microsoft Entra ID को HTTP के माध्यम से एक POST अनुरोध भेजें।

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

पिछले उदाहरण में प्लेसहोल्डर हैं जिन्हें आप Microsoft Entra ID में अपने क्लाइंट अनुप्रयोग से पुनर्प्राप्त कर सकते हैं. आपको एक प्रतिसाद प्राप्त होता है जिसका उपयोग आप Power Platform API पर बाद में कॉल करने के लिए कर सकते हैं.

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

एक्सेस टोकन मान का उपयोग प्राधिकरण HTTP हेडर के साथ बाद में Power Platform API को कॉल करने के लिए करें.

सेवा प्रमुख प्रवाह

प्रमाणपत्र और रहस्य कॉन्फ़िगर करें अनुभाग को पढ़ना सुनिश्चित करें। फिर, क्लाइंट सीक्रेट पेलोड के साथ Microsoft Entra ID को HTTP के माध्यम से एक POST अनुरोध भेजें। इस प्रमाणीकरण विधि को अक्सर सेवा प्रमुख प्रमाणीकरण के रूप में जाना जाता है।

महत्त्वपूर्ण

सेवा प्रिंसिपल प्रमाणीकरण का उपयोग करने से पहले, किसी प्रमाणपत्र या क्लाइंट रहस्य के साथ अपना अनुप्रयोग पंजीकरण बनाने और कॉन्फ़िगर करने के लिए इस आलेख में पहले चरण 1-4 को पूरा करें. फिर सेवा प्रिंसिपल को उसकी पहुंच के स्तर को नियंत्रित करने के लिए एक RBAC भूमिका असाइन करें। अधिक जानने के लिए, ट्यूटोरियल देखें: सेवा प्रिंसिपल को RBAC भूमिकाएँ असाइन करें.

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

पिछले उदाहरण में प्लेसहोल्डर हैं जिन्हें आप Microsoft Entra ID में अपने क्लाइंट अनुप्रयोग से पुनर्प्राप्त कर सकते हैं. आपको एक प्रतिसाद प्राप्त होता है जिसका उपयोग आप Power Platform API पर बाद में कॉल करने के लिए कर सकते हैं.

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

एक्सेस टोकन मान का उपयोग प्राधिकरण HTTP हेडर के साथ बाद में Power Platform API को कॉल करने के लिए करें. सेवा प्रिंसिपल की प्रभावी अनुमतियाँ उसे सौंपी गई RBAC भूमिका द्वारा निर्धारित की जाती हैं। कोई भूमिका असाइन करने का तरीका जानने के लिए, ट्यूटोरियल: सेवा प्रिंसिपलों को RBAC भूमिकाएँ असाइन करें देखें.

Azure CLI के साथ त्वरित शुरुआत

निम्न स्क्रिप्ट एक ऐप पंजीकरण शुरू से अंत तक बनाती है। प्रत्येक कमांड को क्रम में चलाएं और प्लेसहोल्डर मानों को अपने स्वयं के साथ बदलें।

# 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

इन आदेशों को चलाने के बाद, आप SDK, PowerShell या सीधे REST कॉल के साथ अपने ऐप पंजीकरण का उपयोग कर सकते हैं। पैरामीटर के लिए --api-permissions अनुमति आईडी देखने के लिए, अनुमति संदर्भ देखें.

सामान्य समस्याओं का निवारण

यह गड़बड़ी तब होती है, जब एडमिन ने आपके ऐप्लिकेशन के रजिस्ट्रेशन पर API अनुमतियों के लिए सहमति नहीं दी है. ऐप्लिकेशन पंजीकरण,> अपनी ऐप्लिकेशन >API अनुमतियों पर जाएं और एडमिन की सहमति दें चुनें.

वैकल्पिक रूप से, चलाएँ:

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

"उपयोगकर्ता को अनुप्रयोग के लिए कोई भूमिका असाइन नहीं की गई है" त्रुटियाँ

इस गड़बड़ी का मतलब है कि आपके ऐप्लिकेशन पंजीकरण से जुड़े एंटरप्राइज़ ऐप्लिकेशन में उपयोगकर्ता असाइनमेंट ज़रूरी हैजो हाँ पर सेट है. जब यह सेटिंग सक्षम की जाती है, तो केवल अनुप्रयोग को स्पष्ट रूप से असाइन किए गए उपयोगकर्ता या समूह ही साइन इन कर सकते हैं. इस त्रुटि को ठीक करने के लिए, निम्न क्रियाओं में से कोई एक लें:

  • Microsoft Entra ID Enterprise>एप्लिकेशन> पर जाएं अपने ऐप >गुण और आवश्यक असाइनमेंट को नंबर पर सेट करें।
  • उपयोगकर्ताओं और समूहों के अंतर्गत संबंधित उपयोगकर्ताओं या सुरक्षा समूहों को जोड़ें.

सशर्त पहुँच नीतियाँ पहुँच अवरुद्ध

अगर आपका संगठन सशर्त एक्सेस नीतियां लागू करता है, तो वे आपके ऐप्लिकेशन पंजीकरण के लिए टोकन प्राप्ति को ब्लॉक कर सकते हैं. सामान्य कारणों में डिवाइस अनुपालन आवश्यकताएं, स्थान प्रतिबंध या जोखिम-आधारित नीतियां शामिल हैं। अपने Microsoft Entra व्यवस्थापक के साथ काम करें ताकि या तो आपके ऐप पंजीकरण को नीति से बाहर किया जा सके या यह सुनिश्चित किया जा सके कि क्लाइंट नीति आवश्यकताओं को पूरा करते हैं।

"Power Platform API" API पिकर में नहीं मिला

यदि API अनुमतियाँ संवाद में नाम या GUID के आधार पर Power Platform API की खोज करने से कोई परिणाम नहीं मिलता है, तो आपके टैनेंट में सेवा प्रिंसिपल नहीं बनाया गया है. इसे बनाने के लिए चरण 2 में बल-ताज़ा चरणों का पालन करें।

Power Platform SDK और PowerShell के साथ प्रमाणित करें

निम्न उदाहरण प्रत्येक SDK और PowerShell का उपयोग करके प्रमाणित करने और नमूना API कॉल करने के लिए कैसे दिखाएँ। इन उदाहरणों को चलाने से पहले, अपना ऐप्लिकेशन पंजीकरण बनाने और कॉन्फ़िगर करने के लिए इस आलेख में पहले चरण 1-3 को पूरा करें.

इंटरैक्टिव प्रमाणीकरण (प्रत्यायोजित उपयोगकर्ता)

इंटरएक्टिव प्रमाणीकरण उपयोगकर्ता के लिए साइन इन करने के लिए एक ब्राउज़र विंडो खोलता है। यह प्रवाह डेवलपर स्क्रिप्ट, व्यवस्थापक टूल और किसी भी परिदृश्य के लिए सबसे अच्छा काम करता है जहां उपयोगकर्ता मौजूद है।

# 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

गोपनीय ग्राहक (सेवा प्रिंसिपल)

गोपनीय क्लाइंट प्रमाणीकरण क्लाइंट सीक्रेट या प्रमाणपत्र का उपयोग करता है और इसके लिए उपयोगकर्ता इंटरैक्शन की आवश्यकता नहीं होती है. यह प्रमाणीकरण प्रवाह पृष्ठभूमि सेवाओं, पाइपलाइनों और स्वचालन के लिए सर्वोत्तम है।

महत्त्वपूर्ण

सेवा मूलधन प्रमाणीकरण का उपयोग करने से पहले, प्रमाणपत्र या क्लाइंट रहस्य के साथ अपना ऐप पंजीकरण बनाने और कॉन्फ़िगर करने के लिए ऊपर दिए गए चरण 1-4 को पूरा करें। फिर सेवा प्रिंसिपल को उसकी पहुंच के स्तर को नियंत्रित करने के लिए एक RBAC भूमिका असाइन करें। अधिक जानकारी के लिए, ट्यूटोरियल देखें: सेवा प्रिंसिपल को RBAC भूमिकाएँ असाइन करें.

$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

ट्यूटोरियल: सेवा प्रिंसिपलों को RBAC भूमिकाएँ असाइन करें
Power Platform व्यवस्थापन केंद्र के लिए भूमिका-आधारित पहुँच नियंत्रण
अनुमति संदर्भ