एज़ूर एपीआई प्रबंधन के साथ उपयोग के लिए, मैं ग्राफ़ एपीआई का उपयोग कर अपने मामले में एप्लिकेशन को एज़ूर एक्टिव डायरेक्टरी (एएडी) प्रोग्रामेटिक रूप से जोड़ने की कोशिश कर रहा हूं।क्लाइंट प्रमाण-पत्र प्रवाह का उपयोग करके Azure AD में प्रोग्रामेटिक रूप से अनुप्रयोगों को जोड़ना
मेरा परिदृश्य निम्न है: वेब एपीआई सुरक्षित करने के लिए मैं एज़ूर एपीआई प्रबंधन के साथ प्रबंधन करना चाहता हूं, मैं प्रमाणीकरण और जेडब्ल्यूटी टोकन जारी करने के बारे में भारी उठाने के लिए एएडी की ओएथ कार्यक्षमता का लाभ उठाना चाहता हूं, और उसके बाद बस Azure API प्रबंधन में सब कुछ सत्यापित करने के लिए मान्य-jwt नीति ठीक है। इसका लाभ यह है कि मैं अपनी बैकएंड सेवा में प्रमाणीकरण को कम या ज्यादा छोड़ सकता हूं।
यह ठीक काम करता है, जब तक कि मैंने उपभोग करने वाले वेब एप्लिकेशन के लिए Azure AD में कोई एप्लिकेशन बनाया है, लेकिन इसे Azure पोर्टल से मैन्युअल रूप से किया जाना है; Azure APIm स्वचालित रूप से ऐसा नहीं करता है।
अब जो मैं स्वचालित रूप से करने के लिए करने की कोशिश कर रहा हूं उसके लिए: मैं एपीआई में एपीआई में कुछ अन्य वेब ऐप लिखने के लिए सदस्यता देना चाहता हूं, और वहां से मैं ग्राफ एपीआई का निर्माण करना चाहता हूं एज़ूर एडी में आवेदन और एपीआई के आवेदन के लिए अनुदान अनुमतियां।
पहली चीज़ जो मैंने करने की कोशिश की थी, वह था कि एज़ूर एडी में विंडोज़ एज़ूर एक्टिव डायरेक्टरी एप्लिकेशन में पूर्ण एप्लिकेशन अनुमतियां हों; यह ग्राफ़ रीस्ट एपीआई का उपयोग कर मेरे एप्लिकेशन को एएडी एक्सेस करने देता है। मैं (login.microsoft.com से) client_credentials अनुदान का उपयोग कर एक पहुंच टोकन प्राप्त करने का प्रबंधन, लेकिन इस टोकन मुझे एक POST
https://graph.windows.net/(my AAD ID)/applications?api-version=1.5
पर करते हैं नहीं करता है:
{
"odata.error": {
"code": "Authorization_RequestDenied",
"message": {
"lang": "en",
"value": "Insufficient privileges to complete the operation."
}
}
}
मैंने पाया (https://msdn.microsoft.com/Library/Azure/Ad/Graph/howto/azure-ad-graph-api-permission-scopes) है कि भले ही मैं अनुदान Directory.ReadWrite.All
अनुमति, एप्लिकेशन (app-केवल) अनुप्रयोग या उसे अपडेट करने के लिए सक्षम नहीं होगा:
नोट: विशेष रूप से बना सकते हैं या ऊपर सूचीबद्ध नहीं संस्थाओं के लिए अद्यतन शामिल नहीं है। इसमें शामिल हैं: आवेदन, Oauth2PermissionGrant, AppRoleAssignment, डिवाइस, ServicePrincipal, TenantDetail, डोमेन, आदि
अगली बात मैंने कोशिश की, संसाधन मालिक पासवर्ड ग्रांट (grant_type=password
) किया गया था इसके साथ ही मेरे अपने क्रेडेंशियल्स गुजर, ताकि मैं ग्राफ एपीआई में खुद का प्रतिरूपण कर सकता हूं। अब, applications
अंत बिंदु पर सफल हुआ है।
मेरा निचला-पंक्ति प्रश्न यह है: क्या मैं अपने आवेदन के लिए पर्याप्त अनुमतियां दे सकता हूं ताकि मैं क्लाइंट प्रमाण-पत्र प्रवाह का उपयोग करके प्रोग्रामेटिक रूप से एप्लिकेशन जोड़ सकूं, और कोई भी प्रवाह जो उपयोगकर्ता की तरफ से कार्य करता है? और यदि हां, तो यह कैसे किया जाता है?
मैं एक और चर्चा जो सबसे शायद वास्तव में एक ही समस्या करने पर निर्भर करता पाया मेरे पास है: https://social.technet.microsoft.com/Forums/en-US/82ab8a7d- e17b-4e4a-9615-2bdf43f1866a/graph-api-call-return-अपर्याप्त-विशेषाधिकार-से-पूर्ण-ऑपरेशन? फ़ोरम = WindowsAzureAD इसके अतिरिक्त, मुझे वह पृष्ठ भी मिला जहां ग्राफ़ एपीआई अनुमतियों पर चर्चा की गई है: https : //msdn.microsoft.com/Library/Azure/Ad/Graph/howto/azure-ad-graph-api-permission-scopes – donmartin
क्या वे आपकी समस्या का समाधान प्रदान करते हैं? – juvchan
नहीं, दुर्भाग्य से नहीं। एक व्यवस्थापक का प्रतिरूपण एकमात्र "समाधान" है जिसे मैंने अभी तक पाया है। – donmartin