मैं एक ट्यूटोरियल Power BI REST API के लिए AAD के माध्यम से प्रमाणित करने के लिए।

ट्यूटोरियल C# और ADAL का उपयोग करता है। यह एक टोकन प्राप्त करता है,

AuthenticationContext authContext = new AuthenticationContext(authorityUri);
string token = authContext.AcquireToken(resourceUri, clientID, new Uri(redirectUri)).AccessToken;

मैं पायथन का उपयोग करना पसंद करूंगा और इसलिए पायथन के लिए ADAL लाइब्रेरी का उपयोग करने का प्रयास कर रहा हूं। /ए>.

मैं प्रमाणीकरण संदर्भ प्राप्त कर सकता हूं,

context = adal.AuthenticationContext(authority_url)

लेकिन मुझे AcquireToken के बराबर Python ADAL फ़ंक्शन नहीं मिल रहा है। निकटतम विकल्प context.acquire_token प्रतीत होता है लेकिन इसके लिए मुझे एक user_id तर्क की आपूर्ति करने की आवश्यकता है जो सी # संस्करण नहीं करता है (यह रीडायरेक्ट यूआरआई तर्क भी स्वीकार नहीं करता है)।

मैं पाइथन में ट्यूटोरियल के सी # कोड के समान व्यवहार कैसे प्राप्त करूं?

2
James Elderfield 28 मार्च 2018, 18:53

2 जवाब

सबसे बढ़िया उत्तर

(मैं इसे मार्कस के उत्तर में बातचीत के लिए एक टिप्पणी के रूप में रखना चाहता हूं, लेकिन वहां फिट होने में बहुत लंबा समय हो रहा है)

एक कामकाजी नमूने और उस ब्लॉग पोस्ट को इंगित करने के लिए धन्यवाद मार्कस। हालांकि यह इंगित करना उचित होगा कि:

  • एक ऐप के रूप में प्रमाणित करने और एक अंतिम उपयोगकर्ता के रूप में प्रमाणित करने के बीच एक बड़ा वैचारिक अंतर है। वे विनिमेय नहीं हैं। ऐसा लगता है @JamesElderfield अंत उपयोगकर्ता को अंतःक्रियात्मक रूप से प्रमाणित करना चाहता है, ऐसे मामले में acquire_token_with_client_credentials(...) वह ड्रॉइड नहीं है जिसे आप ढूंढ रहे हैं।
  • वह C# authContext.AcquireToken(resourceUri, clientID, new Uri(redirectUri)) बराबर ADAL पायथन में लगभग acquire_token_with_authorization_code(...) है, हालांकि <स्ट्राइक>यह सच है कि यह अभी तक नहीं है , हालांकि यह पहले से समर्थित ADAL Python में नेटिव ऐप (उर्फ पब्लिक क्लाइंट) के लिए, इसके लिए ऐप की आवश्यकता होगी पुनर्निर्देशित प्रमाणीकरण कोड को पकड़ने के लिए एक HTTP सर्वर शुरू करने के लिए अपने स्वयं के तर्क को लागू करने के लिए डेवलपर।
  • यदि उपरोक्त विकल्प आपके लिए बहुत जटिल लगता है, तो यह आपके लिए डिवाइस कोड प्रवाह, जिसे @abhidnya के उत्तर द्वारा सही ढंग से सुझाया गया है< /ए>.
2
RayLuo 19 मार्च 2019, 06:33

ADAL पायथन में टोकन प्राप्त करें फ़ंक्शन का उपयोग थोड़ा अलग है। ADAL पायथन में आपको यह जानना होगा कि आप किस प्रमाणीकरण प्रवाह का अनुसरण करना चाहते हैं और फिर उपयुक्त अधिग्रहण टोकन कॉल का उपयोग करें। आप इस Azure AD article और इन नमूने

ऊपर बताए गए परिदृश्य से, आप इस प्रमाण कोड प्रवाह नमूना। इसे क्लाइंट सीक्रेट की आवश्यकता होती है लेकिन उपयोगकर्ता द्वारा अंतःक्रियात्मक रूप से साइन इन करने के बाद टोकन दिया जाता है।

यदि आप अभी भी क्लाइंट सीक्रेट प्रदान किए बिना एक इंटरैक्टिव प्रवाह चाहते हैं, तो आप डिवाइस कोड प्रवाह नमूना। हालाँकि, डिवाइस कोड प्रवाह का उपयोग ज्यादातर केवल-पाठ वाले उपकरणों के लिए किया जाता है, जिनके पास स्वयं का एक इंटरैक्टिव वेब इंटरफ़ेस नहीं होता है। उपयोगकर्ता साइन इन करने के लिए एक इंटरैक्टिव वेब इंटरफ़ेस के साथ किसी अन्य डिवाइस का उपयोग कर सकता है।

4
Abhidnya 1 मई 2018, 20:38