azure - ग्राफ़ एपीआई फोन करते समय पहुंच टोकन अनुपलब्ध या गलत है




active-directory (2)

इस गाइड के बाद: https://azure.microsoft.com/en-us/documentation/articles/resource-manager-api-authentication/#_get-objectid-of-application-service-principal-in-user-azure-ad

मैं उस मंच पर पहुंच चुका हूं जहां मैं ग्राफ़ को कॉल करता हूं। Windows.net उपयोगकर्ता एज़ूर एडी में सर्विस प्रिंसिपल का ऑब्जेक्ट आईडी प्राप्त करने के लिए।

जब मैं कॉल करता हूं, हालांकि, मुझे निम्न संदेश मिल रहा है:

{"odata.error":{"code":"Authentication_MissingOrMalformed","message":{"lang":"en","value":"Access Token missing or malformed."},"values":null}}

मैंने पहले ही 'onmicrosoft.com' पते के साथ clientId को बदलने की कोशिश की है (इतनी graph.windows.net/appname.onmicrosoft.com / ... ), अभी भी एक ही संदेश मिला है


इस लिंक को देखें https://github.com/Azure/azure-sdk-for-node/issues/1782

मैं इस समस्या में चल रहा था। मैं अपने मूल ऐप के लिए वाहक टोकन प्राप्त करने के लिए निम्नलिखित कोड का उपयोग कर रहा था:

        var authContext = new AuthenticationContext("AUTHORITY");
        string token;
        try
        {
            var authresult = authContext.AcquireToken("MYAPP_ID","MYAPP_CLIENTID","MYAPP_REDIRECTURI");
            token = authresult.AccessToken;
        }

उस टोकन का उपयोग करके अपने स्वयं के ऐप के भीतर क्रियाओं को अधिकृत करने के लिए ठीक काम किया, लेकिन मुझे ओपी के रूप में एक ही त्रुटि मिलती है जब ग्राफ़ एपीआई के प्राधिकरण के रूप में एक ही टोकन का उपयोग करने की कोशिश करते हैं।

मुझे क्या करना था, विशेष रूप से ग्राफ़ एपीआई के लिए एक नया टोकन प्राप्त किया गया था - मैंने ऊपर दिए गए कोड का उपयोग किया था लेकिन मैंने "MYAPP_ID" बजाय "https://graph.windows.net" उपयोग किया था। तो, स्पष्ट होने के लिए, निम्न कोड ने मुझे ग्राफ़ एपीआई के लिए सही ऑउट टोकन दिया था:

        var authContext = new AuthenticationContext("AUTHORITY");
        string token;
        try
        {
            var authresult = authContext.AcquireToken("https://graph.windows.net","MYAPP_CLIENTID","MYAPP_REDIRECTURI");
            token = authresult.AccessToken;
        }

बस सुनिश्चित करें कि आपके एज़्यूर में पंजीकृत आवेदन में आपके एज़्योर डोमेन की निर्देशिका तक पहुंचने के लिए आवश्यक अनुमतियाँ हैं।

हो सकता है कि यह आपकी मददगार हो!


मेरी टिप्पणी पर विस्तार करने के लिए, हमने यह देखा है जब ऐप के गुप्त में ऐसे एन्कोडिंग की आवश्यकता होती है। जैसे "+" और "="

अगर आप कुछ ग्राहक सहायताकर्ताओं का उपयोग नहीं कर रहे हैं या आपको फ़िडलर या पोस्टमैन के साथ परीक्षण कर रहे हैं तो आपको ग्राफ़ एपीआई कॉल करने से पहले यूआरएल को सांकेतिक शब्दों में बदलना होगा, ऐसा लगता है कि यह हो जाता है:

"7hIkYG5m7xJQnocThxMc4yPjtbRP7bO41aNC% 2bbrEzvo% 3d"